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


функция обратного вызова PFREE_DMA_ENGINE (hdaudio.h)

Подпрограмма FreeDmaEngine освобождает модуль DMA, который ранее был выделен вызовом AllocateCaptureDmaEngine или AllocateRenderDmaEngine.

Тип указателя функции для подпрограммы FreeDmaEngine определяется следующим образом.

Синтаксис

PFREE_DMA_ENGINE PfreeDmaEngine;

NTSTATUS PfreeDmaEngine(
  [in] PVOID _context,
  [in] HANDLE Handle
)
{...}

Параметры

[in] _context

Задает значение контекста из элемента контекста Context элемента HDAUDIO_BUS_INTERFACE, структуры HDAUDIO_BUS_INTERFACE_V2 или HDAUDIO_BUS_INTERFACE_BDL.

[in] Handle

Обработка идентификации подсистемы DMA. Это значение дескриптора было получено из предыдущего вызова AllocateCaptureDmaEngine или AllocateRenderDmaEngine.

Возвращаемое значение

FreeDmaEngine возвращает STATUS_SUCCESS, если вызов успешно освобождает подсистему DMA. В противном случае подпрограмма возвращает соответствующий код ошибки. В следующей таблице показаны некоторые возможные коды состояния возврата.

Возвращаемый код Описание
STATUS_INVALID_HANDLE
Указывает, что значение параметра дескриптором недопустимо.
STATUS_INVALID_DEVICE_REQUEST
Указывает, что поток не находится в состоянии сброса или что буфер по-прежнему выделяется для подсистемы DMA.

Замечания

Эта подпрограмма освобождает подсистему DMA, которая ранее зарезервирована вызовом процедуры AllocateCaptureDmaEngine или AllocateRenderDmaEngine.

Эта подпрограмма завершается ошибкой и возвращает код ошибки STATUS_INVALID_DEVICE_REQUEST в любом из следующих случаев:

  • Любой ранее выделенный буфер DMA не был освобожден (вызывая FreeDmaBuffer или FreeContiguousDmaBuffer).
  • Поток находится в состоянии, отличном от сброса.
Звуковой драйвер вызывает эту подпрограмму, чтобы закрыть пин-код (и уничтожить поток).

Требования

Требование Ценность
целевая платформа Настольный
заголовка hdaudio.h (include Hdaudio.h)
IRQL <=DISPATCH_LEVEL

См. также

AllocateCaptureDmaEngine

AllocateRenderDmaEngine

FreeContiguousDmaBuffer

FreeDmaBuffer

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2