PKEY_AudioDevice_EnableEndpointByDefault
Windows 7 이상 버전의 Windows에서 엔드포인트 작성기에서는 엔드포인트를 폼 팩터로 분류합니다. 이러한 폼 팩터는 엔드포인트가 연결된 KS(커널 스트리밍) 필터에 있는 핀의 KSNODETYPE GUID를 기반으로 합니다. 오디오 엔드포인트 작성기가 특정 엔드포인트(예: UnknownFormFactor와 같은 폼 팩터 형식을 사용하는 엔드포인트)를 열거하면 엔드포인트 작성기는 이러한 엔드포인트를 사용 안 함 및 숨김으로 만듭니다. 따라서 이러한 엔드포인트를 사용하려면 먼저 제어판 사운드 프로그램을 사용해야 합니다.
엔드포인트가 기본적으로 사용 또는 사용 안 함으로 만들어지도록 이 동작을 재정의하려는 경우 Windows 7은 이 작업을 수행할 수 있는 PKEY_AudioDevice_EnableEndpointByDefault 레지스트리 키를 제공합니다.
엔드포인트 작성기가 사용 안 함 및 숨김으로 다음 KSNODETYPE 값 중 하나로 엔드포인트를 만듭니다.
KS 노드 유형 | 폼 팩터 |
---|---|
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 |
Windows 7 이상 버전의 Windows에서는 LineLevel의 폼 팩터가 있지만 KSNODETYPE이 KSNODETYPE_LINE_CONNECTOR 같지 않은 엔드포인트도 사용 안 함 및 숨김으로 만들어집니다. 다음 엔드포인트는 이 범주에 속합니다.
KS 노드 유형 | 폼 팩터 |
---|---|
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 |
다음 INF 파일 코드 조각은 PKEY_AudioDevice_EnableEndpointByDefault 사용하여 기본적으로 엔드포인트를 사용하거나 사용하지 않도록 설정하는 방법을 보여 줍니다.
[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"
...
앞의 예제에서 EnableEndpointByDefaultMaskValue는 enable 또는 disable 플래그(FLAG_ENABLE 또는 FLAG_DISABLE) 및 데이터 흐름 플래그(FLOW_MASK_RENDER 또는 FLOW_MASK_CAPTURE)의 조합인 DWORD 마스크 값을 나타냅니다.
다음 INF 파일 코드 조각은 CD 플레이어가 기본적으로 사용하도록 설정되고 입력 디바이스(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"
…
앞의 예제에서 FLOW_MASK_CAPTURE 및 FLAG_ENABLE 비트 OR 조합은 0x00000201 결과로 0x00000200 및 0x00000001 비트 OR 조합과 동일합니다. 다음 표에서는 PKEY_AudioDevice_EnableEndpointByDefault 사용할 수 있는 플래그 및 마스크의 값을 보여 줍니다.
플래그 또는 엔드포인트 마스크 | 값 |
---|---|
FLAG_DISABLE |
0x00000000 |
FLAG_ENABLE |
0x00000001 |
FLOW_MASK_CAPTURE |
0x00000200 |
FLOW_MASK_RENDER |
0x00000100 |