Поделиться через


PKEY_AudioDevice_EnableEndpointByDefault

В Windows 7 и более поздних версиях Windows построитель конечных точек классифицирует конечные точки по форм-факторам. Эти форм-факторы основаны на идентификаторе GUID KSNODETYPE контакта на фильтре потоковой передачи ядра (KS), к которому подключена конечная точка. Когда построитель конечных точек аудио перечисляет определенные конечные точки, например с типами форм-фактора, такими как 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-файла показано, как настроен проигрыватель компакт-дисков таким образом, чтобы он был включен по умолчанию и настроен в качестве устройства ввода (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 эквивалентно побитовой комбинации 0X00000200 и 0x00000001 с результатом 0x00000201. В следующей таблице показаны значения флагов и масок, которые можно использовать с PKEY_AudioDevice_EnableEndpointByDefault.

Флаг или маска конечной точки Значение

FLAG_DISABLE

0x00000000

FLAG_ENABLE

0x00000001

FLOW_MASK_CAPTURE

0x00000200

FLOW_MASK_RENDER

0x00000100