Поделиться через


функция обратного вызова EVT_ACX_STREAM_RUN (acxstreams.h)

Событие EvtAcxStreamRun сообщает драйверу, чтобы перенести состояние потока из приостановки в запуск.

Синтаксис

EVT_ACX_STREAM_RUN EvtAcxStreamRun;

NTSTATUS EvtAcxStreamRun(
  ACXSTREAM Stream
)
{...}

Параметры

Stream

Объект ACXSTREAM представляет звуковой поток, созданный каналом. Поток состоит из списка элементов, созданных на основе элементов родительского канала. Дополнительные сведения см. в разделе ACX — сводка по объектам ACX.

Возвращаемое значение

Возвращает STATUS_SUCCESS, если вызов выполнен успешно. В противном случае возвращается соответствующий код ошибки. Дополнительные сведения см. в использовании значений NTSTATUS.

Замечания

AcxStream поддерживает различные состояния. Эти состояния указывают, когда поток звука (состояние RUN), звук не выполняется, но звуковое оборудование подготовлено (состояние PAUSE), или звук не выполняется, а звуковое оборудование не подготовлено (состояние STOP).

Событие EvtAcxStreamRun передаст состояние потока из состояния Приостановки в состояние run. После того как поток находится в состоянии выполнения, драйвер может получить событие EvtAcxStreamPause для перехода в состояние Приостановки.

События ACX аналогичны состояниям KS, как описано в этой таблице.

Состояние запуска Конечное состояние Вызывается событие драйвера ACX Примечания
ОСТАНОВКА ПРИОБРЕТАТЬ PrepareHardware Драйвер выполняет выделение оборудования и подготовку
ПРИОБРЕТАТЬ ПАУЗА (Без вызова)
ПАУЗА БЕЖАТЬ Бежать
БЕЖАТЬ ПАУЗА Пауза
ПАУЗА ПРИОБРЕТАТЬ (Без вызова)
ПРИОБРЕТАТЬ ОСТАНОВКА ReleaseHardware Выпуски аппаратных выделений драйверов

Пример

Ниже показан пример использования.

    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;
}

Требования к ACX

минимальная версия ACX: 1.0

Дополнительные сведения о версиях ACX см. в обзоре версий ACX.

Требования

Требование Ценность
заголовка acxstreams.h
IRQL PASSIVE_LEVEL

См. также