PSET_DMA_ENGINE_STATE Rückruffunktion (hdaudio.h)
Die SetDmaEngineState Routine legt den Zustand eines oder mehrerer DMA-Module auf den Zustand "Running", "Stopped", "Paused" oder "Reset" fest.
Der Funktionszeigertyp für eine SetDmaEngineState Routine wird wie folgt definiert.
Syntax
PSET_DMA_ENGINE_STATE PsetDmaEngineState;
NTSTATUS PsetDmaEngineState(
[in] PVOID _context,
[in] HDAUDIO_STREAM_STATE StreamState,
[in] ULONG NumberOfHandles,
[in] PHANDLE Handles
)
{...}
Parameter
[in] _context
Gibt den Kontextwert aus dem Context Member der HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2oder HDAUDIO_BUS_INTERFACE_BDL Struktur an.
[in] StreamState
Gibt den neuen Datenstromstatus an. Legen Sie diesen Parameter auf einen der folgenden HDAUDIO_STREAM_STATE Enumerationswerte fest:
- PauseState- (angehalten)
- ResetState- (Zurücksetzen)
- RunState- (wird ausgeführt)
- StopState- (beendet)
[in] NumberOfHandles
Gibt die Anzahl der Ziehpunkte im Handles Array an. Legen Sie diesen Parameter auf einen Wert ungleich Null fest.
[in] Handles
Zeigen Sie auf ein Array von Ziehpunkten auf DMA-Engines. Geben Sie einen Wert ohneNULL- für diesen Parameter an.
Rückgabewert
SetDmaEngineState gibt STATUS_SUCCESS zurück, wenn der Aufruf erfolgreich ist, die Zustände der DMA-Engines zu ändern. 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 |
---|---|
|
Gibt an, dass eines der Ziehpunkte ungültig ist. |
|
Gibt an, dass einer der Parameterwerte falsch ist (ungültiger Parameterwert oder ungültiger Zeiger). |
|
Gibt an, dass derzeit kein Puffer für eines der DMA-Module zugeordnet ist. |
Bemerkungen
Diese Routine ändert den Zustand eines oder mehrerer DMA-Module in den Zustand, den der streamState-parameter angibt. Die Routine synchronisiert die Zustandsübergänge aller DMA-Module, die die Ziehpunkte in der behandeln, Array identifizieren. Weitere Informationen finden Sie unter Synchronisieren von zwei oder mehr Streams.
Richten Sie vor dem Aufrufen dieser Routine jedes DMA-Moduls in der Arrays ein:
- Wenn Sie die HDAUDIO_BUS_INTERFACE Version der HD Audio DDI verwenden, rufen Sie AllocateDmaBuffer- auf, um das DMA-Modul einzurichten.
- Wenn Sie die HDAUDIO_BUS_INTERFACE_BDL Version der DDI verwenden, rufen Sie SetupDmaEngineWithBdl- auf, um das DMA-Modul einzurichten.
Der Datenstromstatus kann nicht direkt zwischen "Ausführen" und "Zurücksetzen" übertragen werden. Stattdessen muss der Datenstrom zuerst einen Zwischenzustand von "Angehalten" oder "Beendet" durchlaufen:
- Aus einem Zustand "Ausführen" oder "Zurücksetzen" kann sich der Datenstromstatus direkt in "Angehalten" oder "Beendet" ändern.
- Aus einem angehaltenen oder angehaltenen Zustand kann sich der Datenstromstatus direkt in "Ausführen" oder "Zurücksetzen" ändern.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | hdaudio.h (einschließlich Hdaudio.h) |
IRQL- | <=DISPATCH_LEVEL |