Condividi tramite


funzione di callback PFREE_DMA_BUFFER (hdaudio.h)

La FreeDmaBuffer routine libera un buffer DMA allocato in precedenza da una chiamata a AllocateDmaBuffer.

Il tipo di puntatore a funzione per una FreeDmaBuffer routine è definito come segue.

Sintassi

PFREE_DMA_BUFFER PfreeDmaBuffer;

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

Parametri

[in] _context

Specifica il valore di contesto dal membro Context del HDAUDIO_BUS_INTERFACE o dalla struttura HDAUDIO_BUS_INTERFACE_V2 .

[in] Handle

Gestire l'identificazione del motore DMA. Questo valore handle è stato ottenuto da una chiamata precedente a AllocateCaptureDmaEngine o AllocateRenderDmaEngine.

Valore restituito

FreeDmaBuffer restituisce STATUS_SUCCESS se la chiamata ha esito positivo. In caso contrario, la routine restituisce un codice di errore appropriato. La tabella seguente illustra alcuni dei possibili codici di stato restituiti.

Codice restituito Descrizione
STATUS_UNSUCCESSFUL
Indica che il chiamante è in esecuzione in un runtime di integrazione troppo elevato.
STATUS_INVALID_HANDLE
Indica che il valore del parametro handle non è valido.
STATUS_INVALID_DEVICE_REQUEST
Indica che il flusso non è nello stato di reimpostazione o che non è attualmente allocato alcun buffer per il motore DMA.

Commenti

La FreeDmaBuffer routine viene utilizzata insieme alla routine AllocateDmaBuffer . Queste due routine sono disponibili solo nella versione HDAUDIO_BUS_INTERFACE di HD Audio DDI. Questa DDI non include le routine AllocateContiguousDmaBuffer, SetupDmaEngineWithBdl e FreeContiguousDmaBuffer , che non vengono mai usate in combinazione con AllocateDmaBuffer e FreeDmaBuffer. Diversamente da SetupDmaEngineWithBdl, che configura il motore DMA per l'uso di un buffer DMA allocato in precedenza, AllocateDmaBuffer alloca un buffer DMA e configura il motore DMA per l'uso del buffer.

La routine ha esito negativo e restituisce il codice di errore STATUS_INVALID_DEVICE_REQUEST in una delle circostanze seguenti:

  • Il client chiama FreeDmaBuffer quando non è attualmente allocato alcun buffer per il motore DMA.
  • Il flusso è in uno stato diverso da reset.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione hdaudio.h (include Hdaudio.h)
IRQL PASSIVE_LEVEL

Vedi anche

AllocateDmaBuffer

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_V2

SetupDmaEngineWithBdl