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
STATUS_UNSUCCESSFUL
Gibt an, dass der Aufrufer bei einem IRQL ausgeführt wird, das zu hoch ist.
STATUS_INVALID_HANDLE
Gibt an, dass der Handle-Parameterwert ungültig ist.
STATUS_INVALID_DEVICE_REQUEST
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 " FreeContiguousDmaBufferverwendet 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

Weitere Informationen

AllocateCaptureDmaEngine

AllocateContiguousDmaBuffer

ZugewiesenDmaBuffer

ZuweisungRenderDmaEngine

FreeDmaBuffer

HDAUDIO_BUS_INTERFACE_BDL

SetupDmaEngineWithBdl