PFREE_CONTIGUOUS_DMA_BUFFER Rückruffunktion (hdaudio.h)
Die FreeContiguousDmaBuffer
Routine gibt einen DMA-Puffer und eine Pufferdeskriptorliste (BDL) frei, die durch einen Aufruf von AllocateContiguousDmaBuffer zugeordnet wurden.
Der Funktionszeigertyp für eine FreeContiguousDmaBuffer
Routine ist 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 der DMA-Engine. 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 geeigneten Fehlercode zurück. In der folgenden Tabelle sind einige der möglichen Rückgabecodes status aufgeführt.
Rückgabecode | Beschreibung |
---|---|
|
Gibt an, dass der Aufrufer in einem zu hohen IRQL-Wert ausgeführt wird. |
|
Gibt an, dass der Handle-Parameterwert ungültig ist. |
|
Gibt an, dass sich der Stream nicht im Zurücksetzungszustand befindet oder dass derzeit kein Puffer für die DMA-Engine zugeordnet ist. |
Hinweise
Die FreeContiguousDmaBuffer
Routine wird in Verbindung mit den Routinen SetupDmaEngineWithBdl und AllocateContiguousDmaBuffer 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 die DMA-Engine für die Verwendung eines zuvor zugeordneten DMA-Puffers konfiguriert, weist AllocateDmaBuffer sowohl einen DMA-Puffer zu und konfiguriert die DMA-Engine für die Verwendung des Puffers. Weitere Informationen finden Sie unter Unterschiede zwischen den beiden DDI-Versionen.
Die Routine schlägt fehl und gibt den Fehlercode STATUS_INVALID_DEVICE_REQUEST in einem der folgenden Situationen zurück:
-
Der Client ruft auf
FreeContiguousDmaBuffer
, wenn derzeit kein Puffer für die DMA-Engine zugeordnet ist. - Der Stream befindet sich in einem anderen Zustand als "Zurücksetzen".
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | hdaudio.h (hdaudio.h einschließen) |
IRQL | PASSIVE_LEVEL |