How to enumerate audio endpoint (IMMDevice) properties on your system

How to enumerate audio endpoint (IMMDevice) properties on your system

  • Comments 12

Source and binaries (amd64 and x86) attached.

Pseudocode:

CoCreateInstance(..., &pMMDeviceEnumerator);
pMMDeviceEnumerator->EnumAudioEndpoints(..., &pMMDeviceCollection);
for (each device in the collection) {
    pMMDevice->OpenPropertyStore(...,  &pPropertyStore);
    for (each property in the store) {
        log the property
    }
}

Output on my system:

>audioendpoints.exe
ID: {0.0.0.00000000}.{6d531641-b3e3-43c5-ba56-ba165b4a9bb6}
State: 4 (DEVICE_STATE_NOTPRESENT)
-- Properties (18) --
{b3f8fa53-0004-438e-9003-51a46e139bfc},15:
    VT_BLOB of size 16
    db 07 06 00 03 00 01 00
    17 00 3a 00 2d 00 26 03
DEVPKEY_Device_DeviceDesc:
    VT_LPWSTR Internal AUX Jack
{b3f8fa53-0004-438e-9003-51a46e139bfc},6:
    VT_LPWSTR High Definition Audio Device
{b3f8fa53-0004-438e-9003-51a46e139bfc},2:
    VT_LPWSTR {1}.HDAUDIO\FUNC_01&VEN_8384&DEV_7690&SUBSYS_102801BD&REV_1022\4&33D044FE&0&0001
{83da6326-97a6-4088-9453-a1923f573b29},3:
    VT_LPWSTR hdaudio.inf:Microsoft.ntamd64:HdAudModel:6.1.7600.16385::hdaudio\func_01
DEVPKEY_Device_BaseContainerId:
    VT_CLSID {00000000-0000-0000-ffff-ffffffffffff}
DEVPKEY_Device_ContainerId:
    VT_CLSID {00000000-0000-0000-ffff-ffffffffffff}
DEVPKEY_Device_EnumeratorName:
    VT_LPWSTR HDAUDIO
{b3f8fa53-0004-438e-9003-51a46e139bfc},1:
    VT_BLOB of size 72
    a8 7f a4 d5 98 6d d1 11
    a2 1a 00 a0 c9 22 31 96
    9c ac 97 dc ec dd 59 4d
    b6 50 3b 8b a6 7b c2 a1
    00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    e0 cc 13 de 04 83 e9 4e
    ba ce 48 24 21 4e 3e a5
    00 00 02 00 01 00 00 00
PKEY_AudioEndpoint_FormFactor:
    VT_UI4 10
PKEY_AudioEndpoint_JackSubType:
    VT_LPWSTR {6994AD04-93EF-11D0-A3CC-00A0C9223196}
DEVPKEY_DeviceClass_IconPath:
    VT_LPWSTR %windir%\system32\mmres.dll,-3018
{840b8171-b0ad-410f-8581-cccc0382cfef},0:
    VT_BLOB of size 300
    01 00 00 00 28 01 00 00
    00 00 01 00 7b 00 32 00
    7d 00 2e 00 5c 00 5c 00
    3f 00 5c 00 68 00 64 00
    61 00 75 00 64 00 69 00
    6f 00 23 00 66 00 75 00
    6e 00 63 00 5f 00 30 00
    31 00 26 00 76 00 65 00
    6e 00 5f 00 38 00 33 00
    38 00 34 00 26 00 64 00
    65 00 76 00 5f 00 37 00
    36 00 39 00 30 00 26 00
    73 00 75 00 62 00 73 00
    79 00 73 00 5f 00 31 00
    30 00 32 00 38 00 30 00
    31 00 62 00 64 00 26 00
    72 00 65 00 76 00 5f 00
    31 00 30 00 32 00 32 00
    23 00 34 00 26 00 33 00
    33 00 64 00 30 00 34 00
    34 00 66 00 65 00 26 00
    30 00 26 00 30 00 30 00
    30 00 31 00 23 00 7b 00
    36 00 39 00 39 00 34 00
    61 00 64 00 30 00 34 00
    2d 00 39 00 33 00 65 00
    66 00 2d 00 31 00 31 00
    64 00 30 00 2d 00 61 00
    33 00 63 00 63 00 2d 00
    30 00 30 00 61 00 30 00
    63 00 39 00 32 00 32 00
    33 00 31 00 39 00 36 00
    7d 00 5c 00 65 00 6d 00
    69 00 63 00 69 00 6e 00
    74 00 6f 00 70 00 6f 00
    2f 00 30 00 30 00 30 00
    31 00 30 00 30 00 30 00
    30 00 00 00
PKEY_AudioEndpoint_Association:
    VT_LPWSTR {00000000-0000-0000-0000-000000000000}
PKEY_AudioEndpoint_Supports_EventDriven_Mode:
    VT_UI4 1
DEVPKEY_Device_FriendlyName:
    VT_LPWSTR Internal AUX Jack (High Definition Audio Device)
DEVPKEY_DeviceInterface_FriendlyName:
    VT_LPWSTR High Definition Audio Device
PKEY_AudioEndpoint_GUID:
    VT_LPWSTR {6D531641-B3E3-43C5-BA56-BA165B4A9BB6}

ID: {0.0.0.00000000}.{ca9fa848-1e60-401c-81e6-323546335d0a}
State: 1 (DEVICE_STATE_ACTIVE)
-- Properties (26) --
{b3f8fa53-0004-438e-9003-51a46e139bfc},15:
    VT_BLOB of size 16
    da 07 0a 00 04 00 1c 00
    16 00 3a 00 3a 00 d1 00
DEVPKEY_Device_DeviceDesc:
    VT_LPWSTR Speakers
{b3f8fa53-0004-438e-9003-51a46e139bfc},6:
    VT_LPWSTR High Definition Audio Device
{b3f8fa53-0004-438e-9003-51a46e139bfc},2:
    VT_LPWSTR {1}.HDAUDIO\FUNC_01&VEN_8384&DEV_7690&SUBSYS_102801BD&REV_1022\4&33D044FE&0&0001
{83da6326-97a6-4088-9453-a1923f573b29},3:
    VT_LPWSTR hdaudio.inf:Microsoft.ntamd64:HdAudModel:6.1.7600.16385::hdaudio\func_01
DEVPKEY_Device_BaseContainerId:
    VT_CLSID {00000000-0000-0000-ffff-ffffffffffff}
DEVPKEY_Device_ContainerId:
    VT_CLSID {00000000-0000-0000-ffff-ffffffffffff}
DEVPKEY_Device_EnumeratorName:
    VT_LPWSTR HDAUDIO
{b3f8fa53-0004-438e-9003-51a46e139bfc},1:
    VT_BLOB of size 72
    a8 7f a4 d5 98 6d d1 11
    a2 1a 00 a0 c9 22 31 96
    9c ac 97 dc ec dd 59 4d
    b6 50 3b 8b a6 7b c2 a1
    00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    e0 cc 13 de 04 83 e9 4e
    ba ce 48 24 21 4e 3e a5
    00 00 02 00 01 00 00 00
PKEY_AudioEndpoint_FormFactor:
    VT_UI4 1
PKEY_AudioEndpoint_JackSubType:
    VT_LPWSTR {DFF21CE1-F70F-11D0-B917-00A0C9223196}
DEVPKEY_DeviceClass_IconPath:
    VT_LPWSTR %windir%\system32\mmres.dll,-3010
{840b8171-b0ad-410f-8581-cccc0382cfef},0:
    VT_BLOB of size 324
    01 00 00 00 40 01 00 00
    00 00 01 00 7b 00 32 00
    7d 00 2e 00 5c 00 5c 00
    3f 00 5c 00 68 00 64 00
    61 00 75 00 64 00 69 00
    6f 00 23 00 66 00 75 00
    6e 00 63 00 5f 00 30 00
    31 00 26 00 76 00 65 00
    6e 00 5f 00 38 00 33 00
    38 00 34 00 26 00 64 00
    65 00 76 00 5f 00 37 00
    36 00 39 00 30 00 26 00
    73 00 75 00 62 00 73 00
    79 00 73 00 5f 00 31 00
    30 00 32 00 38 00 30 00
    31 00 62 00 64 00 26 00
    72 00 65 00 76 00 5f 00
    31 00 30 00 32 00 32 00
    23 00 34 00 26 00 33 00
    33 00 64 00 30 00 34 00
    34 00 66 00 65 00 26 00
    30 00 26 00 30 00 30 00
    30 00 31 00 23 00 7b 00
    36 00 39 00 39 00 34 00
    61 00 64 00 30 00 34 00
    2d 00 39 00 33 00 65 00
    66 00 2d 00 31 00 31 00
    64 00 30 00 2d 00 61 00
    33 00 63 00 63 00 2d 00
    30 00 30 00 61 00 30 00
    63 00 39 00 32 00 32 00
    33 00 31 00 39 00 36 00
    7d 00 5c 00 65 00 73 00
    6c 00 61 00 76 00 65 00
    64 00 68 00 70 00 73 00
    70 00 65 00 61 00 6b 00
    65 00 72 00 74 00 6f 00
    70 00 6f 00 2f 00 30 00
    30 00 30 00 31 00 30 00
    30 00 30 00 31 00 00 00
    00 00 00 00
PKEY_AudioEndpoint_Association:
    VT_LPWSTR {00000000-0000-0000-0000-000000000000}
PKEY_AudioEndpoint_Supports_EventDriven_Mode:
    VT_UI4 1
{9a82a7db-3ebb-41b4-83ba-18b7311718fc},1:
    VT_UI4 65536
{233164c8-1b2c-4c7d-bc68-b671687a2567},1:
    VT_LPWSTR {2}.\\?\hdaudio#func_01&ven_8384&dev_7690&subsys_102801bd&rev_1022#4&33d044fe&0&0001#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\eslavedhpspeakerwave
{5a9125b7-f367-4924-ace2-0803a4a3a471},0:
    VT_UI4 1610652916
{5a9125b7-f367-4924-ace2-0803a4a3a471},2:
    VT_UI4 1610644836
{b3f8fa53-0004-438e-9003-51a46e139bfc},0:
    VT_UI4 1
PKEY_AudioEngine_DeviceFormat:
    VT_BLOB of size 40
    fe ff 02 00 44 ac 00 00
    10 b1 02 00 04 00 10 00
    16 00 10 00 03 00 00 00
    01 00 00 00 00 00 10 00
    80 00 00 aa 00 38 9b 71
{e4870e26-3cc5-4cd2-ba46-ca0a9a70ed04},0:
    VT_BLOB of size 40
    fe ff 02 00 44 ac 00 00
    20 62 05 00 08 00 20 00
    16 00 20 00 03 00 00 00
    03 00 00 00 00 00 10 00
    80 00 00 aa 00 38 9b 71
{e4870e26-3cc5-4cd2-ba46-ca0a9a70ed04},1:
    VT_BLOB of size 8
    d3 8c 01 00 00 00 00 00
DEVPKEY_Device_FriendlyName:
    VT_LPWSTR Speakers (High Definition Audio Device)
DEVPKEY_DeviceInterface_FriendlyName:
    VT_LPWSTR High Definition Audio Device
PKEY_AudioEndpoint_GUID:
    VT_LPWSTR {CA9FA848-1E60-401C-81E6-323546335D0A}

ID: {0.0.1.00000000}.{4f5e42d9-227f-43ff-bf5b-a1ce5d0324cf}
State: 8 (DEVICE_STATE_UNPLUGGED)
-- Properties (28) --
{b3f8fa53-0004-438e-9003-51a46e139bfc},15:
    VT_BLOB of size 16
    da 07 0a 00 04 00 1c 00
    16 00 3a 00 3a 00 0f 01
DEVPKEY_Device_DeviceDesc:
    VT_LPWSTR Microphone
{b3f8fa53-0004-438e-9003-51a46e139bfc},6:
    VT_LPWSTR High Definition Audio Device
{b3f8fa53-0004-438e-9003-51a46e139bfc},2:
    VT_LPWSTR {1}.HDAUDIO\FUNC_01&VEN_8384&DEV_7690&SUBSYS_102801BD&REV_1022\4&33D044FE&0&0001
{83da6326-97a6-4088-9453-a1923f573b29},3:
    VT_LPWSTR hdaudio.inf:Microsoft.ntamd64:HdAudModel:6.1.7600.16385::hdaudio\func_01
DEVPKEY_Device_BaseContainerId:
    VT_CLSID {00000000-0000-0000-ffff-ffffffffffff}
DEVPKEY_Device_ContainerId:
    VT_CLSID {00000000-0000-0000-ffff-ffffffffffff}
DEVPKEY_Device_EnumeratorName:
    VT_LPWSTR HDAUDIO
{b3f8fa53-0004-438e-9003-51a46e139bfc},1:
    VT_BLOB of size 72
    a8 7f a4 d5 98 6d d1 11
    a2 1a 00 a0 c9 22 31 96
    9c ac 97 dc ec dd 59 4d
    b6 50 3b 8b a6 7b c2 a1
    00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00
    e0 cc 13 de 04 83 e9 4e
    ba ce 48 24 21 4e 3e a5
    00 00 02 00 01 00 00 00
PKEY_AudioEndpoint_FormFactor:
    VT_UI4 4
PKEY_AudioEndpoint_JackSubType:
    VT_LPWSTR {DFF21BE1-F70F-11D0-B917-00A0C9223196}
DEVPKEY_DeviceClass_IconPath:
    VT_LPWSTR %windir%\system32\mmres.dll,-3014
{840b8171-b0ad-410f-8581-cccc0382cfef},0:
    VT_BLOB of size 300
    01 00 00 00 28 01 00 00
    00 00 01 00 7b 00 32 00
    7d 00 2e 00 5c 00 5c 00
    3f 00 5c 00 68 00 64 00
    61 00 75 00 64 00 69 00
    6f 00 23 00 66 00 75 00
    6e 00 63 00 5f 00 30 00
    31 00 26 00 76 00 65 00
    6e 00 5f 00 38 00 33 00
    38 00 34 00 26 00 64 00
    65 00 76 00 5f 00 37 00
    36 00 39 00 30 00 26 00
    73 00 75 00 62 00 73 00
    79 00 73 00 5f 00 31 00
    30 00 32 00 38 00 30 00
    31 00 62 00 64 00 26 00
    72 00 65 00 76 00 5f 00
    31 00 30 00 32 00 32 00
    23 00 34 00 26 00 33 00
    33 00 64 00 30 00 34 00
    34 00 66 00 65 00 26 00
    30 00 26 00 30 00 30 00
    30 00 31 00 23 00 7b 00
    36 00 39 00 39 00 34 00
    61 00 64 00 30 00 34 00
    2d 00 39 00 33 00 65 00
    66 00 2d 00 31 00 31 00
    64 00 30 00 2d 00 61 00
    33 00 63 00 63 00 2d 00
    30 00 30 00 61 00 30 00
    63 00 39 00 32 00 32 00
    33 00 31 00 39 00 36 00
    7d 00 5c 00 65 00 6d 00
    69 00 63 00 69 00 6e 00
    74 00 6f 00 70 00 6f 00
    2f 00 30 00 30 00 30 00
    31 00 30 00 30 00 30 00
    31 00 00 00
PKEY_AudioEndpoint_Association:
    VT_LPWSTR {00000000-0000-0000-0000-000000000000}
PKEY_AudioEndpoint_Supports_EventDriven_Mode:
    VT_UI4 1
{24dbb0fc-9311-4b3d-9cf0-18ff155639d4},3:
    VT_BOOL 0xffffffff
{24dbb0fc-9311-4b3d-9cf0-18ff155639d4},4:
    VT_BOOL 0xffffffff
{9a82a7db-3ebb-41b4-83ba-18b7311718fc},1:
    VT_UI4 65536
{233164c8-1b2c-4c7d-bc68-b671687a2567},1:
    VT_LPWSTR {2}.\\?\hdaudio#func_01&ven_8384&dev_7690&subsys_102801bd&rev_1022#4&33d044fe&0&0001#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\emicinwave
{5a9125b7-f367-4924-ace2-0803a4a3a471},0:
    VT_UI4 1610712932
{5a9125b7-f367-4924-ace2-0803a4a3a471},2:
    VT_UI4 1610708836
{b3f8fa53-0004-438e-9003-51a46e139bfc},0:
    VT_UI4 3
PKEY_AudioEngine_DeviceFormat:
    VT_BLOB of size 40
    fe ff 02 00 44 ac 00 00
    10 b1 02 00 04 00 10 00
    16 00 10 00 03 00 00 00
    01 00 00 00 00 00 10 00
    80 00 00 aa 00 38 9b 71
{e4870e26-3cc5-4cd2-ba46-ca0a9a70ed04},0:
    VT_BLOB of size 40
    fe ff 02 00 44 ac 00 00
    20 62 05 00 08 00 20 00
    16 00 20 00 03 00 00 00
    03 00 00 00 00 00 10 00
    80 00 00 aa 00 38 9b 71
{e4870e26-3cc5-4cd2-ba46-ca0a9a70ed04},1:
    VT_BLOB of size 8
    d3 8c 01 00 00 00 00 00
DEVPKEY_Device_FriendlyName:
    VT_LPWSTR Microphone (High Definition Audio Device)
DEVPKEY_DeviceInterface_FriendlyName:
    VT_LPWSTR High Definition Audio Device
PKEY_AudioEndpoint_GUID:
    VT_LPWSTR {4F5E42D9-227F-43FF-BF5B-A1CE5D0324CF}

ID: {0.0.1.00000000}.{6712184b-f8f0-474d-ad36-808cc90a7cfd}
State: 4 (DEVICE_STATE_NOTPRESENT)
-- Properties (29) --
{b3f8fa53-0004-438e-9003-51a46e139bfc},15:
    VT_BLOB of size 16
    db 07 03 00 01 00 15 00
    10 00 3b 00 21 00 f4 00
DEVPKEY_Device_DeviceDesc:
    VT_LPWSTR Microphone Array
{b3f8fa53-0004-438e-9003-51a46e139bfc},6:
    VT_LPWSTR Microphone Array
{b3f8fa53-0004-438e-9003-51a46e139bfc},2:
    VT_LPWSTR {1}.USB\VID_045E&PID_FFF0&MI_01\6&1474EDB6&0&0001
{83da6326-97a6-4088-9453-a1923f573b29},3:
    VT_LPWSTR wdma_usb.inf:Microsoft.ntamd64:USBAudio:6.1.7600.16385:usb\class_01
DEVPKEY_Device_BaseContainerId:
    VT_CLSID {9132f6ea-a152-5472-8685-61c0d297a30b}
DEVPKEY_Device_ContainerId:
    VT_CLSID {9132f6ea-a152-5472-8685-61c0d297a30b}
DEVPKEY_Device_EnumeratorName:
    VT_LPWSTR USB
{b3f8fa53-0004-438e-9003-51a46e139bfc},1:
    VT_BLOB of size 72
    30 f1 1c 4e 79 16 3b 46
    a7 2f a5 bf 64 c8 6e ba
    4e 5a cd ab 63 c2 3b 46
    a7 2f a5 bf 64 c8 6e ba
    f0 75 12 8f e9 26 64 42
    ba 4d 39 ff f0 1d 94 aa
    a6 54 57 fc f8 2d 3b 46
    a7 2f a5 bf 64 c8 6e ba
    02 00 00 00 09 00 00 00
PKEY_AudioEndpoint_FormFactor:
    VT_UI4 4
PKEY_AudioEndpoint_JackSubType:
    VT_LPWSTR {DFF21BE5-F70F-11D0-B917-00A0C9223196}
DEVPKEY_DeviceClass_IconPath:
    VT_LPWSTR %windir%\system32\mmres.dll,-3020
{840b8171-b0ad-410f-8581-cccc0382cfef},0:
    VT_BLOB of size 236
    01 00 00 00 e8 00 00 00
    00 00 01 00 7b 00 32 00
    7d 00 2e 00 5c 00 5c 00
    3f 00 5c 00 75 00 73 00
    62 00 23 00 76 00 69 00
    64 00 5f 00 30 00 34 00
    35 00 65 00 26 00 70 00
    69 00 64 00 5f 00 66 00
    66 00 66 00 30 00 26 00
    6d 00 69 00 5f 00 30 00
    31 00 23 00 36 00 26 00
    31 00 34 00 37 00 34 00
    65 00 64 00 62 00 36 00
    26 00 30 00 26 00 30 00
    30 00 30 00 31 00 23 00
    7b 00 36 00 39 00 39 00
    34 00 61 00 64 00 30 00
    34 00 2d 00 39 00 33 00
    65 00 66 00 2d 00 31 00
    31 00 64 00 30 00 2d 00
    61 00 33 00 63 00 63 00
    2d 00 30 00 30 00 61 00
    30 00 63 00 39 00 32 00
    32 00 33 00 31 00 39 00
    36 00 7d 00 5c 00 67 00
    6c 00 6f 00 62 00 61 00
    6c 00 2f 00 30 00 30 00
    30 00 31 00 30 00 30 00
    30 00 31 00 00 00 00 00
    00 00 00 00
PKEY_AudioEndpoint_Association:
    VT_LPWSTR {00000000-0000-0000-0000-000000000000}
PKEY_AudioEndpoint_Supports_EventDriven_Mode:
    VT_UI4 1
{24dbb0fc-9311-4b3d-9cf0-18ff155639d4},3:
    VT_BOOL 0x0
{24dbb0fc-9311-4b3d-9cf0-18ff155639d4},4:
    VT_BOOL 0xffffffff
{9a82a7db-3ebb-41b4-83ba-18b7311718fc},1:
    VT_UI4 65536
{233164c8-1b2c-4c7d-bc68-b671687a2567},1:
    VT_LPWSTR {2}.\\?\usb#vid_045e&pid_fff0&mi_01#6&1474edb6&0&0001#{6994ad04-93ef-11d0-a3cc-00a0c9223196}\global
{5a9125b7-f367-4924-ace2-0803a4a3a471},0:
    VT_UI4 1610713736
{5a9125b7-f367-4924-ace2-0803a4a3a471},2:
    VT_UI4 1610709736
{b3f8fa53-0004-438e-9003-51a46e139bfc},0:
    VT_UI4 3
PKEY_AudioEngine_DeviceFormat:
    VT_BLOB of size 40
    fe ff 04 00 80 3e 00 00
    00 f4 01 00 08 00 10 00
    16 00 10 00 00 00 00 00
    01 00 00 00 00 00 10 00
    80 00 00 aa 00 38 9b 71
{e4870e26-3cc5-4cd2-ba46-ca0a9a70ed04},0:
    VT_BLOB of size 40
    fe ff 04 00 80 3e 00 00
    00 e8 03 00 10 00 20 00
    16 00 20 00 00 00 00 00
    03 00 00 00 00 00 10 00
    80 00 00 aa 00 38 9b 71
{e4870e26-3cc5-4cd2-ba46-ca0a9a70ed04},1:
    VT_BLOB of size 8
    a0 86 01 00 00 00 00 00
{9855c4cd-df8c-449c-a181-8191b68bd06c},0:
    VT_BLOB of size 16
    00 00 f0 41 00 00 f0 41
    00 00 f0 41 00 00 f0 41
DEVPKEY_Device_FriendlyName:
    VT_LPWSTR Microphone Array (Microphone Array)
DEVPKEY_DeviceInterface_FriendlyName:
    VT_LPWSTR Microphone Array
PKEY_AudioEndpoint_GUID:
    VT_LPWSTR {6712184B-F8F0-474D-AD36-808CC90A7CFD}

The unrecognized properties could be private properties used by the OS, or by the audio driver, or they might be defined in some public header that I didn't bother to scour.

UPDATE 2011-09-09: added WAVEFORMATEX logging for properties known to be audio formats.

Attachment: audioendpoints.zip
Leave a Comment
  • Please add 3 and 7 and type the answer here:
  • Post
  • Hi,

    Writing some code to identify paired capture/render devices, ie a headset.

    My big assumption is the following value

    {b3f8fa53-0004-438e-9003-51a46e139bfc},2

    is a constant which always maps to the device ID as reported by WMI.

    Is my assumption correct?

  • Forgot to also ask if this value is the same in XP and Vista?

  • That property is not publically defined, and you should not rely on it.

    You can identify whether render and capture devices are on the same hardware by doing the device topology "connector dance" and the PKEY_Device_InstanceId property.  For example, see:

    blogs.msdn.com/.../sample-find-out-if-your-default-playback-and-capture-devices-are-on-the-same-hardware.aspx

  • IMMDevice properties were introduced in Vista; XP is a very different beast.

  • how can I enable a disabled  endpoint device ,are there any api I can use?

  • Only the user can enable or disable audio endpoints, and that only via the Sound control panel.

  • Hello,

    I am trying to write a program to set audio properties of endpoint devices. I've seen that there is EndpointDeviceVolume API out for controlling the volume, but I want to see if it is possible to programmatically set properties like Enhancements. Is there a way to enumerate the properties and get/set values using IMMDevice?

    Thanks

    Kevin

  • Each endpoint has two property stores; the "endpoint property store" displayed above, and the "effects property store."  The endpoint property store is exposed to applications, but the effects property store is limited to:

    1) the audio driver

    2) the audio engine

    3) the Sound control panel.

    So only the user can view / change settings in the effects property store, and that only through the Sound control panel.

    I'm interested in why your application needs to know about the effects property store.  Can you share some details on your application?  You can post it at the Windows Pro Audio forum

    social.msdn.microsoft.com/.../threads

    Or you can email me directly: mateer at microsoft dot com

  • I am a newbie in c#..Please dont get annoyed by my question if its kinda silly one..

    I need to see the disabled playback and recording devices by c# code and want to enable  or disable it as per my need.

    How can I approach..??

    I made a code using DirectX.DirectSound API but it is limited to enumerate the devices which are only enabled and i am not able see the disabled devices present. And I don't think there is any method of disabling or enabling the devices.

    I'll be very thankful to u for the help.

  • And please also suggest me how can I do this with using other API's if possible.

  • Hi Maurits,

    May I ask a question?

    How does WIN8 offload audio driver know that app have set PKEY_AudioEndpoint_Disable_SysFx to 1, is there be a notify function or API I can use in WDM driver?

    Thanks much...

  • That's a good question for the wdmaudiodev email list.

    I believe the answer has three parts:

    1. There are two different property stores for each endpoint. This blog post deals with the "endpoint property store", which the driver can seed with EP\n directives. Apps generally have read-only access to this. There is also an "effects property store", which the driver can seed with FX\n directives. Apps cannot access this at all; only APOs and the Sound control panel can access this.

    2. A Windows 8.0 offload driver will receive IOCTLs KSPROPSETID_AudioEngine/KSPROPERTY_AUDIOENGINE_LFXENABLE = 0 and _GFXENABLE = 0 if effects ate disabled. If there are finer-grained effects settings, the custom Sound control panel property page provider must inform the driver out of band, since the offload path has no APO.

    3. A Windows 8.1 driver should use KSPROPSETID_AudioSignalProcessing to advertise processing modes available on the host pin and offload pin. If the offload pin does not support _RAW mode, disabling effects will also disable offload.

Page 1 of 1 (12 items)