PKEY_AudioDevice_EnableEndpointByDefault
In Windows 7 und höheren Versionen von Windows kategorisiert der Endpunkt-Generator Endpunkte in Formfaktoren. Diese Formfaktoren basieren auf der KSNODETYPE-GUID eines Pins für den Kernelstreamingfilter (KS), mit dem der Endpunkt verbunden ist. Wenn der Audioendpunkt-Generator bestimmte Endpunkte aufzählt, z. B. solche mit Formfaktortypen wie UnknownFormFactor, erstellt der Endpunkt-Generator diese Endpunkte als deaktiviert und ausgeblendet. Daher müssen Sie das Sound-Programm in Systemsteuerung verwenden, um solche Endpunkte zu aktivieren, bevor Sie sie verwenden können.
Wenn Sie dieses Verhalten überschreiben möchten, sodass Ihr Endpunkt standardmäßig als aktiviert oder deaktiviert erstellt wird, stellt Windows 7 den PKEY_AudioDevice_EnableEndpointByDefault Registrierungsschlüssel bereit, mit dem Sie dies tun können.
Der Endpunkt-Generator erstellt Endpunkte mit einem der folgenden KSNODETYPE-Werte als deaktiviert und ausgeblendet.
KS-Knotentyp | Formfaktor |
---|---|
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 und höheren Versionen von Windows werden Endpunkte mit dem Formfaktor LineLevel, aber mit einem KSNODETYPE nicht gleich KSNODETYPE_LINE_CONNECTOR als deaktiviert und ausgeblendet erstellt. Die folgenden Endpunkte fallen in diese Kategorie.
KS-Knotentyp | Formfaktor |
---|---|
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 |
Der folgende INF-Dateiausschnitt zeigt, wie Sie PKEY_AudioDevice_EnableEndpointByDefault verwenden, um einen Endpunkt standardmäßig zu aktivieren oder zu deaktivieren.
[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"
...
Im vorherigen Beispiel stellt EnableEndpointByDefaultMaskValue einen DWORD-Maskenwert dar, der eine Kombination aus einem Aktivierungs- oder Deaktivierungsflag (FLAG_ENABLE oder FLAG_DISABLE) und einem Datenflussflag (FLOW_MASK_RENDER oder FLOW_MASK_CAPTURE) darstellt.
Der folgende INF-Dateiausschnitt zeigt, wie ein CD-Player so eingerichtet ist, dass er standardmäßig aktiviert und als Eingabegerät (FLOW_MASK_CAPTURE) konfiguriert ist.
[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"
…
Im vorherigen Beispiel entspricht die bitweise OR-Kombination aus FLOW_MASK_CAPTURE und FLAG_ENABLE der bitweisen OR-Kombination aus 0x00000200 und 0x00000001 mit 0x00000201. Die folgende Tabelle zeigt die Werte der Flags und Masken, die Sie mit PKEY_AudioDevice_EnableEndpointByDefault verwenden können.
Flag oder Endpunktmaske | Wert |
---|---|
FLAG_DISABLE |
0x00000000 |
FLAG_ENABLE |
0x00000001 |
FLOW_MASK_CAPTURE |
0x00000200 |
FLOW_MASK_RENDER |
0x00000100 |