USB 오디오 디바이스, IEEE 1394 오디오 디바이스 및 내부 버스의 오디오 디바이스용 Microsoft WDM(Windows 드라이버 모델) 오디오 드라이버는 모두 핀이 있는 KS 필터로 해당 디바이스를 나타냅니다. WDM 오디오 드라이버는 지원하는 각 핀 유형에 대해 하나의 KSPIN_DESCRIPTOR 구조를 유지 관리합니다. 이 구조 내에서 드라이버는 핀 유형의 KSPROPSETID_Pin 속성을 저장합니다. 이러한 속성 중에는 KSPROPERTY_PIN_CATEGORY 속성이 있습니다. 이 속성에 대한 요청은 KSPIN_DESCRIPTOR 구조체의 범주 멤버에서 KS 핀 범주 GUID를 검색합니다. 이 GUID는 핀이 제공하는 기능의 일반적인 범주를 나타냅니다. 예를 들어 특정 핀 범주 GUID인 KSNODETYPE_HEADPHONES 헤드폰의 출력 잭으로 핀을 식별합니다.
내부 버스(예: PCI)의 웨이브 오디오 디바이스의 경우 PortCls 미니포트 드라이버는 각각 디바이스를 나타내는 필터의 핀 유형을 설명하는 핀 설명자 배열을 포함합니다. 각 핀 설명자는 핀 범주 GUID를 포함하는 내장된 KSPIN_DESCRIPTOR 구조체로 구성된 PCPIN_DESCRIPTOR 구조체입니다. 클라이언트에서 KSPROPERTY_PIN_CATEGORY 속성 요청을 받으면 포트 드라이버는 지정된 핀 유형에 대한 미니포트 드라이버의 핀 설명자에서 핀 범주 GUID를 검색합니다. 핀 설명자에 대한 자세한 내용은 핀 팩터리를 참조하세요.
USB 오디오 디바이스에는 디지털 스트림과 아날로그 신호가 디바이스를 입력하고 종료할 수 있는 몇 가지 터미널이 있습니다. USB 오디오 디바이스를 나타내는 KS 필터를 생성할 때 USBAudio 클래스 시스템 드라이버는 디바이스의 터미널을 필터의 핀으로 변환합니다. 헤더 파일 Ksmedia.h는 각 USB 터미널 유형 식별자에 대한 매핑을 KS 핀 범주 GUID에 정의합니다. 다음 6개 테이블은 터미널 형식 식별자와 해당 핀 범주 GUID를 보여 줍니다.
입력 터미널 형식
| USB 터미널 ID | KS 핀 범주 GUID |
|---|---|
0x0201 |
KSNODETYPE_MICROPHONE |
0x0202 |
KSNODETYPE_DESKTOP_MICROPHONE |
0x0203 |
KSNODETYPE_PERSONAL_MICROPHONE |
0x0204 |
KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE(전방향성 마이크) |
0x0205 |
KSNODETYPE_MICROPHONE_ARRAY |
0x0206 |
KSNODETYPE_PROCESSING_MICROPHONE_ARRAY |
출력 터미널 형식
| USB 터미널 ID | KS 핀 범주 GUID |
|---|---|
0x0301 |
KSNODETYPE_SPEAKER |
0x0302 |
KSNODETYPE_HEADPHONES |
0x0303 |
KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO |
0x0304 |
KSNODETYPE_DESKTOP_SPEAKER |
0x0305 |
KSNODETYPE_ROOM_SPEAKER |
0x0306 |
KSNODETYPE_COMMUNICATION_SPEAKER |
0x0307 |
KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER |
양방향 터미널 형식
| USB 터미널 ID | KS 핀 범주 GUID |
|---|---|
0x0401 |
KSNODETYPE_HANDSET |
0x0402 |
KSNODETYPE_HEADSET |
0x0403 |
KSNODETYPE_스피커폰_에코_제거_없음 |
0x0404 |
KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE |
0x0405 |
KSNODETYPE_에코 취소 스피커폰 |
전화 통신 터미널 유형
| USB 터미널 ID | KS 핀 범주 GUID |
|---|---|
0x0501 |
KSNODETYPE_PHONE_LINE |
0x0502 |
KSNODETYPE_TELEPHONE |
0x0503 |
KSNODETYPE_DOWN_LINE_PHONE |
외부 터미널 유형
| USB 터미널 ID | KS 핀 범주 GUID |
|---|---|
0x0601 |
KSNODETYPE_ANALOG_CONNECTOR (아날로그 연결자) |
0x0602 |
디지털 오디오 인터페이스 KSNODETYPE |
0x0603 |
KSNODETYPE_LINE_CONNECTOR |
0x0604 |
KSNODETYPE_LEGACY_AUDIO_CONNECTOR (레거시 오디오 커넥터) |
0x0605 |
KSNODETYPE_SPDIF_INTERFACE |
0x0606 |
KSNODETYPE_1394_DA_STREAM |
0x0607 |
KSNODETYPE_1394_DV_STREAM_SOUNDTRACK |
포함된 함수 터미널 형식
| USB 터미널 ID | KS 핀 범주 GUID |
|---|---|
0x0701 |
KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE (레벨 보정 잡음 소스) |
0x0702 |
KSNODETYPE_EQUALIZATION_NOISE |
0x0703 |
KSNODETYPE_CD_PLAYER |
0x0704 |
KSNODETYPE_DAT_IO_디지털 오디오 테이프 |
0x0705 |
KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE |
0x0706 |
KSNODETYPE_MINIDISK |
0x0707 |
KSNODETYPE_ANALOG_TAPE |
0x0708 |
KSNODETYPE_PHONOGRAPH |
0x0709 |
KSNODETYPE_VCR_AUDIO |
0x070A |
KSNODETYPE_VIDEO_DISC_AUDIO |
0x070B |
KSNODETYPE_DVD_AUDIO |
0x070C |
KSNODETYPE_TV 튜너 오디오 |
0x070D |
KSNODETYPE_SATELLITE_RECEIVER_AUDIO |
0x070E |
KSNODETYPE_CABLE_TUNER_AUDIO |
0x070F |
KSNODETYPE_DSS_AUDIO |
0x0710 |
KSNODETYPE_라디오_수신기 |
0x0711 |
라디오 송신기 노드 유형 KSNODETYPE |
0x0712 |
KSNODETYPE_MULTITRACK_RECORDER (멀티트랙 녹음기) |
0x0713 |
KSNODETYPE_SYNTHESIZER |
USB 터미널 유형 식별자에 대한 자세한 내용은 USB 구현자 포럼 웹 사이트에서 사용할 수 있는 터미널 유형에 대한 유니버설 직렬 버스 디바이스 클래스 정의(릴리스 1.0)를 참조하세요.
이전 테이블의 모든 핀 범주 GUID에는 KSNODETYPE_XXX 형식의 매개 변수 이름이 있습니다. KS 노드 형식 GUID에는 KSNODETYPE_XXX 매개 변수 이름도 있습니다. 이 명명 규칙은 핀 범주 GUID와 노드 형식 GUID 간에 혼동을 줄 수 있는 몇 가지 가능성을 만듭니다. 다행히 거의 모든 KSNODETYPE_XXX 매개 변수는 핀 범주 또는 노드 형식을 식별하지만 둘 다 식별하지는 않습니다. 규칙에 대한 한 가지 예외는 컨텍스트에 따라 핀 범주 또는 노드 유형을 식별할 수 있는 KSNODETYPE_SYNTHESIZER. 노드 유형 GUID 목록은 오디오 토폴로지 노드를 참조하세요.
USB 오디오 디바이스를 인스턴스화할 때 USBAudio 클래스 시스템 드라이버는 디바이스에 터미널을 포함한 내부 토폴로지 쿼리를 수행합니다. 이 정보를 사용하여 USBAudio 드라이버는 디바이스를 나타내는 필터를 생성하고 각 터미널을 필터의 해당 핀으로 변환합니다. 이 프로세스 중에 드라이버는 각 USB 터미널 유형 식별자를 이전 테이블의 GUID 중 하나인 해당 KS 핀 범주 GUID로 변환합니다. 드라이버는 핀을 설명하는 KSPIN_DESCRIPTOR 구조를 구성하고 핀 범주 GUID를 구조체에 씁니다.
PortCls 미니포트 드라이버는 앞의 6개 테이블에 표시되는 범주 GUID만 반드시 사용하지는 않습니다. 예를 들어 드라이버는 사용자 지정 핀 범주 GUID를 정의하고 사용하여 기능 범주가 테이블의 범주를 벗어나는 핀 형식을 설명할 수 있습니다. 당연히 사용자 지정 핀 범주 GUID는 GUID를 인식하는 클라이언트에만 유용합니다.
오디오 하위 시스템은 시스템 레지스트리에서 핀 범주 GUID 및 관련 이름 목록을 유지 관리합니다. 미디어 클래스 설치 관리자는 기본 Windows 폴더의 Inf 하위 폴더에 있는 Ks.inf 파일(예: C:\Windows\Inf\Ks.inf)에서 GUID 이름 쌍을 레지스트리에 복사합니다.
운영 체제는 핀 범주를 사용하여 친숙한 이름을 오디오 엔드포인트 디바이스와 연결합니다. 친숙한 이름을 오디오 엔드포인트 디바이스와 연결하는 방법에 대한 자세한 내용은 오디오 엔드포인트 디바이스에 대한 친숙한 이름을 참조하세요.