引脚类别属性
适用于 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)复制到注册表中。
操作系统会使用引脚类别将友好名称与音频终结点设备相关联。 有关如何将友好名称与音频终结点设备相关联的详细信息,请参阅音频终结点设备的友好名称。