PFREE_CONTIGUOUS_DMA_BUFFER funzione di callback (hdaudio.h)
La routine FreeContiguousDmaBuffer
libera un buffer DMA e un elenco di descrittori del buffer (BDL) allocati da una chiamata a AllocateContiguousDmaBuffer.
Il tipo di puntatore di funzione per una routine FreeContiguousDmaBuffer
è definito come segue.
Sintassi
PFREE_CONTIGUOUS_DMA_BUFFER PfreeContiguousDmaBuffer;
NTSTATUS PfreeContiguousDmaBuffer(
[in] PVOID _context,
[in] HANDLE Handle
)
{...}
Parametri
[in] _context
Specifica il valore di contesto del 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 illustra alcuni dei possibili codici di stato restituiti.
Codice restituito | Descrizione |
---|---|
|
Indica che il chiamante è in esecuzione in un runtime di integrazione troppo elevato. |
|
Indica che il valore del parametro handle non è valido. |
|
Indica che il flusso non è nello stato di reimpostazione o che non è attualmente allocato alcun buffer per il motore DMA. |
Osservazioni
La routine FreeContiguousDmaBuffer
viene utilizzata insieme alle routine SetupDmaEngineWithBdl e AllocateContiguousDmaBuffer. Queste tre routine sono disponibili solo nella versione HDAUDIO_BUS_INTERFACE_BDL di HD Audio DDI. Questa DDI non include le routine di AllocateDmaBu ffer e FreeDmaBuffer, che non vengono mai usate insieme a AllocateContiguousDmaBuffer, SetupDmaEngineWithBdle 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 l'uso del 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 è in uno stato diverso da reset.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | hdaudio.h (include Hdaudio.h) |
IRQL | PASSIVE_LEVEL |