функция обратного вызова 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 |
См. также
- заголовка acxstreams.h
- EVT_ACX_STREAM_PREPARE_HARDWARE
- EVT_ACX_STREAM_PAUSE_HARDWARE
- EVT_ACX_STREAM_RELEASE_HARDWARE