PKEY_AudioDevice_NeverSetAsDefaultEndpoint

特定のデバイスを既定のデバイスとして選択できないように設定することもできます。 これらには、モデム回線や医療オーディオ デバイスなどが含まれます。Windows 7 以降のバージョンの Windows では 、既定 のエンドポイントとしてデバイスのエンドポイントを選択できないようにするために、PKEY_AudioDevice_NeverSetAsDefaultEndpoint レジストリ キーが提供されます。

Important

PKEY_AudioDevice_NeverSetAsDefaultEndpointを設定するときは、同じEP\\ サブキーにPKEY_AudioEndpoint_Associationも設定する必要があります。 AudioEndpointBuilder サービスは、Association 値を使用して、エンドポイント プロパティをデバイス上の正しいエンドポイントと照合します。 関連付けが設定されていない場合、 PKEY_AudioDevice_NeverSetAsDefaultEndpoint プロパティは適用されません。

このプロパティを設定すると、既定のデバイスの自動選択アルゴリズムと、サウンド設定 UI を使用したユーザーの両方によって、エンドポイントが既定のエンドポイントとして選択されなくなります。 ユーザーは、マスクで指定されたロールとフローの既定のデバイスまたは既定の通信デバイスとしてエンドポイントを手動で設定することはできません。

次の INF ファイルの抜粋は、 PKEY_AudioDevice_NeverSetAsDefaultEndpoint を使用してエンドポイントを設定し、既定で選択できないようにする方法を示しています。

[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"
...

前の例では、NeverSetAsDefaultEndpointMaskValue は、デバイス ロール フラグとデータ フロー フラグの組み合わせである DWORD マスク値を表します。

KSNODETYPE_GUID は、プロパティが 適用されるエンドポイント を決定するPKEY_AudioEndpoint_Associationの値です。 次のいずれかを指定できます。

  • ピン カテゴリが GUID と 一致するエンドポイントのみを対象とする、KSNODETYPE_OUTPUT_UNDEFINEDやKSNODETYPE_SPEAKERなどの特定のピン カテゴリ GUID。
  • KSNODETYPE_ANY ({00000000-0000-0000-0000-000000000000}) は、ワイルドカードとして機能し、ピン カテゴリに関係なくデバイス上のすべてのエンドポイントと一致する null GUID です。

次の INF ファイル スニペットは、デバイスの役割とデータ フローの方向に関係なく、エンドポイントが既定で選択されないようにデバイスがどのように設定されているかを示しています。 この例では 、KSNODETYPE_ANY を使用して、プロパティをすべてのエンドポイントに適用します。

[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"

前の例では、0x00000305は、PKEY_AudioDevice_NeverSetAsDefaultEndpointで使用できるすべてのフラグとマスクのビットごとの OR の組み合わせです。 次の表は、フラグとマスクとその値を示しています。

フラグまたはエンドポイント マスク 価値

FLOW_MASK_CAPTURE

0x00000200

FLOW_MASK_RENDER

0x00000100

ROLE_MASK_COMMUNICATION

0x00000004

ROLE_MASK_CONSOLE

0x00000001