Поделиться через


Драйвер порта WavePci

Важно Использовать WavePci больше не рекомендуется, вместо этого используйте WaverRT.

Драйвер порта WavePci управляет воспроизведением или записью волнового потока звуковым устройством, которое может выполнять передачу точечной и сборной данных DMA в любое место в физической памяти или из него. С помощью точечной обработки и сбора данных DMA устройство может обрабатывать звуковые данные в буфере, состоящем из ряда сопоставлений. Каждое сопоставление представляет собой блок физически непрерывной памяти, но последовательные сопоставления не обязательно являются непрерывными друг с другом. Устройство, совместимое с WavePci, — это аппаратная функция на звуковом адаптере. Как правило, адаптер является частью интегрированного набора микросхем на системной плате или устанавливается на звуковом карта, который подключается к слоту PCI на системной плате. Драйвер адаптера предоставляет соответствующий драйвер miniport WavePci , который привязывается к объекту драйвера порта WavePci для формирования волнового фильтра , который может захватывать или отрисовывать поток волн.

Драйвер порта WavePci предоставляет драйверу мини-порта интерфейс IPortWavePci . IPortWavePci наследует методы в базовом интерфейсе IPort. Кроме того, IPortWavePci предоставляет следующие методы:

IPortWavePci::NewMasterDmaChannel

Создает новый объект канала DMA master. IPortWavePci::Notify

Уведомляет драйвер порта о том, что контроллер DMA переместился на новую позицию в звуковом потоке. Драйвер порта WavePci также предоставляет интерфейс IPortWavePciStream каждому объекту потока драйвера мини-порта. IPortWavePciStream наследует методы в базовом интерфейсе IUnknown. IPortWavePciStream предоставляет следующие дополнительные методы:

IPortWavePciStream::GetMapping

Возвращает следующее сопоставление из драйвера порта. IPortWavePciStream::ReleaseMapping

Освобождает сопоставление, ранее полученное вызовом GetMapping . IPortWavePciStream::TerminatePacket

Завершает пакет ввода-вывода, даже если он заполнен только частично данными записи. Пакет ввода-вывода — это часть звукового буфера, состоящая из всех сопоставлений, связанных с определенным IRP сопоставления.

Порт WavePci и объекты miniport взаимодействуют друг с другом через соответствующие интерфейсы IPortWavePci и IMiniportWavePci . Кроме того, порт WavePci и объекты потока miniport взаимодействуют друг с другом через соответствующие интерфейсы IPortWavePciStream и IMiniportWavePciStream .