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 para una rutina SetDmaEngineState se define de la siguiente manera.
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 del HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 o HDAUDIO_BUS_INTERFACE_BDL estructura.
[in] StreamState
Especifica el nuevo estado de secuencia. Establezca este parámetro en uno de los siguientes valores de enumeración HDAUDIO_STREAM_STATE:
- PauseState (en pausa)
- ResetState (reset)
- RunState (en ejecución)
- StopState (detenido)
[in] NumberOfHandles
Especifica el número de identificadores de la matriz handles . Establezca este parámetro en un valor distinto de cero.
[in] Handles
Puntero a una matriz de controladores a motores DMA. Especifique un valor distinto de NULL 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 no hay ningún búfer asignado actualmente para uno de los motores DMA. |
Comentarios
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 identifican los controladores de la matriz handles . Para obtener más información, vea Sincronizar dos o más secuencias.
Antes de llamar a esta rutina, configure cada motor DMA en la matriz handles :
- Si usa la versión HDAUDIO_BUS_INTERFACE de la DDI de audio HD, 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 | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | hdaudio.h (incluye Hdaudio.h) |
IRQL | <=DISPATCH_LEVEL |