EVT_ACX_STREAM_PAUSE función de devolución de llamada (acxstreams.h)
El evento EvtAcxStreamPause indica al controlador que realice la transición del estado de secuencia de Ejecutar a Pausa.
Sintaxis
EVT_ACX_STREAM_PAUSE EvtAcxStreamPause;
NTSTATUS EvtAcxStreamPause(
ACXSTREAM Stream
)
{...}
Parámetros
Stream
Un objeto ACXSTREAM representa una secuencia de audio creada por un circuito. La secuencia se compone de una lista de elementos creados en función de los elementos del circuito primario. Para obtener más información, vea ACX : resumen de objetos ACX.
Valor devuelto
Devuelve STATUS_SUCCESS
si la llamada se realizó correctamente. De lo contrario, devuelve un código de error adecuado. Para obtener más información, vea Uso de valores NTSTATUS.
Comentarios
AcxStream admite diferentes estados. Estos estados indican cuándo fluye el audio (estado RUN), el audio no fluye, pero el hardware de audio está preparado (estado PAUSE) o el audio no fluye y el hardware de audio no está preparado (estado STOP).
El evento EvtAcxStreamPause pasará el estado de la secuencia del estado De ejecución al estado Pausa. Una vez que la secuencia está en estado Pause, el controlador puede recibir el evento EvtAcxStreamRun para realizar la transición al estado Run o el controlador puede recibir el evento EvtAcxStreamReleaseHardware para pasar al estado Stop.
Durante la apagado y eliminación del dispositivo ACX, si las secuencias están presentes, ACX llamará a EvtAcxStreamPause para realizar la transición de secuencias a Pausa. Se trata de Stream instancia de ámbito.
Los eventos ACX son análogos a los estados KS, como se describe en esta tabla.
Estado de inicio | Estado final | Evento de controlador ACX llamado | Notas |
---|---|---|---|
STOP | ADQUIRIR | PrepareHardware | El controlador realiza asignaciones de hardware y preparación |
ADQUIRIR | PAUSE | (Sin llamada) | |
PAUSE | EJECUTAR | Ejecutar | |
EJECUTAR | PAUSE | Pausar | |
PAUSE | ADQUIRIR | (Sin llamada) | |
ADQUIRIR | STOP | ReleaseHardware | El controlador libera asignaciones de hardware |
Ejemplo
A continuación se muestra un ejemplo de uso.
ACX_STREAM_CALLBACKS streamCallbacks;
ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
streamCallbacks.EvtAcxStreamPause = EvtStreamPause;
...
status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);
#pragma code_seg("PAGE")
NTSTATUS
EvtStreamPause(
_In_ ACXSTREAM Stream
)
{
PSTREAM_CONTEXT ctx;
NTSTATUS status = STATUS_SUCCESS;
PAGED_CODE();
ctx = GetStreamContext(Stream);
status = TransitionStreamToPause(Stream);
ctx->StreamState = AcxStreamStatePause;
return status;
}
Requisitos de ACX
Versión mínima de ACX: 1.0
Para obtener más información sobre las versiones de ACX, consulte Introducción a la versión de ACX.
Requisitos
Requisito | Valor |
---|---|
Header | acxstreams.h |
IRQL | PASSIVE_LEVEL |