Condividi tramite


PKEY_AudioDevice_NeverSetAsDefaultEndpoint

È possibile decidere di configurare determinati dispositivi in modo che non possano mai essere selezionati come dispositivi predefiniti. Ad esempio, linee modem e dispositivi audio medicali. Windows 7 e versioni successive di Windows forniscono la chiave del Registro di sistema PKEY_AudioDevice_NeverSetAsDefaultEndpoint per impedire la selezione dell'endpoint di un dispositivo come endpoint predefinito.

Importante

Quando si imposta PKEY_AudioDevice_NeverSetAsDefaultEndpoint, è necessario impostare anche PKEY_AudioEndpoint_Association nella stessa EP\\ sottochiave. Il servizio AudioEndpointBuilder usa il valore Association per associare la proprietà dell'endpoint all'endpoint corretto nel dispositivo. Se l'associazione non è impostata, la proprietà PKEY_AudioDevice_NeverSetAsDefaultEndpoint non viene applicata.

Annotazioni

L'impostazione di questa proprietà impedisce che l'endpoint venga selezionato come endpoint predefinito sia dall'algoritmo di selezione automatica del dispositivo che dall'utente tramite l'interfaccia utente delle impostazioni audio. L'utente non può impostare manualmente l'endpoint come dispositivo predefinito o come dispositivo di comunicazione predefinito per i ruoli e i flussi specificati nella maschera.

L'estratto di file INF seguente illustra come usare PKEY_AudioDevice_NeverSetAsDefaultEndpoint per configurare un endpoint in modo che non possa mai essere selezionato come predefinito.

[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 setup endpoint so that
;; it cannot be selected as the default endpoint.
[Xyz.AddReg]
HKR,"EP\\n",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_GUID%
HKR,"EP\\n",%PKEY_AudioDevice_NeverSetAsDefaultEndpoint%,0x00010001,NeverSetAsDefaultEndpointMaskValue
...

[Strings]
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
PKEY_AudioEndpoint_Association="{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioDevice_NeverSetAsDefaultEndpoint = "{F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},3"
...

Nell'esempio precedente, NeverSetAsDefaultEndpointMaskValue rappresenta un valore di maschera DWORD che è una combinazione di flag di ruolo del dispositivo e flag del flusso di dati.

KSNODETYPE_GUID è il valore per PKEY_AudioEndpoint_Association che determina gli endpoint a cui si applica la proprietà. È possibile specificare uno dei seguenti elementi:

  • GUID specifico della categoria di pin , ad esempio KSNODETYPE_OUTPUT_UNDEFINED o KSNODETYPE_SPEAKER, per specificare come destinazione solo gli endpoint la cui categoria di pin corrisponde a tale GUID.
  • KSNODETYPE_ANY ({00000000-0000-0000-0000-000000000000}), un GUID Null che funge da carattere jolly e corrisponde a tutti gli endpoint nel dispositivo indipendentemente dalla categoria di pin.

Il frammento di file INF seguente mostra come viene configurato un dispositivo in modo che l'endpoint non sia mai selezionato come predefinito, indipendentemente dal ruolo del dispositivo e dalla direzione del flusso di dati. Questo esempio usa KSNODETYPE_ANY per applicare la proprietà a tutti gli endpoint.

[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 to setup endpoint so that
;; it cannot be selected as the default endpoint.
[MDVAD.EPProperties.AddReg]
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"EP\\0",%PKEY_AudioDevice_NeverSetAsDefaultEndpoint%,0x00010001,0x00000307
...

[Strings]
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSNODETYPE_ANY="{00000000-0000-0000-0000-000000000000}"
PKEY_AudioEndpoint_Association="{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioDevice_NeverSetAsDefaultEndpoint = "{F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},3"

Nell'esempio precedente 0x00000305 è la combinazione OR bit per bit di tutti i flag e delle maschere disponibili per PKEY_AudioDevice_NeverSetAsDefaultEndpoint. Nella tabella seguente vengono illustrati i flag e le maschere e i relativi valori.

Contrassegno o maschera endpoint Valore

FLOW_MASK_CAPTURE

0x00000200

FLOW_MASK_RENDER

0x00000100

ROLE_MASK_COMMUNICATION

0x00000004

ROLE_MASK_CONSOLE

0x00000001