PFREE_CONTIGUOUS_DMA_BUFFER Rückruffunktion (hdaudio.h)
Die FreeContiguousDmaBuffer
Routine gibt einen DMA-Puffer und eine Pufferdeskriptorliste (BDL) frei, die von einem Aufruf für "AllocateContiguousDmaBuffer" zugewiesen wurde.
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 Kontextelement 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 "AllocateRenderDmaEngine" abgerufen.
Rückgabewert
FreeContiguousDmaBuffer
gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist. Andernfalls gibt die Routine einen entsprechenden 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 einem IRQL ausgeführt wird, das 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 zugewiesen wird. |
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 Routinen "AllocateDmaBuffer " und "FreeDmaBuffer ", die nie in Verbindung mit "AllocateContiguousDmaBuffer", "SetupDmaEngineWithBdl" und " FreeContiguousDmaBuffer
verwendet werden. Im Gegensatz zu SetupDmaEngineWithBdl, das das DMA-Modul so konfiguriert, dass ein zuvor zugewiesener DMA-Puffer verwendet wird, weist "AllocateDmaBuffer " beide einen DMA-Puffer zu und konfiguriert das DMA-Modul für die Verwendung des Puffers. 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 Umstände zurück:
-
Der Client ruft auf
FreeContiguousDmaBuffer
, wenn derzeit kein Puffer für das DMA-Modul zugewiesen wird. - Der Datenstrom befindet sich in einem anderen Zustand als zurücksetzen.
Anforderungen
Zielplattform | Power BI Desktop |
Header | hdaudio.h (include Hdaudio.h) |
IRQL | PASSIVE_LEVEL |