PKEY_AudioDevice_NeverSetAsDefaultEndpoint

Вы можете настроить определенные устройства, чтобы они никогда не могли быть выбраны как устройства по умолчанию. К ним относятся, например, модемные линии и медицинские звуковые устройства. Windows 7 и более поздних версий Windows предоставляют раздел реестра PKEY_AudioDevice_NeverSetAsDefaultEndpoint , чтобы предотвратить выбор конечной точки устройства в качестве конечной точки по умолчанию.

Это важно

При установке PKEY_AudioDevice_NeverSetAsDefaultEndpoint необходимо также задать PKEY_AudioEndpoint_Association в том же EP\\ подразделе. Служба AudioEndpointBuilder использует значение ассоциации для сопоставления свойства конечной точки с правильной конечной точкой на устройстве. Если связь не задана, свойство 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, представляющее собой сочетание флагов ролей устройства и флагов потока данных.

KSNODETYPE_GUID — это значение PKEY_AudioEndpoint_Association , определяющее, к каким конечным точкам применяется свойство. Можно указать одно из следующих элементов:

  • Определенный GUID категории контактов , например KSNODETYPE_OUTPUT_UNDEFINED или KSNODETYPE_SPEAKER, предназначен для целевых конечных точек, категория закреплений которых соответствует этим GUID.
  • KSNODETYPE_ANY ({00000000-0000-0000-0000-000000000000}), null GUID, который выступает в качестве подстановочного знака и соответствует всем конечным точкам на устройстве независимо от их категории закреплений.

В следующем фрагменте INF-файла показано, как устройство настроено таким образом, чтобы ее конечная точка никогда не была выбрана в качестве значения по умолчанию, независимо от роли устройства и направления потока данных. В этом примере используется KSNODETYPE_ANY для применения свойства ко всем конечным точкам.

[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_ANY%
HKR,"EP\\0",%PKEY_AudioDevice_NeverSetAsDefaultEndpoint%,0x00010001,0x00000307
...

[Strings]
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSNODETYPE_ANY="{00000000-0000-0000-0000-000000000000}"
PKEY_AudioEndpoint_Association="{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioDevice_NeverSetAsDefaultEndpoint = "{F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},3"

В предыдущем примере 0x00000305 — это побитовое сочетание всех флагов и маск, доступных для PKEY_AudioDevice_NeverSetAsDefaultEndpoint. В следующей таблице показаны флаги и маски и их значения.

Маска флага или конечной точки Ценность

FLOW_MASK_CAPTURE

0x00000200

FLOW_MASK_RENDER

0x00000100

ROLE_MASK_COMMUNICATION

0x00000004

ROLE_MASK_CONSOLE

0x00000001