EVT_ACX_STREAM_RUN função de retorno de chamada (acxstreams.h)
O evento EvtAcxStreamRun informa ao driver para fazer a transição do estado do fluxo de Pausar para Executar.
Sintaxe
EVT_ACX_STREAM_RUN EvtAcxStreamRun;
NTSTATUS EvtAcxStreamRun(
ACXSTREAM Stream
)
{...}
Parâmetros
Stream
Um objeto ACXSTREAM representa um fluxo de áudio criado por um circuito. O fluxo é composto por uma lista de elementos criados com base nos elementos do circuito pai. Para obter mais informações, consulte ACX – Resumo de objetos ACX.
Retornar valor
Retorna STATUS_SUCCESS
se a chamada foi bem-sucedida. Caso contrário, ele retornará um código de erro apropriado. Para obter mais informações, consulte Usando valores NTSTATUS.
Comentários
Um AcxStream dá suporte a estados diferentes. Esses estados indicam quando o áudio está fluindo (estado RUN), o áudio não está fluindo, mas o hardware de áudio está preparado (estado PAUSE) ou o áudio não está fluindo e o hardware de áudio não está preparado (estado STOP).
O evento EvtAcxStreamRun fará a transição do estado do fluxo do estado Pausar para o estado Executar. Depois que o fluxo estiver no estado Executar, o driver poderá receber o evento EvtAcxStreamPause para fazer a transição para o estado Pausar.
Os Eventos ACX são análogos aos estados KS, conforme descrito nesta tabela.
Estado de Início | Estado final | Evento de driver ACX chamado | Observações |
---|---|---|---|
STOP | ADQUIRIR | PrepareHardware | O driver executa alocações e preparações de hardware |
ADQUIRIR | PAUSE | (Sem chamada) | |
PAUSE | EXECUTAR | Executar | |
EXECUTAR | PAUSE | Pausar | |
PAUSE | ADQUIRIR | (Sem chamada) | |
ADQUIRIR | STOP | ReleaseHardware | O driver libera alocações de hardware |
Exemplo
O uso de exemplo é mostrado abaixo.
ACX_STREAM_CALLBACKS streamCallbacks;
ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
streamCallbacks.EvtAcxStreamRun = EvtStreamRun;
...
status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);
_Use_decl_annotations_
PAGED_CODE_SEG
NTSTATUS
EvtStreamRun(
_In_ ACXSTREAM Stream
)
{
PSTREAM_CONTEXT ctx;
NTSTATUS status;
PAGED_CODE();
ctx = GetStreamContext(Stream);
status = TransitionStreamToRun(Stream);
if (NT_SUCCESS(status))
{
ctx->StreamState = AcxStreamStateRun;
}
return status;
}
Requisitos do ACX
Versão mínima do ACX: 1.0
Para obter mais informações sobre versões do ACX, consulte Visão geral da versão do ACX.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | acxstreams.h |
IRQL | PASSIVE_LEVEL |