다음을 통해 공유


Windows 10부터 기본 오디오 엔드포인트 선택

Windows 10 오디오 하위 시스템은 기본 오디오 엔드포인트 선택에 대해 향상된 추론이 있는 알고리즘을 사용합니다. 이 항목에서는 이러한 추론과 Windows 10 오디오 하위 시스템이 이를 사용하여 기본 오디오 엔드포인트를 선택하는 방법에 대해 설명합니다. 새 Windows 10 선택 메커니즘을 가장 잘 이해하기 위해 이 항목에서는 Windows 7에서 기본 오디오 엔드포인트 선택이 발생하는 방법도 설명합니다. 이 항목의 대상 그룹은 OEM 및 IHV입니다.

이 정보는 Windows 10 운영 체제에 적용됩니다.

여기에 설명된 참조 및 리소스는 이 항목의 끝에 나와 있습니다.

소개

대부분의 PC 오디오 디바이스에는 논리적으로 독립적인 여러 오디오 기능이 포함되어 있습니다. Windows 7 및 Windows 10에서는 각 기능이 별도의 오디오 엔드포인트로 노출됩니다. 엔드포인트는 Windows 7의 다음 예제 대화 상자에 표시된 것처럼 제어판 소리 애플리케이션에 나열됩니다.

Windows 7의 제어판 소리 애플리케이션 대화 상자 스크린샷

그리고 Windows 10에서 사용할 수있는 새로운 사운드 설정 페이지에서.

Windows 10의 소리 설정 페이지 스크린샷

한 번에 하나의 오디오 엔드포인트만 특정 콘솔 또는 통신 역할의 기본값으로 설정할 수 있습니다. 그러나 Windows 10부터 앱 볼륨 및 디바이스 기본 설정 페이지를 사용하여 이러한 역할에 대한 다른 엔드포인트를 다른 애플리케이션으로 대상으로 지정할 수 있는 옵션이 있습니다.

Windows 10의 앱 볼륨 및 디바이스 기본 설정 페이지 스크린샷

Windows 7 및 Windows 10 오디오 하위 시스템은 사용자 기본 설정이 지정되지 않은 경우 유사한 알고리즘을 사용하여 기본 오디오 엔드포인트를 결정합니다. 그러나 Windows 10 알고리즘은 기본값의 사용자 선택을 처리하고 애플리케이션별 기본 설정을 처리하는 방식으로 Windows 7과 다릅니다.

이 항목에서는 Windows 10에서 기본 오디오 엔드포인트를 선택하는 방법을 설명합니다. Windows 10의 새로운 기능과 관련하여 Windows 7의 기본 오디오 엔드포인트 선택도 설명합니다.

기본 오디오 엔드포인트 선택에 대한 기본 알고리즘

Windows 7 및 Windows 10 오디오 하위 시스템은 유사한 알고리즘을 사용하여 기본 오디오 엔드포인트를 결정합니다. 알고리즘은 다음과 같이 작동합니다.

  • 모든 ACTIVE 엔드포인트를 반복하여 이 애플리케이션에 대한 사용자가 기본 설정으로 설정된 엔드포인트 집합을 찾습니다(Windows 10의 경우 새로운 기능).
    • 엔드포인트가 식별되면 반환되고 프로세스가 완료됩니다.
  • 식별된 엔드포인트가 없는 경우 모든 ACTIVE 엔드포인트를 반복하여 시스템에 대한 사용자가 기본 설정으로 설정된 엔드포인트 집합을 찾습니다(Windows 10용으로 선택됨).
    • 엔드포인트가 식별되면 반환되고 프로세스가 완료됩니다.
  • 식별된 엔드포인트가 없는 경우 모든 ACTIVE 엔드포인트를 반복하여 요청된 역할에 대해 "순위" 속성이 가장 높은 엔드포인트를 찾습니다. 기본 PKEY_AudioDevice_NeverSetAsDefaultEndpoint 속성 집합으로 설정된 적이 없습니다. (Windows 10에 대해 수정된 순위 가중치 값).
    • 엔드포인트가 식별되면 반환되고 프로세스가 완료됩니다.
  • 식별된 엔드포인트가 없으면 E_NOTFOUND 나타내는 요청이 실패합니다.

DEVICE_STATE_XXX 상수에 정의된 4개의 엔드포인트 상태인 ACTIVE, UNPLUGGED, DISABLED 및 NOT PRESENT가 있습니다. 오디오 하위 시스템은 기본 오디오 엔드포인트를 결정할 때 활성 엔드포인트(현재 및 사용 상태)만 고려합니다. 엔드포인트의 상태가 ACTIVE 상태 또는 활성 상태로 변경되는 이벤트는 현재 기본 오디오 엔드포인트에 영향을 줄 수 있습니다. 이러한 이벤트에는 오디오 디바이스 삽입, 디바이스 플러깅 해제 및 새 오디오 디바이스 설치가 포함됩니다. 이러한 작업에 대한 응답으로 Windows 오디오 하위 시스템은 기본 오디오 엔드포인트 추론 알고리즘을 실행하여 새 기본 오디오 엔드포인트를 결정합니다.

Windows 7의 엔드포인트 타임스탬프 속성

엔드포인트 타임스탬프 속성은 시스템 시간을 포함하는 속성 키입니다. Windows 7에서는 제어판 Sound 애플리케이션을 통해 기본 오디오 엔드포인트로 설정되면 엔드포인트의 타임스탬프 속성이 생성되거나 업데이트됩니다.

제어판 Sound 애플리케이션의 기본 오디오 엔드포인트 선택 스크린샷

타임스탬프 속성은 각 역할에 연결되며, 타임스탬프 속성은 기본 선택 알고리즘에서 해당 역할에 대해 사용자가 기본 기본값으로 설정한 엔드포인트를 식별하는 데 사용됩니다. 알고리즘은 최신 타임스탬프 속성을 사용하여 엔드포인트를 기본 엔드포인트로 식별합니다.

Windows 10의 Level 속성

사용자 기본 설정에 대해 Windows 7에서 사용된 타임스탬프 속성은 초기 기본 선택 후 새로 연결된 디바이스를 자동으로 선택할 수 없습니다. 예를 들어 사용자가 과거에 언제든지 내부 스피커를 기본 엔드포인트로 설정하고 나중에 새 USB 헤드폰을 연결한 경우 시스템은 수동 선택 없이 USB 헤드폰으로 이동하지 않습니다.

Windows 10부터 사용자 기본 선택은 사용자가 수행한 기본 선택 시 사용 가능한 엔드포인트를 고려하는 이전 기본 설정의 트리와 유사한 구조로 빌드됩니다. 그 이유는 사용자가 기본 엔드포인트를 선택할 때 선택 시 활성 상태였던 다른 엔드포인트를 기준으로 해당 엔드포인트에 대한 기본 설정을 전달하기 때문입니다. 사용자는 선택한 디바이스에 대한 절대 기본 설정을 모든 상황에서 영원히 전달하지 않습니다.

타임스탬프 속성의 사용 및 생성이 Windows 10에서 제거되었으며 Level 속성으로 대체되었습니다. 수준 속성은 사용자 기본 설정의 트리와 유사한 구조를 빌드하는 데 사용됩니다. 타임스탬프 속성과 마찬가지로 각 역할에 연결된 수준 속성이 있습니다. 사용자가 사운드 제어판, 사운드 설정 페이지 또는 시스템 트레이의 오디오 컨트롤을 통해 기본 엔드포인트를 선택할 때마다 수준 속성이 생성되거나 업데이트됩니다.

기본 할당 알고리즘은 다음과 같이 작동합니다.

엔드포인트를 기본값으로 선택하면 해당 엔드포인트는 사용 가능한 가장 높은 수준을 할당하여 트리와 유사한 구조의 맨 위로 이동합니다. 트리의 다음 수준에는 과거에 기본값으로 선택되었거나 이 선택 당시 활성 상태였지만 사용자가 선택한 적이 없는 하나 이상의 엔드포인트가 포함됩니다. 이후의 각 선택 영역은 원하는 엔드포인트를 목록 맨 위로 가져와 이전 선택 항목을 아래로 이동하고 활성 상태로 그룹화하지만 아직 선택되지 않은 엔드포인트를 함께 사용하여 연결 조건을 만듭니다. 시스템의 모든 엔드포인트가 기본값으로 설정된 경우 결과 구조는 각 수준에서 하나의 엔드포인트가 있는 간단한 순서가 지정된 목록이 됩니다.

기본 결정 알고리즘은 다음과 같이 작동합니다.

첫째, 수준 값이 없는 활성 엔드포인트는 순위와 비교되며, 가장 높은 순위가 기본값으로 선택된 엔드포인트가 있습니다. 이러한 방식으로 최근에 추가된 엔드포인트는 시스템에서 최신이며 사용자가 이전 기본값을 선택한 후에 연결되기 때문에 기본값이 될 수 있는 첫 번째 기회가 제공됩니다.

다음으로, 모든 활성 엔드포인트에 수준이 포함된 경우 동률 없이 가장 높은 수준의 엔드포인트가 기본값으로 선택됩니다. 가장 높은 수준을 갖는 것은 과거 어느 시점에서 사용자가 이 엔드포인트를 기본값으로 설정한 반면 하위 수준 값을 가진 다른 엔드포인트는 활성 상태임을 나타냅니다.

마지막으로 모든 엔드포인트에 수준 값이 포함되어 있고 가장 높은 수준 값을 가진 엔드포인트가 모두 연결된 경우 엔드포인트 순위는 동률을 끊는 데 사용됩니다. 이는 이러한 엔드포인트가 기본 선택 시 활성 상태였지만 자체적으로 선택되지 않음을 나타냅니다. 이러한 엔드포인트 간의 사용자 기본 설정 표시가 없으므로 자동화된 순위 시스템이 사용됩니다.

이 새 알고리즘을 사용하면 기본값이 되기 위해 "새" 엔드포인트에 가중치가 증가된다는 점에 주목할 가치가 있습니다. 즉, 오디오 엔드포인트가 시스템에 새로 표시되도록 하는 드라이버 동작은 기본 변경을 트리거할 가능성이 있습니다.

오디오 엔드포인트에서 사용자 설정이 손실되고 오디오 엔드포인트가 시스템에 "새로운" 상태로 표시되고 기본 디바이스의 변경이 트리거될 수 있는 드라이버 동작 및 이벤트의 예는 다음과 같습니다.

  • 다른 드라이버 설치 예를 들어 하드웨어에 대해 HDAudio 클래스 드라이버와 일치하는 타사 드라이버 간에 전환합니다. 이는 사용자 설정과 사용 가능한 엔드포인트가 관련이 없는 두 개 이상의 드라이버 설치 간에 동일하지 않은 것으로 간주되기 때문에 디자인상 필요합니다.
  • 드라이버를 제거하고 다시 설치합니다. 오디오 드라이버를 제거하면 AudioEndpointBuilder가 드라이버에 연결된 사용자 설정을 삭제합니다. 새 드라이버를 설치하면 AudioEndpointBuilder가 새 오디오 엔드포인트를 만듭니다. 이는 예상된 동작이며 의도적으로 수행되지만 사용자 설정이 예기치 않게 손실될 경우 자동화된 설치 관리자가 이 동작을 피해야 합니다.
  • 오디오 엔드포인트 필터 참조 문자열 또는 핀 ID에 대한 모든 변경 내용입니다. 오디오 엔드포인트는 KS 인터페이스를 만들 때 PnP에 전달된 참조 문자열과 외부 커넥터의 핀 ID로 식별됩니다. 이러한 값을 변경하면 새 오디오 엔드포인트가 만들어집니다. 이 새 오디오 엔드포인트에는 이전 참조 문자열 및 커넥터 핀 ID에 연결된 사용자 설정이 포함되지 않습니다. 드라이버 업데이트 전반을 포함하여 드라이버 설치 수명 동안 참조 문자열 및 커넥터 핀 ID가 변경되어서는 안 됩니다.
  • 터미널 유형 또는 싱크 ID를 변경하는 HDMI 또는 디스플레이 오디오 디바이스입니다. 터미널 유형 및 싱크 ID는 사용자가 시스템에 다른 디스플레이를 연결할 때 변경될 것으로 예상되며, 다른 디스플레이는 새 사용자 설정이 연결된 새 엔드포인트입니다. 그러나 연결된 디스플레이에 해당하는 변경 내용이 없는 경우 이러한 값을 변경하면 사용자 설정이 손실된 것으로 인식됩니다. 싱크 ID 및 터미널 형식은 연결된 디스플레이에 대해 상수로 다시 기본 합니다.

Windows 10 기본 오디오 엔드포인트 추론

자동 엔드포인트 선택에 대한 Windows 10 기본 오디오 엔드포인트 추론은 Windows 7 추론과 동일하며, 더 나은 사용자 환경을 제공하기 위해 요소 가중치를 약간 수정했습니다.

기본 선택 추론은 오디오 엔드포인트에 대한 정보를 수집하여 시작합니다. 요소입니다. 그런 다음 각 요소에 가중치가 지정되고 모든 요소에 대한 결과 가중치 값이 합산됩니다. 결과 합계를 엔드포인트 순위라고 합니다. 각 엔드포인트(콘솔 및 통신)의 각 역할에 대해 순위 값이 계산됩니다.

그런 다음, 순위가 가장 높은 엔드포인트가 요청된 역할의 기본값으로 선택됩니다.

Windows 10 추론 요인

Windows 10 오디오 하위 시스템은 다음과 같은 엔드포인트 특성 또는 요소를 고려하여 기본 오디오 엔드포인트를 선택합니다.

Windows 10은 지원되는 모든 엔드포인트 요소에 대한 열거형 값 집합을 정의하고 레지스트리에 저장합니다. 이러한 요소 및 해당 열거형 값 집합에 대한 자세한 설명은 다음과 같습니다.

잭 검색 기능

이 기능을 사용하는 엔드포인트는 엔드포인트에 연결된 오디오 주변 장치가 연결되거나 분리된 경우 오디오 드라이버가 오디오 하위 시스템에 알릴 수 있음을 의미합니다. 잭 검색 기능을 지원하는 오디오 엔드포인트를 동적 엔드포인트라고 하며, 이 지원을 제공하지 않는 엔드포인트를 정적 엔드포인트라고 합니다. 잭 검색 기능을 지원하려면 오디오 디바이스 드라이버가 KSPROPERTY_JACK_DESCRIPTION2 속성을 지원해야 합니다. 이 속성에 대한 자세한 내용은 KSPROPERTY_JACK_DESCRIPTION2 참조하세요.

잭 검색 기능 열거형 값
지원됨
NotSupported

Windows 10 기본 오디오 장치 추론은 모든 USB 오디오 엔드포인트와 Bluetooth 오디오 엔드포인트를 잭 감지 가능으로 처리합니다.

폼 팩터

오디오 엔드포인트의 폼 팩터는 헤드폰, 스피커 또는 S/PDIF와 같이 사용자가 상호 작용하는 오디오 엔드포인트의 물리적 특성을 나타냅니다. 엔드포인트의 폼 팩터를 확인하기 위해 오디오 하위 시스템은 기본 제공 고정 논리를 사용하여 오디오 드라이버에 의해 노출되는 KSNodeType(커널 스트리밍) 핀의 범주(KSNodeType)를 특정 폼 팩터에 매핑합니다. 자세한 내용은 EndpointFormFactor를 참조하세요.

엔드포인트 폼 팩터 열거형 값
RemoteNetworkDevice
스피커
LineLevel
헤드폰
마이크
헤드셋
단말기
UnknownDigitalPassthrough
Spdif
DigitalAudioDisplayDevice
UnknownFormFactor

KSNodeType

드라이버가 오디오 잭에 연결될 수 있는 오디오 디바이스에 대한 자세한 정보를 가지고 있기 때문에 오디오 드라이버는 엔드포인트에서 KS 핀에 대한 KSNodeType을 선택합니다. 따라서 KsNodeType은 폼 팩터보다 엔드포인트에 대한 보다 구체적인 정보를 표시합니다.

KSNodeType 열거형 값
KSNODETYPE_SPEAKER
KSNODETYPE_MICROPHONE_ARRAY
KSNODETYPE_HEADPHONES

KsNodeType에 대한 자세한 내용은 Pin 범주 속성을 참조 하세요.

버스 형식

이 요소는 오디오 엔드포인트를 노출한 오디오 디바이스가 열거된 버스 유형을 나타냅니다.

버스 형식 열거형 값
BTHENUM
BTHHFENUM
USB
Hdaudio
PCI
Unknown

오디오 하위 시스템은 다른 모든 엔드포인트 특성이 동일한 경우 다른 버스 유형보다 특정 버스 유형의 엔드포인트를 선호합니다. 예를 들어 시스템은 사용자에게 더 나은 통신 환경을 제공하기 위해 온보드 HD 오디오 헤드폰보다 Bluetooth 헤드폰 우선 순위를 부여합니다. 즉, 최종 사용자가 이 PC에 Bluetooth 헤드폰 디바이스를 도입하면 시스템이 기본 디바이스로 만듭니다.

일반 위치

일반 위치는 오디오 엔드포인트가 연결된 잭 또는 디바이스의 실제 총 위치를 나타냅니다.

일반 위치 열거형 값
PrimaryBox(기본 시스템 섀시에서 사용자가 액세스할 수 있음)
내부(마더보드에서는 상자를 열지 않고 액세스할 수 없음)
별도(예: 모바일 상자)
기타

기하학적 위치

기하학적 위치는 오디오 엔드포인트가 연결된 잭 또는 디바이스의 기하학적 위치를 나타냅니다.

기하학적 위치 열거형 값
eGeoLocRear
eGeoLocFront
eGeoLocLeft
eGeoLocRight
eGeoLocTop
eGeoLocBottom
eGeoLocRearOPanel
eGeoLocRiser

SubtypeSpecific

하위 형식 특정 속성을 사용하면 엔드포인트의 핀 범주 속성에 종속된 추론 값을 나중에 확장할 수 있습니다. 지원/지원되지 않는 기능을 허용합니다.

SubtypeSpecific 기능 열거형 값
지원됨
NotSupported

현재 유일한 하위 유형 특정 속성은 마이크 배열 기하 도형과 관련이 있습니다. 마이크 배열 기하 도형컨텍스트에서 "지원됨"은 앞/뒤 기하 도형을 의미합니다. "NotSupported"는 다른 기하 도형을 나타냅니다. 둘 이상의 마이크 배열이 있는 경우 앞/후면 기하 도형에 대한 기본 설정을 사용할 수 있습니다.

Windows 10 추론 세부 정보

Windows 10 기본 오디오 엔드포인트 추론은 각 엔드포인트 요소에 가중치를 줍니다. 요인의 우선 순위가 높을수록 가중치가 커집니다. 이 항목에서는 WeightFactor_Xxx 사용하여 요소의 우선 순위를 식별합니다.

또한 Windows 10 추론은 순위 값(이 항목의 nRankXxx )을 요소 범주 내의 각 열거형 값에 할당합니다. 이 순위 값은 동일한 요소 아래의 모든 열거형 값 중에서 상대적 중요도를 설정합니다.

이러한 WeightFactor_XxxnRankXxx 값은 운영 체제를 설치하는 동안 Windows가 레지스트리에 저장합니다. 추론의 순위 계산에 대한 매개 변수 집합은 엔드포인트의 특성에 따라 달라집니다. 다음 표에서는 매개 변수의 예제 집합을 보여줍니다.

엔드포인트 비율의 가중치 엔드포인트 요소의 순위 값
WeightFactor_JackDet nRankJackDet
WeightFactor_SubType nRankSubType
WeightFactor_FormFactor nRankFormFactor
WeightFactor_BusType nRankBusType
WeightFactor_GenLoc nRankGenLoc
WeightFactor_GeoLoc nRankGeoLoc
WeightFactor_SubtypeSpecific nRankSubtypeSpecific

오디오 하위 시스템은 다음과 같이 모든 요소에서 엔드포인트의 가중치 순위를 계산합니다.

WeightedRankValue =

WeightFactor_JackDet * nRankJackDet +

WeightFactor_SubType * nRankSubType +

WeightFactor_FormFactor * nRankFormFactor +

WeightFactor_BusType * nRankBusType +

WeightFactor_GenLoc * nRankGenLoc +

WeightFactor_GeoLoc * nRankGeoLoc |

WeightFactor_SubtypeSpecific * nRankSubtypeSpecific입니다.

오디오 하위 시스템은 모든 활성 엔드포인트에 대한 가중 순위 값을 계산하고 기본 오디오 엔드포인트로 가장 높은 순위를 포함하는 엔드포인트를 선택합니다.

Windows 10 기본 오디오 엔드포인트 선택 추론 메커니즘은 예외 기능도 지원합니다. 이 기능을 사용하면 시스템 또는 OEM에서 오디오 하위 시스템이 가중치가 매우 높거나 매우 낮은 특정 특성 집합과 일치하는 엔드포인트를 지정할 수 있습니다. 이러한 지정은 예기치 않은 시나리오를 처리할 때 시스템의 추론을 더 유연하게 만듭니다.

콘솔 디바이스 역할 및 통신 디바이스 역할에 대한 추론은 별개이지만 메커니즘은 정확히 동일하며 역할에 따라 요소에 대한 순서가 다릅니다.

Windows 10 받은 편지함 추론 설정

Windows 10은 이 항목의 추론 세부 정보를 기반으로 하는 설정과 함께 제공됩니다. 기본 콘솔 오디오 엔드포인트 및 기본 통신 오디오 엔드포인트에는 다른 설정이 있습니다. 이 섹션에서는 두 유형의 엔드포인트에 대한 설정을 설명합니다.

기본 콘솔 오디오 엔드포인트에 대한 받은 편지함 추론 설정

이 섹션에서는 콘솔 오디오 엔드포인트의 각 요소에 대한 기본 추론 설정을 설명합니다. 요소는 우선 순위 순서로 나열됩니다. 즉, Windows 10은 오디오 하위 시스템이 기본 콘솔 엔드포인트를 결정할 때 다음 목록의 첫 번째 요소에 가장 높은 우선 순위를 부여합니다.

잭 검색 기능

잭 검색 기능이 있는 엔드포인트는 오디오 주변 장치가 시스템에 물리적으로 연결되어 있는지 여부와 연결되거나 분리될 때 시스템에 최신 정보를 제공합니다. 이 정보는 더 나은 최종 사용자 환경을 만드는 데 도움이 되므로 Windows 10은 이 요소를 가장 높은 우선 순위 요소로 설정합니다. 잭 검색 기능이 있는 엔드포인트는 다른 요인을 비교해도 이 기능이 없는 엔드포인트보다 우선 순위가 높습니다.

폼 팩터

Windows 10은 Windows 7과 다른 폼 팩터 우선 순위 순서를 사용하며 사용자 피드백 및 연구에 따라 값이 조정되었습니다.

Windows 10은 렌더링 콘솔 엔드포인트에 대한 폼 팩터 우선 순위를 다음 우선 순위 순서로 설정합니다.

  • 헤드폰 및 헤드셋
  • 스피커
  • LineLevel
  • DigitalAudioDisplayDevice
  • S/PDIF
  • 다른 항목(동일한 가장 낮은 우선 순위로 처리됨, 즉 with_nRankFormFactor_ 0과 같음)

Windows 10은 다음 우선 순위 순서로 캡처 콘솔 엔드포인트에 대한 폼 팩터 우선 순위를 설정합니다.

  • 헤드셋
  • 마이크
  • LineLevel
  • 다른 항목(동일한 가장 낮은 우선 순위로 처리됨, 즉 nRankFormFactor가 0과 같음)

예를 들어 세 개의 오디오 콘솔 렌더링 엔드포인트가 있는 시스템을 고려합니다.

  • HD 오디오 정적 헤드폰 엔드포인트(잭 감지 기능이 없는 헤드폰).
  • 정적 S/PDIF Out 엔드포인트입니다.
  • 동적 스피커 엔드포인트(잭 검색이 지원되는 스피커).

오디오 하위 시스템은 Windows 10 시스템 추론을 사용하며, 스피커의 폼 팩터가 헤드폰의 폼 팩터보다 우선 순위가 지정되더라도 동적 스피커 엔드포인트를 기본 콘솔 렌더링 오디오 엔드포인트로 선택합니다. 스피커 엔드포인트는 잭 감지가 가능하기 때문에 선택되며, 폼 팩터보다 우선 순위가 높지만 헤드폰에는 이 기능이 없습니다.

위의 예제에 동적 USB 헤드폰 엔드포인트가 도입된 경우 Windows 7 오디오 하위 시스템은 이 엔드포인트를 기본 콘솔 렌더링 엔드포인트로 선택합니다. 이 선택은 두 장치 모두 잭 감지를 지원할 때 헤드폰 폼 팩터가 스피커 폼 팩터보다 우선 순위가 높기 때문입니다.

KSNodeType

앞에서 멘션 것처럼 KSNodeType은 엔드포인트에 연결된 오디오 디바이스에 대한 폼 팩터로 표시된 것보다 더 자세한 정보를 제공합니다. Windows 10은 마이크 폼 팩터가 다르지만 KSNodeType이 다른 엔드포인트의 우선 순위를 지정하기 위해 세 개의 마이크 관련 KSNodeType을 정의합니다. 다음과 같이 우선 순위가 지정됩니다.

  • KSNODETYPE_PROCESSING_MICROPHONE_ARRAY
  • KSNODETYPE_MICROPHONE_ARRAY
  • KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE
  • 다른 항목(동일한 가장 낮은 우선 순위로 처리됨, 즉 nRankSubType이 0과 같음)

예를 들어 다음 두 개의 오디오 캡처 엔드포인트가 있는 시스템을 고려합니다.

  • KSNODETYPE_MICROPHONE_ARRAY 포함된 기본 제공 정적 마이크 배열 엔드포인트입니다.
  • KSNODETYPE_MICROPHONE 있는 정적 마이크 엔드포인트입니다.

오디오 하위 시스템에서 시스템 추론을 사용하여 기본 콘솔 캡처 오디오 엔드포인트를 선택하면 마이크 배열 엔드포인트가 선택됩니다. 두 엔드포인트 모두 잭 검색 기능과 폼 팩터가 동일하지만 마이크 배열의 KsNodeType이 마이크보다 우선 순위가 높기 때문에 마이크 배열이 선택됩니다. 즉, KSNODETYPE_MICROPHONE_ARRAY 나열되지 않고 "다른 항목" 범주에 속하는 KSNODETYPE_MICROPHONE보다 우선 순위가 높습니다.

KsNodeType에 대한 자세한 내용은 Pin 범주 속성을 참조 하세요.

버스 형식

Windows 10은 엔드포인트 버스 유형의 열거형 값을 가장 높은 우선 순위에서 가장 낮은 우선 순위 순으로 순위를 지정합니다.

  • USB
  • HDAudio 및 UnknownBusType(일반적으로 SOC 시스템)
  • PCI
  • BTHENUM
  • BTHHFENUM
  • 다른 항목(동일한 가장 낮은 우선 순위로 처리됨, 즉 nRankBusType이 0과 같음)

일반 위치

Windows 10은 일반 위치의 열거형 값을 가장 높은 우선 순위에서 가장 낮은 우선 순위 순으로 순위를 지정합니다.

  • PrimaryBox 및 내부
  • 다른 항목(동일한 가장 낮은 우선 순위로 처리됨, 즉 nRankGenLoc 이 0과 같음)

오디오 드라이버는 KSPROPERTY_JACK_DESCRIPTION 속성을 통해 엔드포인트의 일반 위치 정보를 보고합니다. 자세한 내용은 Jack Description 속성을 참조 하세요.

기하학적 위치

Windows 10은 기하학적 위치에 대한 열거형 값을 가장 높은 우선 순위에서 가장 낮은 우선 순위 순으로 순위를 지정합니다.

  • Front 및 InsideMobileLid
  • 아래쪽, 왼쪽, OutsideMobileLid, 후면, 오른쪽 및 위쪽
  • RearPanel
  • 다른 항목(동일한 가장 낮은 우선 순위로 처리됨, 즉 nRankGeoLoc이 0과 같음)

오디오 드라이버는 KSPROPERTY_JACK_DESCRIPTION 속성을 통해 엔드포인트의 기하학적 위치 정보를 보고합니다. 자세한 내용은 Jack Description 속성을 참조 하세요.

예외

위의 추론 요소 외에도 Windows 10에는 기본 콘솔 디바이스 추론에 대한 3개의 예외가 있습니다. Windows 7에는 예외가 1개만 있었습니다.

Windows 7과 10 모두에 있는 첫 번째 예외는 핸드셋 및 Speakerphone과 같은 명백한 통신 지향 엔드포인트가 기본 콘솔 엔드포인트로 선택되지 않도록 방지합니다. 특히 오디오 하위 시스템은 다음 KSNodeType 값 중 하나가 있는 엔드포인트에 대해 WeightedRankValue 결과를 다운그레이드합니다.

  • KSNODETYPE_SPEAKER_AND_HEADSET
  • KSNODETYPE_SPEAKERS_STATIC_JACK
  • KSNODETYPE_HANDSET
  • KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION
  • KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE
  • KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE
  • KSNODETYPE_PHONE_LINE
  • KSNODETYPE_TELEPHONE
  • KSNODETYPE_DOWN_LINE_PHONE
  • 모바일 시나리오에 존재하는 셀룰러 오디오 특정 엔드포인트

Windows 10에만 있는 두 번째 예외는 명백한 통신 기반 엔드포인트가 기본 콘솔 엔드포인트로 선택되지 않도록 방지합니다. 첫 번째 예외와 달리 이 예외는 버스 유형도 고려합니다. 그 이유는 디바이스가 통신과 관련이 없더라도 많은 인기 USB 헤드폰이 다음 KSNodeTypes를 사용하기 때문입니다. Windows 7 순위 알고리즘은 모든 버스 유형의 기본 콘솔 엔드포인트에 대해 이러한 KSNodeTypes를 다운그레이드했습니다. Windows 10의 경우 이러한 KSNodeTypes는 usb가 아닌 버스 유형에 대해서만 다운그레이드됩니다.

  • KSNODETYPE_PERSONAL_MICROPHONE
  • KSNODETYPE_COMMUNICATION_SPEAKER
  • KSNODETYPE_HEADSET

세 번째 예외의 경우 유선으로 시스템에 물리적으로 연결된 "개인" 엔드포인트(예: 헤드폰 및 헤드셋)에 대한 기본 설정이 명시적으로 도입됩니다. 몇 가지 예로는 유선 USB 헤드셋과 유선 3.5mm 헤드폰이 있습니다. 이전 2개의 예외와 달리 이 예외는 이러한 엔드포인트를 기본 콘솔 엔드포인트에 대해 선호하도록 업그레이드합니다. 이 예외는 Windows 10의 새로운 기능이며 사용자 개인 정보 보호를 개선하기 위한 것으로, 다른 사용자가 들을 수 있는 시끄러운 스피커 엔드포인트를 통해서만 들을 수 있는 엔드포인트를 선호합니다.

기본 통신 오디오 엔드포인트에 대한 받은 편지함 추론 설정

이 섹션에서는 통신 오디오 엔드포인트에 대한 각 요소의 기본 추론 설정에 대해 설명합니다. 요소는 우선 순위 순서로 나열됩니다. 즉, Windows 10은 기본 통신 엔드포인트를 계산할 때 다음 목록의 첫 번째 요소에 가장 높은 우선 순위를 부여합니다. 콘솔 기본 엔드포인트와 통신 기본 엔드포인트의 추론 간의 유일한 차이점은 폼 팩터 설정과 예외 규칙에 있습니다.

잭 검색 기능

잭 검색 기능 추론 설정은 기본 통신 오디오 엔드포인트와 기본 콘솔 오디오 엔드포인트 모두에 대해 동일합니다.

폼 팩터

통신 기본 디바이스를 렌더링하고 통신 기본 디바이스를 캡처하기 위해 서로 다른 우선 순위 목록을 만듭니다.

통신 기본 캡처 엔드포인트의 폼 팩터 우선 순위는 우선 순위가 가장 높은 엔드포인트에서 가장 낮은 순서로 다음과 같습니다.

  • 헤드셋
  • 단말기
  • 마이크
  • LineLevel

통신 기본 렌더링 엔드포인트의 폼 팩터 우선 순위는 우선 순위가 가장 높은 엔드포인트에서 가장 낮은 순서로 다음과 같습니다.

  • 헤드셋
  • 단말기
  • 헤드폰
  • 스피커
  • LineLevel
  • DigitalAudioDisplayDevice(HDMI 또는 DisplayPort)
  • S/PDIF
  • 다른 항목(동일한 가장 낮은 우선 순위로 처리됨, 즉 nRankFormFactor가 0과 같음)

KSNodeType

KsNodeType 추론 설정은 기본 통신 오디오 엔드포인트와 기본 콘솔 오디오 엔드포인트 모두에 대해 동일합니다.

버스 형식

버스 유형 추론 설정은 기본 통신 오디오 엔드포인트와 기본 콘솔 오디오 엔드포인트 모두에 대해 동일합니다.

일반 위치

Windows 10은 일반 위치의 열거형 값을 가장 높은 우선 순위에서 가장 낮은 우선 순위 순으로 순위를 지정합니다.

  • 분리
  • PrimaryBox
  • 내부
  • 다른 항목(동일한 가장 낮은 우선 순위로 처리됨, 즉 nRankGenLoc 이 0과 같음)

오디오 드라이버는 KSPROPERTY_JACK_DESCRIPTION 속성을 통해 엔드포인트의 일반 위치 정보를 보고합니다. 자세한 내용은 Jack Description 속성을 참조 하세요.

기하학적 위치

Windows 10은 기하학적 위치에 대한 열거형 값을 가장 높은 우선 순위에서 가장 낮은 우선 순위 순으로 순위를 지정합니다.

  • Front 및 InsideMobileLid
  • 다른 항목(동일한 가장 낮은 우선 순위로 처리됨, 즉 nRankGeoLoc이 0과 같음)

오디오 드라이버는 KSPROPERTY_JACK_DESCRIPTION 속성을 통해 엔드포인트의 기하학적 위치 정보를 보고합니다. 자세한 내용은 Jack Description 속성을 참조 하세요.

예외

위의 추론 요소 외에도 Windows 10에는 기본 통신 디바이스 추론에 대해 구현된 세 가지 예외가 있지만 Windows 7에는 하나만 있습니다.

첫 번째 예외는 기본 통신 엔드포인트로 선택되기 위해 핸드셋 및 Speakerphone과 같은 명백한 통신 지향 엔드포인트를 선호합니다. 특히 오디오 하위 시스템은 다음 값과 일치하는 KSNodeType을 사용하여 엔드포인트에 대한 WeightedRankValue 결과를 업그레이드합니다.

  • KSNODETYPE_PERSONAL_MICROPHONE
  • KSNODETYPE_HEADSET
  • KSNODETYPE_PHONE_LINE
  • KSNODETYPE_DOWN_LINE_PHONE
  • KSNODETYPE_COMMUNICATION_SPEAKER
  • KSNODETYPE_HANDSET
  • KSNODETYPE_TELEPHONE
  • KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION
  • KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE
  • KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE

두 번째 예외는 통신 사용에 적합하지 않은 명백한 콘솔 지향 엔드포인트인 엔드포인트를 방지합니다.

  • KSNODETYPE_SPEAKERS_STATIC_JACK
  • 통신 오디오에 사용할 수 없는 모바일 시나리오에만 존재하는 특수 오디오 엔드포인트

이 글을 쓰는 시점에 셀룰러 오디오 엔드포인트를 선호하는 세 번째 예외가 있습니다. 이 예외는 셀룰러 기능이 있는 모바일 시나리오에만 존재하며 이 설명서의 범위를 벗어니다. 이 유형의 엔드포인트는 모바일 시스템에만 존재하므로 이 예외는 무시해도 됩니다.

참고 항목

Jack Description 속성

KSPROPERTY_JACK_DESCRIPTION2

KSPROPERTY_JACK_DESCRIPTION3

Pin Category 속성

SetupPreferredAudioDevices