PKEY_AudioDevice_NeverSetAsDefaultEndpoint
你可决定设置某些设备,以便永远不能将其选为默认设备。 例如,这些设备包括调制解调器线路和医疗音频设备。Windows 7 及更高版本的 Windows 提供 PKEY_AudioDevice_NeverSetAsDefaultEndpoint 注册表项,以允许阻止选择设备终结点作为默认终结点。
以下 INF 文件摘录演示如何使用 PKEY_AudioDevice_NeverSetAsDefaultEndpoint 设置终结点,以便永远不能将该终结点选为默认终结点。
[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 setup endpoint so that
;; it cannot be selected as the default endpoint.
[Xyz.AddReg]
HKR,"EP\\n",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_GUID%
HKR,"EP\\n",%PKEY_AudioDevice_NeverSetAsDefaultEndpoint%,0x00010001,NeverSetAsDefaultEndpointMaskValue
...
[Strings]
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
PKEY_AudioEndpoint_Association="{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioDevice_NeverSetAsDefaultEndpoint = "{F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},3"
...
在前面的示例中,NeverSetAsDefaultEndpointMaskValue 表示一个 DWORD 掩码值,该值是设备角色标志和数据流标志的组合。
以下 INF 文件片段显示了如何设置未定义的输出设备 (KSNODETYPE_OUTPUT_UNDEFINED),以便无论设备角色和数据流方向是什么,都不会选择其终结点作为默认终结点。
[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 to setup endpoint so that
;; it cannot be selected as the default endpoint.
[MDVAD.EPProperties.AddReg]
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_OUTPUT_UNDEFINED%
HKR,"EP\\0",%PKEY_AudioDevice_NeverSetAsDefaultEndpoint%,0x00010001,0x00000305
...
[Strings]
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSNODETYPE_OUTPUT_UNDEFINED="{DFF21CE0-F70F-11D0-B917-00A0C9223196}"
PKEY_AudioEndpoint_Association="{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioDevice_NeverSetAsDefaultEndpoint = "{F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},3"
在前面的示例中,0x00000305 是可用于 PKEY_AudioDevice_NeverSetAsDefaultEndpoint 的所有标志和掩码的按位 OR 组合。 下表显示了标志和掩码及其值。
标志或终结点掩码 | 值 |
---|---|
FLOW_MASK_CAPTURE |
0x00000200 |
FLOW_MASK_RENDER |
0x00000100 |
ROLE_MASK_COMMUNICATION |
0x00000004 |
ROLE_MASK_CONSOLE |
0x00000001 |