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

Подпрограмма FreeDmaBuffer освобождает буфер DMA, который ранее был выделен вызовом AllocateDmaBuffer.

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

Синтаксис

PFREE_DMA_BUFFER PfreeDmaBuffer;

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

Параметры

[in] _context

Указывает значение контекста из контекста члена HDAUDIO_BUS_INTERFACE или структуры HDAUDIO_BUS_INTERFACE_V2.

[in] Handle

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

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

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

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

Замечания

Подпрограмма FreeDmaBuffer используется вместе с подпрограммой AllocateDmaBuffer. Эти две подпрограммы доступны только в HDAUDIO_BUS_INTERFACE версии HD Audio DDI. Этот DDI не включает AllocateContiguousDmaBuffer, SetupDmaEngineWithBdlи подпрограммы FreeContiguousDmaBuffer, которые никогда не используются в сочетании с AllocateDmaBuffer и FreeDmaBuffer. В отличие от SetupDmaEngineWithBdl, который настраивает подсистему DMA для использования ранее выделенного буфера DMA, AllocatedDmaBuffer выделяет буфер DMA и настраивает подсистему DMA для использования буфера.

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

  • Клиент вызывает FreeDmaBuffer, если буфер в настоящее время не выделяется для подсистемы DMA.
  • Поток находится в состоянии, отличном от сброса.

Требования

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

См. также

AllocateDmaBuffer

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_V2

SetupDmaEngineWithBdl