PFREE_CONTIGUOUS_DMA_BUFFER funzione di callback (hdaudio.h)

La FreeContiguousDmaBuffer routine libera un buffer DMA e un elenco di descrittori buffer (BDL) allocati da una chiamata a AllocateContiguousDmaBuffer.

Il tipo di puntatore alla funzione per una FreeContiguousDmaBuffer routine è definito come indicato di seguito.

Sintassi

PFREE_CONTIGUOUS_DMA_BUFFER PfreeContiguousDmaBuffer;

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

Parametri

[in] _context

Specifica il valore di contesto dal membro Context della struttura HDAUDIO_BUS_INTERFACE_BDL .

[in] Handle

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

Valore restituito

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

Codice restituito Descrizione
STATUS_UNSUCCESSFUL
Indica che il chiamante è in esecuzione in un irQL 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 FreeContiguousDmaBuffer routine viene usata in combinazione con le routine SetupDmaEngineWithBdl e AllocateContiguousDmaBuffer . Queste tre routine sono disponibili solo nella versione HDAUDIO_BUS_INTERFACE_BDL di HD Audio DDI. Questo DDI non include le routine AllocateDmaBuffer e FreeDmaBuffer, che non vengono mai usate insieme a AllocateContiguousDmaBuffer, SetupDmaEngineWithBdl e FreeContiguousDmaBuffer. A differenza di 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 usare il buffer. Per altre informazioni, vedere Differenze tra le due versioni DDI.

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

  • Il client chiama FreeContiguousDmaBuffer quando non viene allocato alcun buffer per il motore DMA.
  • Il flusso si trova in uno stato diverso da reimpostazione.

Requisiti

   
Piattaforma di destinazione Desktop
Intestazione hdaudio.h (includere Hdaudio.h)
IRQL PASSIVE_LEVEL

Vedi anche

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

AllocateDmaBuffer

AllocateRenderDmaEngine

FreeDmaBuffer

HDAUDIO_BUS_INTERFACE_BDL

SetupDmaEngineWithBdl