중요하다 WavePci의 사용은 더 이상 권장되지 않으며 대신 WaverRT를 사용합니다.
WavePci 포트 드라이버는 물리적 메모리의 모든 위치에서 분산/수집 DMA 전송을 수행할 수 있는 오디오 디바이스에서 웨이브 스트림의 재생 또는 녹음을 관리합니다. 분산/수집 DMA를 사용하면 디바이스가 일련의 매핑으로 구성된 버퍼에서 오디오 데이터를 처리할 수 있습니다. 각 매핑은 물리적으로 연속된 메모리의 블록이지만 연속 매핑이 반드시 서로 연속되는 것은 아닙니다. WavePci 호환 디바이스는 오디오 어댑터의 하드웨어 함수입니다. 일반적으로 어댑터는 마더보드의 통합 칩셋의 일부이거나 마더보드의 PCI 슬롯에 연결되는 오디오 카드에 탑재됩니다. 어댑터 드라이버는 웨이브 스트림을 캡처하거나 렌더링할 수 있는 웨이브 필터를 형성하기 위해 WavePci 포트 드라이버 개체에 바인딩하는 해당 WavePci 미니포트 드라이버를 제공합니다.
WavePci 포트 드라이버는 IPortWavePci 인터페이스를 미니포트 드라이버에 노출합니다. IPortWavePci는 기본 인터페이스 IPort의 메서드를 상속합니다. 또한 IPortWavePci는 다음 메서드를 제공합니다.
IPortWavePci::NewMasterDmaChannel
새 마스터 DMA 채널 개체를 만듭니다. IPortWavePci::Notify
DMA 컨트롤러가 오디오 스트림의 새 위치로 진행되었음을 포트 드라이버에 알깁니다. 또한 WavePci 포트 드라이버는 각 미니포트 드라이버의 스트림 개체에 IPortWavePciStream 인터페이스를 노출합니다. IPortWavePciStream은 기본 인터페이스 IUnknown의 메서드를 상속합니다. IPortWavePciStream은 다음과 같은 추가 메서드를 제공합니다.
IPortWavePciStream::GetMapping
포트 드라이버에서 다음 매핑을 가져옵니다. IPortWavePciStream::ReleaseMapping
GetMapping 호출에서 이전에 가져온 매핑을 해제합니다. IPortWavePciStream::TerminatePacket
캡처 데이터로 부분적으로만 채워진 경우에도 I/O 패킷을 종료합니다. I/O 패킷은 특정 매핑 IRP와 연결된 모든 매핑으로 구성된 오디오 버퍼의 부분입니다.
WavePci 포트 및 미니포트 개체는 해당 IPortWavePci 및 IMiniportWavePci 인터페이스를 통해 서로 통신합니다. 또한 WavePci 포트 및 미니포트 스트림 개체는 해당 IPortWavePciStream 및 IMiniportWavePciStream 인터페이스를 통해 서로 통신합니다.