Freigeben über


PFREE_DMA_BUFFER Rückruffunktion (hdaudio.h)

Die FreeDmaBuffer Routine gibt einen DMA-Puffer frei, der zuvor durch einen Aufruf von AllocateDmaBufferzugewiesen wurde.

Der Funktionszeigertyp für eine FreeDmaBuffer Routine wird wie folgt definiert.

Syntax

PFREE_DMA_BUFFER PfreeDmaBuffer;

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

Parameter

[in] _context

Gibt den Kontextwert aus dem Context Member des HDAUDIO_BUS_INTERFACE oder der HDAUDIO_BUS_INTERFACE_V2-Struktur an.

[in] Handle

Behandeln Sie die Identifizierung des DMA-Moduls. Dieser Handlewert wurde aus einem vorherigen Aufruf von AllocateCaptureDmaEngine oder AllocateRenderDmaEngineabgerufen.

Rückgabewert

FreeDmaBuffer 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
STATUS_UNSUCCESSFUL
Gibt an, dass der Aufrufer bei einer IRQL ausgeführt wird, die 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 zugeordnet ist.

Bemerkungen

Die FreeDmaBuffer Routine wird in Verbindung mit der AllocateDmaBuffer Routine verwendet. Diese beiden Routinen sind nur in der HDAUDIO_BUS_INTERFACE Version des HD Audio DDI verfügbar. Dieser DDI enthält nicht die AllocateContiguousDmaBuffer, SetupDmaEngineWithBdlund FreeContiguousDmaBuffer Routinen, die nie in Verbindung mit AllocateDmaBuffer und FreeDmaBufferverwendet 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.

Die Routine schlägt fehl und gibt fehlercode STATUS_INVALID_DEVICE_REQUEST in einem der folgenden Situationen zurück:

  • Der Client ruft FreeDmaBuffer 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

Siehe auch

AllocateDmaBuffer

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_V2

SetupDmaEngineWithBdl