PFREE_DMA_ENGINE Rückruffunktion (hdaudio.h)

Die FreeDmaEngine Routine gibt eine DMA-Engine frei, die zuvor durch einen Aufruf von AllocateCaptureDmaEngine oder AllocateRenderDmaEngine zugeordnet wurde.

Der Funktionszeigertyp für eine FreeDmaEngine Routine ist wie folgt definiert.

Syntax

PFREE_DMA_ENGINE PfreeDmaEngine;

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

Parameter

[in] _context

Gibt den Kontextwert aus dem Context-Element der HDAUDIO_BUS_INTERFACE, der HDAUDIO_BUS_INTERFACE_V2 oder HDAUDIO_BUS_INTERFACE_BDL-Struktur an.

[in] Handle

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

Rückgabewert

FreeDmaEngine gibt STATUS_SUCCESS zurück, wenn der Aufruf die DMA-Engine erfolgreich freigeben kann. Andernfalls gibt die Routine einen geeigneten Fehlercode zurück. In der folgenden Tabelle sind einige der möglichen Rückgabecodes status aufgeführt.

Rückgabecode Beschreibung
STATUS_INVALID_HANDLE
Gibt an, dass der Handle-Parameterwert ungültig ist.
STATUS_INVALID_DEVICE_REQUEST
Gibt an, dass sich der Stream nicht im Zurücksetzungszustand befindet oder dass der DMA-Engine noch ein Puffer zugeordnet ist.

Hinweise

Diese Routine gibt eine DMA-Engine frei, die zuvor durch einen Aufruf der AllocateCaptureDmaEngine- oder AllocateRenderDmaEngine-Routine reserviert wurde.

Diese Routine schlägt fehl und gibt den Fehlercode STATUS_INVALID_DEVICE_REQUEST in einem der folgenden Situationen zurück:

  • Alle zuvor zugeordneten DMA-Puffer wurden nicht freigegeben (durch Aufrufen von FreeDmaBuffer oder FreeContiguousDmaBuffer).
  • Der Stream befindet sich in einem anderen Zustand als "Zurücksetzen".
Ein Audiotreiber ruft diese Routine auf, um den Pin zu schließen (und den Stream zu zerstören).

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile hdaudio.h (hdaudio.h einschließen)
IRQL <=DISPATCH_LEVEL

Weitere Informationen

AllocateCaptureDmaEngine

AllocateRenderDmaEngine

FreeContiguousDmaBuffer

FreeDmaBuffer

HDAUDIO_BUS_INTERFACE

HDAUDIO_BUS_INTERFACE_BDL

HDAUDIO_BUS_INTERFACE_V2