PFREE_CONTIGUOUS_DMA_BUFFER Rückruffunktion (hdaudio.h)
Die FreeContiguousDmaBuffer
Routine gibt einen DMA-Puffer und eine Pufferdeskriptorliste (BDL) frei, die durch einen Aufruf von AllocateContiguousDmaBufferzugeordnet wurden.
Der Funktionszeigertyp für eine FreeContiguousDmaBuffer
Routine wird wie folgt definiert.
Syntax
PFREE_CONTIGUOUS_DMA_BUFFER PfreeContiguousDmaBuffer;
NTSTATUS PfreeContiguousDmaBuffer(
[in] PVOID _context,
[in] HANDLE Handle
)
{...}
Parameter
[in] _context
Gibt den Kontextwert aus dem Context Member der HDAUDIO_BUS_INTERFACE_BDL Struktur an.
[in] Handle
Behandeln Sie die Identifizierung des DMA-Moduls. Dieser Handlewert wurde aus einem vorherigen Aufruf von AllocateCaptureDmaEngine oder AllocateRenderDmaEngineabgerufen.
Rückgabewert
FreeContiguousDmaBuffer
gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Andernfalls gibt die Routine einen geeigneten Fehlercode zurück. In der folgenden Tabelle sind einige der möglichen Rückgabestatuscodes aufgeführt.
Rückgabecode | Beschreibung |
---|---|
|
Gibt an, dass der Aufrufer bei einer IRQL ausgeführt wird, die zu hoch ist. |
|
Gibt an, dass der Handle-Parameterwert ungültig ist. |
|
Gibt an, dass sich der Datenstrom nicht im Zurücksetzungszustand befindet oder dass derzeit kein Puffer für das DMA-Modul zugeordnet ist. |
Bemerkungen
Die FreeContiguousDmaBuffer
Routine wird in Verbindung mit den SetupDmaEngineWithBdl und AllocateContiguousDmaBuffer Routinen verwendet. Diese drei Routinen sind nur in der HDAUDIO_BUS_INTERFACE_BDL Version des HD Audio DDI verfügbar. Dieser DDI enthält nicht die AllocateDmaBuffer und FreeDmaBuffer Routinen, die nie in Verbindung mit AllocateContiguousDmaBuffer, SetupDmaEngineWithBdlund FreeContiguousDmaBuffer
verwendet werden. Im Gegensatz zu SetupDmaEngineWithBdl, das das DMA-Modul für die Verwendung eines zuvor zugewiesenen DMA-Puffers konfiguriert, AllocateDmaBuffer beide einen DMA-Puffer zuordnet und das DMA-Modul für die Verwendung des Puffers konfiguriert. Weitere Informationen finden Sie unter Unterschiede zwischen den beiden DDI-Versionen.
Die Routine schlägt fehl und gibt fehlercode STATUS_INVALID_DEVICE_REQUEST in einem der folgenden Situationen zurück:
-
Der Client ruft
FreeContiguousDmaBuffer
auf, wenn derzeit kein Puffer für das DMA-Modul zugeordnet ist. - Der Datenstrom befindet sich in einem anderen Zustand als "Zurücksetzen".
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | hdaudio.h (einschließlich Hdaudio.h) |
IRQL- | PASSIVE_LEVEL |