directx – DirectSound only allows to capture and output from/to primary devices


I wanted to allow my users to choose the devices that they want to capture from and output to.
For this, I used DirectSound device and capture device enumeration functions, obtained GUIDs of all available devices, and arrived at the following lists (DirectSound’s grammar preserved):

Primary Sound Driver
Speakers (Realtek High Definition Audio)

Primary Sound Capture Driver
Mic in at front panel (black) (

However when I proceed to create sound capture and output devices, they only work if I supply the GUID of the primary drivers. If I supply Speakers or Mic, the result is always

No sound driver is available for use, or the given GUID is not a valid DirectSound device ID.

My thinking was that since the list of drivers is returned to me by DirectSound system, then each GUID should be valid for capture or output, respectively. What am I missing?