PFREE_DMA_BUFFER función de devolución de llamada (hdaudio.h)
La FreeDmaBuffer
rutina libera un búfer DMA asignado previamente mediante una llamada a AllocateDmaBuffer.
El tipo de puntero de función para una FreeDmaBuffer
rutina se define de la siguiente manera.
Sintaxis
PFREE_DMA_BUFFER PfreeDmaBuffer;
NTSTATUS PfreeDmaBuffer(
[in] PVOID _context,
[in] HANDLE Handle
)
{...}
Parámetros
[in] _context
Especifica el valor de contexto del miembro Context del HDAUDIO_BUS_INTERFACE o la estructura HDAUDIO_BUS_INTERFACE_V2 .
[in] Handle
Controle la identificación del motor DMA. Este valor de identificador se obtuvo de una llamada anterior a AllocateCaptureDmaEngine o AllocateRenderDmaEngine.
Valor devuelto
FreeDmaBuffer
devuelve STATUS_SUCCESS si la llamada se realiza correctamente. De lo contrario, la rutina devuelve un código de error adecuado. En la tabla siguiente se muestran algunos de los posibles códigos de estado de retorno.
Código devuelto | Descripción |
---|---|
|
Indica que el autor de la llamada se ejecuta en un IRQL demasiado alto. |
|
Indica que el valor del parámetro handle no es válido. |
|
Indica que la secuencia no está en el estado de restablecimiento o que no hay ningún búfer asignado actualmente para el motor DMA. |
Comentarios
La FreeDmaBuffer
rutina se usa junto con la rutina AllocateDmaBuffer . Estas dos rutinas solo están disponibles en la versión HDAUDIO_BUS_INTERFACE de la DDI de audio HD. Esta DDI no incluye las rutinas AllocateContiguousDmaBuffer, SetupDmaEngineWithBdl y FreeContiguousDmaBuffer , que nunca se usan junto con AllocateDmaBuffer y FreeDmaBuffer
. A diferencia de SetupDmaEngineWithBdl, que configura el motor DMA para usar un búfer DMA asignado anteriormente, AllocateDmaBuffer asigna un búfer DMA y configura el motor DMA para usar el búfer.
La rutina produce un error y devuelve el código de error STATUS_INVALID_DEVICE_REQUEST en cualquiera de las siguientes circunstancias:
-
El cliente llama
FreeDmaBuffer
cuando no se asigna ningún búfer actualmente para el motor DMA. - La secuencia está en un estado distinto del restablecimiento.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | hdaudio.h (incluye Hdaudio.h) |
IRQL | PASSIVE_LEVEL |