Partilhar via


EVT_ACX_STREAM_PAUSE função de retorno de chamada (acxstreams.h)

O evento EvtAcxStreamPause informa ao driver para fazer a transição do estado do fluxo de Executar para Pausar.

Sintaxe

EVT_ACX_STREAM_PAUSE EvtAcxStreamPause;

NTSTATUS EvtAcxStreamPause(
  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 dos objetos ACX.

Valor de retorno

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.

Observações

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 EvtAcxStreamPause fará a transição do estado do fluxo do estado Executar para o estado pausar. Depois que o fluxo estiver no estado Pausar, o driver poderá receber o evento EvtAcxStreamRun para fazer a transição para o estado Executar ou o driver poderá receber o evento EvtAcxStreamReleaseHardware para fazer a transição para o estado Parar.

Durante a remoção e a energia do dispositivo ACX, se os fluxos estiverem presentes, o ACX chamará o EvtAcxStreamPause para fazer a transição de fluxos para Pausar. Esse é o escopo da Instância de Fluxo.

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 Anotações
PARAR ADQUIRIR PrepareHardware O driver executa alocações e preparações de hardware
ADQUIRIR PAUSA (Sem chamada)
PAUSA CORRER Correr
CORRER PAUSA Pausa
PAUSA ADQUIRIR (Sem chamada)
ADQUIRIR PARAR 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.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 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

Consulte também