EVT_ACX_STREAM_RUN回调函数 (acxstreams.h)

重要

某些信息与预发行产品有关,该产品在商业发布之前可能会进行大幅修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。

EvtAcxStreamRun 事件告知驱动程序将流状态从暂停转换到运行。

语法

EVT_ACX_STREAM_RUN EvtAcxStreamRun;

NTSTATUS EvtAcxStreamRun(
  ACXSTREAM Stream
)
{...}

参数

Stream

ACXSTREAM 对象表示由线路创建的音频流。 该流由基于父线路元素创建的元素列表组成。 有关详细信息,请参阅 ACX - ACX 对象的摘要

返回值

如果调用成功,则返回 STATUS_SUCCESS 。 否则,它将返回适当的错误代码。 有关详细信息,请参阅 使用 NTSTATUS 值

备注

AcxStream 支持不同的状态。 这些状态指示音频在 (运行状态) 流动时,音频不会流动,但音频硬件已准备好 (PAUSE 状态) ,或者音频未流动,音频硬件未 (停止状态) 准备。

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

另请参阅