Freigeben über


PFREE_DMA_BUFFER Rückruffunktion (hdaudio.h)

Die FreeDmaBuffer Routine gibt einen DMA-Puffer frei, der zuvor durch einen Aufruf von AllocateDmaBuffer zugewiesen 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 der HDAUDIO_BUS_INTERFACE oder der HDAUDIO_BUS_INTERFACE_V2-Struktur an.

[in] Handle

Behandeln Sie die Identifizierung der DMA-Engine. Dieser Handle-Wert wurde aus einem vorherigen Aufruf von AllocateCaptureDmaEngine oder AllocateRenderDmaEngine abgerufen.

Rückgabewert

FreeDmaBuffer 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ückgabecodes status aufgeführt.

Rückgabecode Beschreibung
STATUS_UNSUCCESSFUL
Gibt an, dass der Aufrufer bei einer zu hohen IRQL ausgeführt wird.
STATUS_INVALID_HANDLE
Gibt an, dass der Wert des Handle-Parameters ungültig ist.
STATUS_INVALID_DEVICE_REQUEST
Gibt an, dass sich der Stream nicht im Zurücksetzungszustand befindet oder dass derzeit kein Puffer für die DMA-Engine zugewiesen ist.

Hinweise

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 Routinen AllocateContiguousDmaBuffer, SetupDmaEngineWithBdl und FreeContiguousDmaBuffer , die nie in Verbindung mit AllocateDmaBuffer und FreeDmaBufferverwendet werden. Im Gegensatz zu SetupDmaEngineWithBdl, das die DMA-Engine für die Verwendung eines zuvor zugewiesenen DMA-Puffers konfiguriert, weist AllocateDmaBuffer sowohl einen DMA-Puffer zu und konfiguriert die DMA-Engine für die Verwendung des Puffers.

Die Routine schlägt fehl und gibt fehlercode STATUS_INVALID_DEVICE_REQUEST unter einem der folgenden Umstände zurück:

  • Der Client ruft auf FreeDmaBuffer , wenn derzeit kein Puffer für die DMA-Engine zugewiesen ist.
  • Der Stream befindet sich in einem anderen Zustand als reset.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile hdaudio.h (einschließlich Hdaudio.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

AllocateDmaBuffer

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_V2

SetupDmaEngineWithBdl