WaveCyclic 미니포트 드라이버

중요 WavePci를 더 이상 사용하지 않는 것이 좋습니다. 대신 WaverRT를 사용합니다.

WaveCyclic 미니포트 드라이버는 오디오 데이터에 주기적 버퍼를 사용하는 웨이브 렌더링 또는 웨이브 캡처 디바이스의 하드웨어 종속 함수를 관리합니다. 순환 버퍼는 일반적으로 연속 물리적 메모리의 단일 블록이며 드라이버가 선택한 메모리 영역에 위치할 수 있습니다. 다음 제한 사항이 있는 디바이스는 WavePci 미니포트 드라이버가 아닌 WaveCyclic 미니포트 드라이버를 제공해야 합니다.

  • 디바이스에 DMA 하드웨어가 부족합니다.

  • 디바이스의 DMA 하드웨어는 연속된 물리적 메모리의 단일 블록을 차지하는 버퍼의 데이터에만 액세스할 수 있습니다.

  • 디바이스의 DMA 하드웨어가 실제 메모리의 모든 영역에서 데이터에 액세스할 수 없습니다.

WaveCyclic 미니포트 드라이버는 다음 두 인터페이스를 구현해야 합니다.

  • 미니포트 인터페이스는 미니포트 드라이버 초기화 및 스트림 생성을 지원합니다.

  • 스트림 인터페이스는 웨이브 스트림을 관리하고 대부분의 미니포트 드라이버 기능을 노출합니다.

미니포트 인터페이스인 IMiniportWaveCyclicIMiniport 인터페이스의 메서드를 상속합니다. IMiniportWaveCyclic은 다음과 같은 추가 메서드를 제공합니다.

IMiniportWaveCyclic::Init

미니포트 개체를 초기화합니다.

IMiniportWaveCyclic::NewStream

새 스트림 개체를 만듭니다.

스트림 인터페이스인 IMiniportWaveCyclicStreamIUnknown 인터페이스의 메서드를 상속합니다. IMiniportWaveCyclicStream은 다음과 같은 추가 메서드를 제공합니다.

IMiniportWaveCyclicStream::GetPosition

웨이브 스트림에서 디바이스의 현재 위치를 가져옵니다.

IMiniportWaveCyclicStream::NormalizePhysicalPosition

실제 버퍼 위치 값을 시간 기반 값으로 변환합니다.

IMiniportWaveCyclicStream::SetFormat

웨이브 스트림의 데이터 형식을 설정합니다.

IMiniportWaveCyclicStream::SetNotificationFreq

알림 인터럽트 발생 빈도를 설정합니다.

IMiniportWaveCyclicStream::SetState

웨이브 스트림의 상태를 설정합니다.

IMiniportWaveCyclicStream::Silence

무음 을 버퍼에 복사합니다.