PSET_DMA_ENGINE_STATE función de devolución de llamada (hdaudio.h)
La rutina SetDmaEngineState establece el estado de uno o varios motores DMA en el estado Running, Stopped, Paused o Reset.
El tipo de puntero de función de un SetDmaEngineState rutina se define de la manera siguiente.
Sintaxis
PSET_DMA_ENGINE_STATE PsetDmaEngineState;
NTSTATUS PsetDmaEngineState(
[in] PVOID _context,
[in] HDAUDIO_STREAM_STATE StreamState,
[in] ULONG NumberOfHandles,
[in] PHANDLE Handles
)
{...}
Parámetros
[in] _context
Especifica el valor de contexto del miembro Context de la estructura HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2o HDAUDIO_BUS_INTERFACE_BDL.
[in] StreamState
Especifica el nuevo estado de la secuencia. Establezca este parámetro en uno de los siguientes valores de enumeración de HDAUDIO_STREAM_STATE:
- PauseState (en pausa)
- ResetState (restablecimiento)
- runState (en ejecución)
- StopState (detenido)
[in] NumberOfHandles
Especifica el número de identificadores de la matriz . Establezca este parámetro en un valor distinto de cero.
[in] Handles
Puntero a una matriz de identificadores a los motores DMA. Especifique un valor que no seaNULL para este parámetro.
Valor devuelto
setDmaEngineState devuelve STATUS_SUCCESS si la llamada cambia correctamente los estados de los motores DMA. De lo contrario, la rutina devuelve un código de error adecuado. En la tabla siguiente se muestran algunos de los posibles códigos de estado de retorno.
Código devuelto | Descripción |
---|---|
|
Indica que uno de los identificadores no es válido. |
|
Indica que uno de los valores de parámetro es incorrecto (valor de parámetro no válido o puntero incorrecto). |
|
Indica que actualmente no se asigna ningún búfer para uno de los motores DMA. |
Observaciones
Esta rutina cambia el estado de uno o varios motores DMA al estado que especifica el parámetro streamState . La rutina sincroniza las transiciones de estado de todos los motores DMA que controla en el controla matriz. Para obtener más información, consulte Sincronización de dos o más secuencias.
Antes de llamar a esta rutina, configure cada motor DMA en el controla matriz:
- Si usa la versión HDAUDIO_BUS_INTERFACE de hd Audio DDI, llame a AllocateDmaBuffer para configurar el motor DMA.
- Si usa la versión HDAUDIO_BUS_INTERFACE_BDL de DDI, llame a SetupDmaEngineWithBdl para configurar el motor DMA.
El estado de la secuencia no puede realizar la transición directamente entre Running y Reset. En su lugar, la secuencia debe pasar primero a través de un estado intermedio de Pausado o Detenido:
- Desde un estado En ejecución o Restablecer, el estado de la secuencia puede cambiar directamente a Pausado o Detenido.
- Desde un estado en pausa o detenido, el estado de la secuencia puede cambiar directamente a En ejecución o Restablecer.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Escritorio |
encabezado de | hdaudio.h (incluya Hdaudio.h) |
irQL | <=DISPATCH_LEVEL |