Compartilhar via


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

Confira também