PKEY_AudioDevice_EnableEndpointByDefault
No Windows 7 e versões posteriores do Windows, o construtor de pontos de extremidade categoriza os pontos de extremidade em fatores forma. Esses fatores forma são baseados no GUID KSNODETYPE de um pino no filtro KS (streaming de kernel) ao qual o ponto de extremidade está conectado. Quando o construtor de ponto de extremidade de áudio enumera determinados pontos de extremidade, por exemplo, aqueles com tipos de fator forma, como UnknownFormFactor, o construtor de ponto de extremidade cria esses pontos de extremidade como desabilitados e ocultos. Portanto, você deve usar o programa Som em Painel de Controle para habilitar esses pontos de extremidade antes de usá-los.
Se você quiser substituir esse comportamento para que o ponto de extremidade seja criado como habilitado ou desabilitado por padrão, o Windows 7 fornece a chave do Registro PKEY_AudioDevice_EnableEndpointByDefault que permite fazer isso.
O construtor de pontos de extremidade cria pontos de extremidade com qualquer um dos seguintes valores KSNODETYPE como desabilitados e ocultos.
Tipo de nó KS | Fator forma |
---|---|
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 |
No Windows 7 e versões posteriores do Windows, os pontos de extremidade com um fator forma de LineLevel, mas com um KSNODETYPE não igual a KSNODETYPE_LINE_CONNECTOR também são criados como desabilitados e ocultos. Os pontos de extremidade a seguir se enquadram nessa categoria.
Tipo de nó KS | Fator forma |
---|---|
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 |
O snippet de arquivo INF a seguir mostra como usar PKEY_AudioDevice_EnableEndpointByDefault para habilitar ou desabilitar um ponto de extremidade por padrão.
[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"
...
No exemplo anterior, EnableEndpointByDefaultMaskValue representa um valor de máscara DWORD que é uma combinação de um sinalizador enable ou disable (FLAG_ENABLE ou FLAG_DISABLE) e um sinalizador de fluxo de dados (FLOW_MASK_RENDER ou FLOW_MASK_CAPTURE).
O snippet de arquivo INF a seguir mostra como um player de CD é configurado para que ele seja habilitado por padrão e esteja configurado como um dispositivo de entrada (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"
…
No exemplo anterior, a combinação OR bit a bit de FLOW_MASK_CAPTURE e FLAG_ENABLE é equivalente à combinação OR bit a bit de 0x00000200 e 0x00000001 com resultado de 0x00000201. A tabela a seguir mostra os valores dos sinalizadores e máscaras que você pode usar com PKEY_AudioDevice_EnableEndpointByDefault.
Sinalizador ou máscara de ponto de extremidade | Valor |
---|---|
FLAG_DISABLE |
0x00000000 |
FLAG_ENABLE |
0x00000001 |
FLOW_MASK_CAPTURE |
0x00000200 |
FLOW_MASK_RENDER |
0x00000100 |