WDM 오디오 드라이버 소개
KS(커널 스트리밍) 서비스는 오디오 및 다른 유형의 연속 미디어에 대한 데이터 스트림의 커널 모드 처리를 지원합니다. 개념적으로 스트림은 일부 처리 노드가 포함된 데이터 경로를 따라 흐르면서 처리를 거칩니다. 관련 노드 집합이 함께 그룹화되어 KS 필터를 형성합니다. 이 필터는 스트림 처리 기능의 독립적인 블록을 나타냅니다. 여러 필터를 함께 계단식으로 배열하여 필터 그래프를 구성하여 더 복잡한 함수를 모듈식으로 생성할 수 있습니다.
일반적인 오디오 어댑터 카드 스피커 세트를 통해 웨이브 스트림을 재생하고, 마이크에서 웨이브 스트림으로 오디오 신호를 변환하고, MIDI 스트림에서 사운드를 합성하기 위한 오디오 디바이스를 포함할 수 있습니다. 어댑터 드라이버는 운영 체제에 노출되는 KS 필터에서 이러한 각 오디오 디바이스를 래핑할 수 있습니다. 운영 체제는 필터를 다른 필터에 연결하여 애플리케이션 프로그램을 대신하여 오디오 스트림을 처리하는 필터 그래프를 형성합니다.
KS 필터는 핀을 통해 함께 연결 됩니다. 오디오 필터의 핀은 오디오 잭으로 생각할 수 있습니다. 클라이언트가 데이터 스트림을 해당 필터로 또는 외부로 라우팅해야 하는 경우 클라이언트는 필터에 대한 입력 또는 출력 핀을 인스턴스화합니다. 일부 컨텍스트에서는 핀 및 스트림 이라는 용어를 서로 바꿔 사용할 수 있습니다.
업스트림 필터의 출력 핀은 다운스트림 필터의 입력 핀에 연결됩니다. 출력 핀의 데이터 스트림에는 입력 핀이 허용할 수 있는 데이터 형식이 있어야 합니다. 데이터 버퍼링은 일반적으로 출력 핀이 데이터를 생성하고 입력 핀이 데이터를 사용하는 속도의 순간적인 불일치를 원활하게 하기 위해 필요합니다.
KS 필터는 몇 가지 관련 스트림 처리 함수를 캡슐화하는 커널 모드 드라이버 개체로 구현됩니다. 이 기능은 소프트웨어 또는 하드웨어에서 구현할 수 있습니다. 이 모델에서 오디오 어댑터는 하드웨어 디바이스의 컬렉션으로 볼 수 있으며 어댑터 드라이버는 이러한 각 디바이스를 개별 필터로 오디오 시스템에 노출합니다.
어댑터 드라이버는 필터 팩터 리 컬렉션을 오디오 시스템에 노출합니다. 각 필터 팩터리는 특정 형식의 필터를 인스턴스화할 수 있습니다.
어댑터에 기능에서 유사하거나 동일한 디바이스가 하나 이상 포함된 경우 드라이버는 해당 디바이스에 대한 필터를 동일한 필터 팩터리로 그룹화합니다.
어댑터에 여러 가지 유형의 디바이스가 포함된 경우 해당 디바이스는 여러 필터 팩터리를 통해 표시됩니다.
KS 필터는 핀 팩터 리 컬렉션을 오디오 시스템에 노출합니다. 각 핀 팩터리는 특정 유형의 핀을 인스턴스화할 수 있습니다. 필터가 기능에서 유사하거나 동일한 하나 이상의 핀을 제공할 수 있는 경우 필터는 해당 핀을 동일한 핀 팩터리에 그룹화합니다. 예를 들어 오디오 혼합을 수행하는 필터에는 단일 출력 핀을 인스턴스화할 수 있는 하나의 핀 팩터리와 여러 입력 핀을 인스턴스화할 수 있는 두 번째 핀 팩터리가 있을 수 있습니다.
KS 서비스는 Windows 드라이버 모델을 기반으로 합니다. KS 필터라는 용어는 또 다른 WDM 개념인 필터 드라이버라는 용어와 구분되어야 합니다. 필터 드라이버는 WDM 드라이버 스택에 있으며 스택을 통해 전파되는 I/O 요청 패킷(IRP)을 가로채고 수정할 수 있습니다. 상위 및 하위 수준 필터 드라이버는 각각 함수 드라이버 위와 아래에 있습니다. 이 섹션에서 필터 라는 용어는 달리 명시되지 않는 한 필터 드라이버가 아닌 KS 필터를 참조합니다. 필터 드라이버에 대한 자세한 내용은 WDM 드라이버 유형을 참조하세요.
이 섹션에서는 다음 항목을 다룹니다.
WDM 오디오 아키텍처의 새로운 기능에 대한 업데이트 및 정보는 오디오 기술 웹 사이트를 참조하세요.