IDeviceTopology interface (devicetopology.h)

The IDeviceTopology interface provides access to the topology of an audio device. The topology of an audio adapter device consists of the data paths that lead to and from audio endpoint devices and the control points that lie along the paths. An audio endpoint device also has a topology, but it is trivial, as explained in Device Topologies. A client obtains a reference to the IDeviceTopology interface for an audio endpoint device by following these steps:

  1. By using one of the techniques described in IMMDevice Interface, obtain a reference to the IMMDevice interface for an audio endpoint device.
  2. Call the IMMDevice::Activate method with parameter refiid set to REFIID IID_IDeviceTopology.
After obtaining the IDeviceTopology interface for an audio endpoint device, an application can explore the topologies of the audio adapter devices to which the endpoint device is connected.

For code examples that use the IDeviceTopology interface, see the implementations of the GetHardwareDeviceTopology and SelectCaptureDevice functions in Device Topologies.


The IDeviceTopology interface inherits from the IUnknown interface. IDeviceTopology also has these types of members:


The IDeviceTopology interface has these methods.


The GetConnector method gets the connector that is specified by a connector number.

The GetConnectorCount method gets the number of connectors in the device-topology object.

The GetDeviceId method gets the device identifier of the device that is represented by the device-topology object.

The GetPartById method gets a part that is identified by its local ID.

The GetSignalPath method gets a list of parts in the signal path that links two parts, if the path exists.

The GetSubunit method gets the subunit that is specified by a subunit number.

The GetSubunitCount method gets the number of subunits in the device topology.


Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header devicetopology.h

See also

Core Audio Interfaces

DeviceTopology API