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

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

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

Синтаксис

PFREE_DMA_ENGINE PfreeDmaEngine;

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

Параметры

[in] _context

Задает значение контекста из элемента ContextHDAUDIO_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 (включая Hdaudio.h)
IRQL <=DISPATCH_LEVEL

См. также раздел

AllocateCaptureDmaEngine

AllocateRenderDmaEngine

FreeContiguousDmaBuffer

FreeDmaBuffer

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2