PKEY_AudioDevice_EnableEndpointByDefault
In Windows 7 e versioni successive di Windows, il generatore di endpoint classifica gli endpoint in fattori di forma. Questi fattori di forma si basano sul GUID KSNODETYPE di un pin nel filtro di streaming del kernel (KS) a cui è connesso l'endpoint. Quando il generatore di endpoint audio enumera determinati endpoint, ad esempio quelli con tipi di fattore di forma come UnknownFormFactor, il generatore di endpoint crea questi endpoint come disabilitati e nascosti. È quindi necessario usare il programma Sound in Pannello di controllo per abilitare tali endpoint prima di poterli usare.
Se si vuole eseguire l'override di questo comportamento in modo che l'endpoint venga creato come abilitato o disabilitato per impostazione predefinita, Windows 7 fornisce la chiave del Registro di sistema PKEY_AudioDevice_EnableEndpointByDefault che consente di eseguire questa operazione.
Il generatore di endpoint crea endpoint con uno dei valori KSNODETYPE seguenti come disabilitati e nascosti.
Tipo di nodo KS | Fattore di 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 |
In Windows 7 e versioni successive di Windows gli endpoint con un fattore di forma LineLevel, ma con KSNODETYPE non uguale a KSNODETYPE_LINE_CONNECTOR vengono creati anche come disabilitati e nascosti. Gli endpoint seguenti rientrano in questa categoria.
Tipo di nodo KS | Fattore di 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 |
Il frammento di file INF seguente illustra come usare PKEY_AudioDevice_EnableEndpointByDefault per abilitare o disabilitare un endpoint per impostazione predefinita.
[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"
...
Nell'esempio precedente EnableEndpointByDefaultMaskValue rappresenta un valore di maschera DWORD che è una combinazione di un flag enable o disable (FLAG_ENABLE o FLAG_DISABLE) e un flag del flusso di dati (FLOW_MASK_RENDER o FLOW_MASK_CAPTURE).
Il frammento di file INF seguente mostra come viene configurato un lettore CD in modo che sia abilitato per impostazione predefinita e sia configurato come dispositivo di input (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"
…
Nell'esempio precedente, la combinazione OR bit per bit di FLOW_MASK_CAPTURE e FLAG_ENABLE equivale alla combinazione OR bit per bit di 0x00000200 e 0x00000001 con un risultato di 0x00000201. La tabella seguente illustra i valori dei flag e delle maschere che è possibile usare con PKEY_AudioDevice_EnableEndpointByDefault.
Contrassegno o maschera dell'endpoint | Valore |
---|---|
FLAG_DISABLE |
0x00000000 |
FLAG_ENABLE |
0x00000001 |
FLOW_MASK_CAPTURE |
0x00000200 |
FLOW_MASK_RENDER |
0x00000100 |