引脚类别属性

适用于 USB 音频设备、IEEE 1394 音频设备和内部总线上的音频设备的 Microsoft Windows 驱动程序模型 (WDM) 音频驱动程序都将其设备表示为含引脚的 KS 筛选器。 WDM 音频驱动程序会为其支持的每个引脚类型维护一个 KSPIN_DESCRIPTOR 结构。 在此结构中,驱动程序存储引脚类型的 KSPROPSETID_Pin 属性。 在这些属性中,包含 KSPROPERTY_PIN_CATEGORY 属性。 此属性的请求从 KSPIN_DESCRIPTOR 结构的 Category 成员检索 KS 引脚类别 GUID。 此 GUID 指示引脚提供的常规功能类别。 例如,特定引脚类别 GUID (KSNODETYPE_HEADPHONES) 将引脚标识为耳机的输出插孔。

对于内部总线上的波次音频设备(例如 PCI),PortCls 微型端口驱动程序包含引脚描述符数组,其中每个描述符都描述表示设备的筛选器中的一种引脚类型。 每个引脚描述符都是一个 PCPIN_DESCRIPTOR 结构,其中包含具有引脚类别 GUID 的嵌入式 KSPIN_DESCRIPTOR 结构。 从客户端收到 KSPROPERTY_PIN_CATEGORY 属性请求后,端口驱动程序将从指定引脚类型的微型端口驱动程序引脚描述符中检索引脚类别 GUID。 有关引脚描述符的详细信息,请参阅引脚工厂

USB 音频设备具有一些终端,数字流和模拟信号可以通过这些终端进入和退出设备。 构造 KS 筛选器来表示 USB 音频设备时,USBAudio 类系统驱动程序会将设备上的终端转换为筛选器上的引脚。 标头文件 Ksmedia.h 定义每个 USB 终端类型标识符到 KS 引脚类别 GUID 的映射。 以下六个表显示了终端类型标识符及其对应的引脚类别 GUID。

输入终端类型

USB 终端 ID KS 引脚类别 GUID

0x0201

KSNODETYPE_MICROPHONE

0x0202

KSNODETYPE_DESKTOP_MICROPHONE

0x0203

KSNODETYPE_PERSONAL_MICROPHONE

0x0204

KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE

0x0205

KSNODETYPE_MICROPHONE_ARRAY

0x0206

KSNODETYPE_PROCESSING_MICROPHONE_ARRAY

输出终端类型

USB 终端 ID KS 引脚类别 GUID

0x0301

KSNODETYPE_SPEAKER

0x0302

KSNODETYPE_HEADPHONES

0x0303

KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO

0x0304

KSNODETYPE_DESKTOP_SPEAKER

0x0305

KSNODETYPE_ROOM_SPEAKER

0x0306

KSNODETYPE_COMMUNICATION_SPEAKER

0x0307

KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER

双向终端类型

USB 终端 ID KS 引脚类别 GUID

0x0401

KSNODETYPE_HANDSET

0x0402

KSNODETYPE_HEADSET

0x0403

KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION

0x0404

KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE

0x0405

KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE

电话终端类型

USB 终端 ID KS 引脚类别 GUID

0x0501

KSNODETYPE_PHONE_LINE

0x0502

KSNODETYPE_TELEPHONE

0x0503

KSNODETYPE_DOWN_LINE_PHONE

外部终端类型

USB 终端 ID KS 引脚类别 GUID

0x0601

KSNODETYPE_ANALOG_CONNECTOR

0x0602

KSNODETYPE_DIGITAL_AUDIO_INTERFACE

0x0603

KSNODETYPE_LINE_CONNECTOR

0x0604

KSNODETYPE_LEGACY_AUDIO_CONNECTOR

0x0605

KSNODETYPE_SPDIF_INTERFACE

0x0606

KSNODETYPE_1394_DA_STREAM

0x0607

KSNODETYPE_1394_DV_STREAM_SOUNDTRACK

嵌入式函数终端类型

USB 终端 ID KS 引脚类别 GUID

0x0701

KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE

0x0702

KSNODETYPE_EQUALIZATION_NOISE

0x0703

KSNODETYPE_CD_PLAYER

0x0704

KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE

0x0705

KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE

0x0706

KSNODETYPE_MINIDISK

0x0707

KSNODETYPE_ANALOG_TAPE

0x0708

KSNODETYPE_PHONOGRAPH

0x0709

KSNODETYPE_VCR_AUDIO

0x070A

KSNODETYPE_VIDEO_DISC_AUDIO

0x070B

KSNODETYPE_DVD_AUDIO

0x070C

KSNODETYPE_TV_TUNER_AUDIO

0x070D

KSNODETYPE_SATELLITE_RECEIVER_AUDIO

0x070E

KSNODETYPE_CABLE_TUNER_AUDIO

0x070F

KSNODETYPE_DSS_AUDIO

0x0710

KSNODETYPE_RADIO_RECEIVER

0x0711

KSNODETYPE_RADIO_TRANSMITTER

0x0712

KSNODETYPE_MULTITRACK_RECORDER

0x0713

KSNODETYPE_SYNTHESIZER

有关 USB 终端类型标识符的详细信息,请参阅 USB 实现者论坛网站上提供的终端类型的通用串行总线设备类定义(版本 1.0)。

上述表中的所有引脚类别 GUID 都具有 KSNODETYPE_XXX 格式的参数名称。 请注意,KS 节点类型 GUID 也具有 KSNODETYPE_XXX 参数名称。 此命名约定在引脚类别 GUID 和节点类型 GUID 之间可能会产生一些混淆。 幸运的是,几乎所有 KSNODETYPE_XXX 参数都标识引脚类别或节点类型,但不能同时标识两者。 此规则的一种例外情况是 KSNODETYPE_SYNTHESIZER,它可以标识引脚类别或节点类型,具体取决于上下文。 有关节点类型 GUID 的列表,请参阅音频拓扑节点

实例化 USB 音频设备时,USBAudio 类系统驱动程序会在设备中查询其内部拓扑,包括其终端。 利用此信息,USBAudio 驱动程序将构造一个筛选器来表示设备,并将每个终端转换为筛选器上的相应引脚。 在此过程中,驱动程序会将每个 USB 终端类型标识符转换为相应的 KS 引脚类别 GUID,这是上述表中的 GUID 之一。 驱动程序会构造一个 KSPIN_DESCRIPTOR 结构,以便描述引脚,并将引脚类别 GUID 写入结构中。

PortCls 微型端口驱动程序不一定仅使用前面六个表中显示的类别 GUID。 例如,驱动程序可以定义和使用自定义引脚类别 GUID,以描述其功能类别不包含在表中的类别中的引脚类型。 当然,自定义引脚类别 GUID 仅适用于识别 GUID 的客户端。

音频子系统会在系统注册表中维护引脚类别 GUID 及其关联友好名称的列表。 媒体类安装程序会将 GUID-名称对从位于主 Windows 文件夹的 Inf 子文件夹的 Ks.inf 文件(例如 C:\Windows\Inf\Ks.inf)复制到注册表中。

操作系统会使用引脚类别将友好名称与音频终结点设备相关联。 有关如何将友好名称与音频终结点设备相关联的详细信息,请参阅音频终结点设备的友好名称