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 |
---|---|
|
Gibt an, dass der Aufrufer bei einer zu hohen IRQL ausgeführt wird. |
|
Gibt an, dass der Wert des Handle-Parameters ungültig ist. |
|
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 FreeDmaBuffer
verwendet 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 |