PKEY_AudioDevice_EnableEndpointByDefault
在 Windows 7 及更高版本的 Windows 中,终结点生成器将终结点分类为外形规格。 这些外形规格基于终结点连接到的内核流式处理 (KS) 筛选器上的引脚的 KSNODETYPE GUID。 当音频终结点生成器枚举某些终结点(例如具有 UnknownFormFactor 等外形规格类型的终结点)时,终结点生成器会将这些终结点创建为已禁用和隐藏的终结点。 因此,必须使用控制面板中的“声音”程序来启用此类终结点,然后才能使用这些终结点。
如果想要覆盖此行为,以便默认情况下将终结点创建为已启用或已禁用,Windows 7 会提供允许执行此操作的 PKEY_AudioDevice_EnableEndpointByDefault 注册表项。
终结点生成器可将含以下任何 KSNODETYPE 值的终结点创建为已禁用和隐藏。
KS 节点类型 | 外形规格 |
---|---|
KSNODETYPE_ANALOG_CONNECTOR |
UnknownFormFactor |
KSCATEGORY_AUDIO |
UnknownFormFactor |
KSNODETYPE_BIDIRECTIONAL_UNDEFINED |
UnknownFormFactor |
KSNODETYPE_EMBEDDED_UNDEFINED |
UnknownFormFactor |
KSNODETYPE_EQUALIZATION_NOISE |
UnknownFormFactor |
KSNODETYPE_EXTERNAL_UNDEFINED |
UnknownFormFactor |
KSNODETYPE_INPUT_UNDEFINED |
UnknownFormFactor |
KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE |
UnknownFormFactor |
KSNODETYPE_OUTPUT_UNDEFINED |
UnknownFormFactor |
KSNODETYPE_TELEPHONY_UNDEFINED |
UnknownFormFactor |
在 Windows 7 及更高版本的 Windows 中,具有 LineLevel 外形规格但 KSNODETYPE 不等于KSNODETYPE_LINE_CONNECTOR 的终结点也将创建为已禁用和隐藏。 以下终结点属于此类别。
KS 节点类型 | 外形规格 |
---|---|
KSNODETYPE_1394_DA_STREAM |
LineLevel |
KSNODETYPE_1394_DV_STREAM_SOUNDTRACK |
LineLevel |
KSNODETYPE_ANALOG_TAPE |
LineLevel |
KSNODETYPE_CABLE_TUNER_AUDIO |
LineLevel |
KSNODETYPE_CD_PLAYER |
LineLevel |
KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE |
LineLevel |
KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE |
LineLevel |
KSNODETYPE_DSS_AUDIO |
LineLevel |
KSNODETYPE_DVD_AUDIO |
LineLevel |
KSNODETYPE_LEGACY_AUDIO_CONNECTOR |
LineLevel |
KSNODETYPE_MINIDISK |
LineLevel |
KSNODETYPE_MULTITRACK_RECORDER |
LineLevel |
KSNODETYPE_PHONOGRAPH |
LineLevel |
KSNODETYPE_RADIO_RECEIVER |
LineLevel |
KSNODETYPE_RADIO_TRANSMITTER |
LineLevel |
KSNODETYPE_SATELLITE_RECEIVER_AUDIO |
LineLevel |
KSNODETYPE_SYNTHESIZER |
LineLevel |
KSNODETYPE_TV_TUNER_AUDIO |
LineLevel |
KSNODETYPE_VCR_AUDIO |
LineLevel |
KSNODETYPE_VIDEO_DISC_AUDIO |
LineLevel |
以下 INF 文件片段演示如何在默认情况下使用 PKEY_AudioDevice_EnableEndpointByDefault 启用或禁用终结点。
[Version]
...
Class=MEDIA
ClassGuid={4d36e96c-e325-11ce-bfc1-08002be10318}
...
[USBAudio]
...
[USBAudio.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,"GLOBAL",USBAudio.Interface
...
[USBAudio.Interface]
AddReg=Xyz.AddReg
...
;; AddReg section to set default behavior of endpoint
[Xyz.AddReg]
HKR,"EP\\n",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_GUID%
HKR,"EP\\n",%PKEY_AudioDevice_EnableEndpointByDefault%,0x00010001,EnableEndpointByDefaultMaskValue
...
[Strings]
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
PKEY_AudioEndpoint_Association="{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioDevice_EnableEndpointByDefault="{F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},4"
...
在前面的示例中,EnableEndpointByDefaultMaskValue 表示一个 DWORD 掩码值,该值是启用或禁用标志(FLAG_ENABLE 或 FLAG_DISABLE)和数据流标志(FLOW_MASK_RENDER 或 FLOW_MASK_CAPTURE)的组合。
以下 INF 文件片段演示了如何设置 CD 播放器,以便默认情况下启用 CD 播放器,并将其配置为输入设备 (FLOW_MASK_CAPTURE)。
[Version]
...
Class=MEDIA
ClassGuid={4d36e96c-e325-11ce-bfc1-08002be10318}
...
[USBAudio]
...
[USBAudio.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,"GLOBAL",USBAudio.Interface
...
[USBAudio.Interface]
AddReg=MDVAD.EPProperties.AddReg
...
;; AddReg section is used to set default behavior of endpoint for CD player.
;; Enable by default for KSNODETYPE_CD_PLAYER
[MDVAD.EPProperties.AddReg]
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_CD_PLAYER%
HKR,"EP\\0",%PKEY_AudioDevice_EnableEndpointByDefault%,0x00010001,0x00000201
...
[Strings]
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSNODETYPE_CD_PLAYER="{DFF220E3-F70F-11D0-B917-00A0C9223196}"
PKEY_AudioEndpoint_Association="{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioDevice_EnableEndpointByDefault="{F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},4"
…
在前面的示例中,FLOW_MASK_CAPTURE 和 FLAG_ENABLE 的按位 OR 组合等效于 0x00000200 和 0x00000001 的按位 OR 组合,结果为 0x00000201。 下表显示了可用于 PKEY_AudioDevice_EnableEndpointByDefault 的标志和掩码的值。
标志或终结点掩码 | 值 |
---|---|
FLAG_DISABLE |
0x00000000 |
FLAG_ENABLE |
0x00000001 |
FLOW_MASK_CAPTURE |
0x00000200 |
FLOW_MASK_RENDER |
0x00000100 |