функция обратного вызова 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. В противном случае подпрограмма возвращает соответствующий код ошибки. В следующей таблице показаны некоторые из возможных кодов состояния возврата.
Код возврата | Описание |
---|---|
|
Указывает, что значение параметра дескриптора недопустимо. |
|
Указывает, что поток не находится в состоянии сброса или что буфер по-прежнему выделен для подсистемы DMA. |
Комментарии
Эта подпрограмма освобождает подсистему DMA, которая ранее была зарезервирована путем вызова подпрограммы AllocateCaptureDmaEngine или AllocateRenderDmaEngine .
Эта подпрограмма завершается сбоем и возвращает код ошибки STATUS_INVALID_DEVICE_REQUEST в любом из следующих случаев:
- Любой ранее выделенный буфер DMA не был освобожден (путем вызова FreeDmaBuffer или FreeContiguousDmaBuffer).
- Поток находится в состоянии, отличном от состояния сброса.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | hdaudio.h (включая Hdaudio.h) |
IRQL | <=DISPATCH_LEVEL |