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 di funzione per un routine SetDmaEngineState viene definito come segue.
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 del membro Context della struttura HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2o HDAUDIO_BUS_INTERFACE_BDL.
[in] StreamState
Specifica il nuovo stato del flusso. Impostare questo parametro su uno dei valori di enumerazione HDAUDIO_STREAM_STATE seguenti:
- pauseState (sospeso)
- resetState (reimpostazione)
- RunState (in esecuzione)
- StopState (arrestato)
[in] NumberOfHandles
Specifica il numero di handle nel handle matrice. Impostare questo parametro su un valore diverso da zero.
[in] Handles
Puntatore a una matrice di handle ai motori DMA. Specificare un valorenull non 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 illustra 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 è attualmente allocato alcun buffer per uno dei motori DMA. |
Osservazioni
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 nell'gestisce matrice identificata. Per altre informazioni, vedere la sincronizzazione di due o più flussi.
Prima di chiamare questa routine, configurare ogni motore DMA nel gestisce matrice:
- 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 In esecuzione e Reimposta. Al contrario, il flusso deve prima passare attraverso uno stato intermedio sospeso o Arrestato:
- Da uno stato In esecuzione o Reimposta, lo stato del flusso può cambiare direttamente in Sospeso o Arrestato.
- Da uno stato sospeso o arrestato, lo stato del flusso può passare direttamente a In esecuzione o Reimposta.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | hdaudio.h (include Hdaudio.h) |
IRQL | <=DISPATCH_LEVEL |