Compartilhar via


função de retorno de chamada EVT_ACX_STREAM_PAUSE (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 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 que 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 Stop.

Durante a desligar e remover o dispositivo ACX, se os fluxos estiverem presentes, o ACX chamará o EvtAcxStreamPause para fazer a transição de fluxos para Pausar. Isso é Stream instância com escopo.

Os Eventos ACX são análogos aos estados KS, conforme descrito nesta tabela.

Estado de Início Estado final Evento do 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.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 as 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