오디오기기 절대 기본 종료지점으로 설정 안 함

특정 디바이스를 기본 디바이스로 선택할 수 없도록 설정하도록 결정할 수 있습니다. 예를 들어 모뎀 라인 및 의료 오디오 디바이스가 포함됩니다. Windows 7 이상 버전의 Windows는 디바이스 의 엔드포인트를 기본 엔드포인트로 선택할 수 없도록 PKEY_AudioDevice_NeverSetAsDefaultEndpoint 레지스트리 키를 제공합니다.

중요합니다

PKEY_AudioDevice_NeverSetAsDefaultEndpoint 설정할 때 동일한 EP\\ 하위 키에서 PKEY_AudioEndpoint_Association 설정해야 합니다. AudioEndpointBuilder 서비스는 연결 값을 사용하여 엔드포인트 속성을 디바이스의 올바른 엔드포인트와 일치합니다. 연결이 설정되지 않은 경우 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