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

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

Синтаксис

EVT_ACX_STREAM_RUN EvtAcxStreamRun;

NTSTATUS EvtAcxStreamRun(
  ACXSTREAM Stream
)
{...}

Параметры

Stream

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

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

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

Комментарии

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

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

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

Состояние запуска Конечное состояние Вызывается событие драйвера ACX Примечания
STOP ПРИОБРЕСТИ PrepareHardware Драйвер выполняет выделение оборудования и подготовку
ПРИОБРЕСТИ PAUSE (Без вызова)
PAUSE ВЫПОЛНИТЬ Выполнить
ВЫПОЛНИТЬ PAUSE Пауза
PAUSE ПРИОБРЕСТИ (Без вызова)
ПРИОБРЕСТИ STOP 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

См. также раздел