IPart::GetSubType method (devicetopology.h)

The GetSubType method gets the part subtype of this part.

Syntax

HRESULT GetSubType(
  [out] GUID *pSubType
);

Parameters

[out] pSubType

Pointer to a GUID variable into which the method writes the subtype GUID for this part.

Return value

If the method succeeds, it returns S_OK. If it fails, possible return codes include, but are not limited to, the values shown in the following table.

Return code Description
E_POINTER
Pointer pSubType is NULL.

Remarks

This method typically retrieves one of the KSNODETYPE_Xxx GUID values from header file Ksmedia.h, although some custom drivers might provide other GUID values. For more information about KSNODETYPE_Xxx GUIDs, see the Windows DDK documentation.

As explained in IPart Interface, a part can be either a connector or a subunit.

For a part that is a connector, this method retrieves the pin-category GUID that the driver has assigned to the connector. The following are examples of pin-category GUIDs:

  • KSNODETYPE_ANALOG_CONNECTOR, if the connector is part of the data path to or from an analog device such as a microphone or speakers.
  • KSNODETYPE_SPDIF_INTERFACE, if the connector is part of the data path to or from an S/PDIF port.
For more information, see the discussion of the pin-category property, KSPROPERTY_PIN_CATEGORY, in the Windows DDK documentation.

For a part that is a subunit, this method retrieves a subtype GUID that indicates the stream-processing function that the subunit performs. For example, for a volume-control subunit, the method retrieves GUID value KSNODETYPE_VOLUME.

The following table lists some of the subtype GUIDs that can be retrieved by the GetSubType method for a subunit.

Subtype GUID Control interface Required or optional
KSNODETYPE_3D_EFFECTS IAudioChannelConfig Optional
KSNODETYPE_AGC IAudioAutoGainControl Required
KSNODETYPE_DAC IAudioChannelConfig Optional
KSNODETYPE_DEMUX IAudioOutputSelector Required
KSNODETYPE_DEV_SPECIFIC IDeviceSpecificProperty Required
KSNODETYPE_LOUDNESS IAudioLoudness Required
KSNODETYPE_MUTE IAudioMute Required
KSNODETYPE_MUX IAudioInputSelector Required
KSNODETYPE_PEAKMETER IAudioPeakMeter Required
KSNODETYPE_PROLOGIC_DECODER IAudioChannelConfig Optional
KSNODETYPE_TONE IAudioBass

IAudioMidrange

IAudioTreble

OptionalOptional

Optional

KSNODETYPE_VOLUME IAudioChannelConfig

IAudioVolumeLevel

OptionalRequired
 

In the preceding table, the middle column lists the control interfaces that are supported by subunits of the subtype specified in the left column. The right column indicates whether the subunit's support for a control interface is required or optional. If support is required, an application can rely on a subunit of the specified subtype to support the control interface. If support is optional, a subunit of the specified subtype can, but does not necessarily, support the control interface.

The control interfaces in the preceding table provide convenient access to the properties of subunits. However, some subunits have properties for which no corresponding control interfaces exist. Applications can access these properties through the IKsControl interface. For more information, see Using the IKsControl Interface to Access Audio Properties.

Requirements

Requirement Value
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

IPart Interface