PSET_DMA_ENGINE_STATE funzione di callback (hdaudio.h)
La routine SetDmaEngineState imposta lo stato di uno o più motori DMA sullo stato Running, Stopped, Paused o Reset.
Il tipo di puntatore della funzione per una routine SetDmaEngineState è definito come indicato di seguito.
Sintassi
PSET_DMA_ENGINE_STATE PsetDmaEngineState;
NTSTATUS PsetDmaEngineState(
[in] PVOID _context,
[in] HDAUDIO_STREAM_STATE StreamState,
[in] ULONG NumberOfHandles,
[in] PHANDLE Handles
)
{...}
Parametri
[in] _context
Specifica il valore di contesto dal membro Contesto della struttura HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 o HDAUDIO_BUS_INTERFACE_BDL .
[in] StreamState
Specifica il nuovo stato del flusso. Impostare questo parametro su uno dei valori di enumerazione seguenti HDAUDIO_STREAM_STATE:
- PauseState (sospeso)
- ResetState (reimpostazione)
- RunState (in esecuzione)
- StopState (arrestato)
[in] NumberOfHandles
Specifica il numero di handle nella matrice handle . Impostare questo parametro su un valore diverso da zero.
[in] Handles
Puntatore a una matrice di handle ai motori DMA. Specificare un valore non NULL per questo parametro.
Valore restituito
SetDmaEngineState restituisce STATUS_SUCCESS se la chiamata riesce a modificare gli stati dei motori DMA. In caso contrario, la routine restituisce un codice di errore appropriato. La tabella seguente mostra alcuni dei possibili codici di stato restituiti.
Codice restituito | Descrizione |
---|---|
|
Indica che uno degli handle non è valido. |
|
Indica che uno dei valori dei parametri non è corretto (valore del parametro non valido o puntatore non valido). |
|
Indica che non viene allocato alcun buffer per uno dei motori DMA. |
Commenti
Questa routine modifica lo stato di uno o più motori DMA allo stato specificato dal parametro streamState . La routine sincronizza le transizioni di stato di tutti i motori DMA gestiti nella matrice handle . Per altre informazioni, vedere Sincronizzazione di due o più flussi.
Prima di chiamare questa routine, configurare ogni motore DMA nella matrice handle :
- Se si usa la versione HDAUDIO_BUS_INTERFACE di HD Audio DDI, chiamare AllocateDmaBuffer per configurare il motore DMA.
- Se si usa la versione HDAUDIO_BUS_INTERFACE_BDL di DDI, chiamare SetupDmaEngineWithBdl per configurare il motore DMA.
Lo stato del flusso non può passare direttamente tra Esecuzione e Reimpostazione. Il flusso deve invece passare prima uno stato intermedio di Pausa o Arrestato:
- Da uno stato Di esecuzione o reimpostazione, lo stato del flusso può essere modificato direttamente in Sospeso o Arrestato.
- Da uno stato sospeso o arrestato, lo stato del flusso può cambiare direttamente in Esecuzione o Reimpostazione.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | hdaudio.h (includere Hdaudio.h) |
IRQL | <=DISPATCH_LEVEL |