WaveCyclic Miniport Driver
Важно Использование WavePci больше не рекомендуется, вместо этого используйте WaverRT.
Драйвер miniport WaveCyclic управляет аппаратно-зависимыми функциями устройства отрисовки или захвата волн, которое использует циклический буфер для звуковых данных. Циклический буфер обычно представляет собой один блок непрерывной физической памяти и может находиться в области памяти по выбору драйвера. Устройство с любым из следующих ограничений должно предоставлять драйвер miniport WaveCyclic, а не драйвер miniport WavePci:
На устройстве отсутствует оборудование DMA.
Оборудование DMA устройства может получить доступ к данным только в буфере, который занимает один блок непрерывной физической памяти.
Оборудование DMA устройства не может получить доступ к данным во всех регионах физической памяти.
Драйвер miniport WaveCyclic должен реализовывать два интерфейса:
Интерфейс мини-порта поддерживает инициализацию драйвера мини-порта и создание потоков.
Интерфейс потока управляет потоком волн и предоставляет большую часть функциональных возможностей драйвера мини-порта.
Интерфейс мини-порта IMiniportWaveCyclic наследует методы в интерфейсе IMiniport . IMiniportWaveCyclic предоставляет следующие дополнительные методы:
Инициализирует объект miniport.
IMiniportWaveCyclic::NewStream
Создает новый объект потока.
Интерфейс потока IMiniportWaveCyclicStream наследует методы в интерфейсе IUnknown . IMiniportWaveCyclicStream предоставляет следующие дополнительные методы:
IMiniportWaveCyclicStream::GetPosition
Возвращает текущее положение устройства в потоке волн.
IMiniportWaveCyclicStream::NormalizePhysicalPosition
Преобразует физическое значение позиции буфера в значение на основе времени.
IMiniportWaveCyclicStream::SetFormat
Задает формат данных волнового потока.
IMiniportWaveCyclicStream::SetNotificationFreq
Задает частоту прерываний уведомлений.
IMiniportWaveCyclicStream::SetState
Задает состояние потока волн.
IMiniportWaveCyclicStream::Silence
Копирует тишину в буфер.