PKEY_AudioDevice_EnableEndpointByDefault
Dans Windows 7 et les versions ultérieures de Windows, le générateur de points de terminaison classe les points de terminaison en facteurs de forme. Ces facteurs de forme sont basés sur le GUID KSNODETYPE d’une broche sur le filtre de diffusion en continu du noyau (KS) auquel le point de terminaison est connecté. Lorsque le générateur de points de terminaison audio énumère certains points de terminaison, par exemple ceux avec des types de facteur de forme tels que UnknownFormFactor, le générateur de points de terminaison crée ces points de terminaison comme désactivés et masqués. Vous devez donc utiliser le programme Sound dans Panneau de configuration pour activer ces points de terminaison avant de pouvoir les utiliser.
Si vous souhaitez remplacer ce comportement afin que votre point de terminaison soit créé comme activé ou désactivé par défaut, Windows 7 fournit la clé de Registre PKEY_AudioDevice_EnableEndpointByDefault qui vous permet de le faire.
Le générateur de points de terminaison crée des points de terminaison dont l’une des valeurs KSNODETYPE suivantes est désactivée et masquée.
Type de nœud KS | Facteur de forme |
---|---|
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 |
Dans Windows 7 et les versions ultérieures de Windows, les points de terminaison avec un facteur de forme LineLevel mais avec un KSNODETYPE non égal à KSNODETYPE_LINE_CONNECTOR sont également créés comme désactivés et masqués. Les points de terminaison suivants appartiennent à cette catégorie.
Type de nœud KS | Facteur de forme |
---|---|
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 |
L’extrait de code de fichier INF suivant montre comment utiliser PKEY_AudioDevice_EnableEndpointByDefault pour activer ou désactiver un point de terminaison par défaut.
[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"
...
Dans l’exemple précédent, EnableEndpointByDefaultMaskValue représente une valeur de masque DWORD qui est une combinaison d’un indicateur enable ou disable (FLAG_ENABLE ou FLAG_DISABLE) et d’un indicateur de flux de données (FLOW_MASK_RENDER ou FLOW_MASK_CAPTURE).
L’extrait de fichier INF suivant montre comment un lecteur CD est configuré de sorte qu’il soit activé par défaut et qu’il soit configuré en tant que périphérique d’entrée (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"
…
Dans l’exemple précédent, la combinaison OR au niveau du bit de FLOW_MASK_CAPTURE et FLAG_ENABLE équivaut à la combinaison OR au niveau du bit de 0x00000200 et 0x00000001 avec un résultat de 0x00000201. Le tableau suivant montre les valeurs des indicateurs et des masques que vous pouvez utiliser avec PKEY_AudioDevice_EnableEndpointByDefault.
Masque d’indicateur ou de point de terminaison | Valeur |
---|---|
FLAG_DISABLE |
0x00000000 |
FLAG_ENABLE |
0x00000001 |
FLOW_MASK_CAPTURE |
0x00000200 |
FLOW_MASK_RENDER |
0x00000100 |