EVT_ACX_STREAM_RUN回调函数 (acxstreams.h)
EvtAcxStreamRun 事件告知驱动程序将流状态从“暂停”转换为“运行”。
语法
EVT_ACX_STREAM_RUN EvtAcxStreamRun;
NTSTATUS EvtAcxStreamRun(
ACXSTREAM Stream
)
{...}
参数
Stream
ACXSTREAM 对象表示线路创建的音频流。 该流由基于父线路的元素创建的元素列表组成。 有关详细信息,请参阅 ACX - ACX 对象的摘要。
返回值
STATUS_SUCCESS
如果调用成功,则返回 。 否则,它将返回相应的错误代码。 有关详细信息,请参阅 使用 NTSTATUS 值。
注解
AcxStream 支持不同的状态。 这些状态指示音频 (运行状态) 、音频不流动但音频硬件准备 (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 版本概述。
要求
要求 | 值 |
---|---|
Header | acxstreams.h |
IRQL | PASSIVE_LEVEL |