AcxStreamCreate 函数 (acxstreams.h)

AcxStreamCreate 创建可用于控制流式处理行为的 ACX Stream。

语法

NTSTATUS AcxStreamCreate(
  WDFDEVICE              Device,
  ACXCIRCUIT             Circuit,
  PWDF_OBJECT_ATTRIBUTES Attributes,
  PACXSTREAM_INIT        *Config,
  ACXSTREAM              *Stream
);

参数

Device

与指定的 ACXCIRCUIT 及其流关联的 框架对象) 摘要 中所述 (WDFDEVICE 对象。

Circuit

此流将与之关联的 ACXCIRCUIT。

Attributes

使用 WDF_OBJECT_ATTRIBUTES 定义的其他属性,这些属性用于设置各种对象的值:清理和销毁回调、上下文类型以及指定其父对象。

Config

定义流的初始化参数的ACXSTREAM_INIT结构。 有关 ACX 对象的详细信息,请参阅 ACX - ACX 对象的摘要

Stream

指向接收新 ACXSTREAM 对象的句柄的位置的指针。

ACXSTREAM 对象表示由线路创建的音频流。 有关详细信息,请参阅 ACX - ACX 对象的摘要

返回值

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

注解

创建 ACXSTREAM 后,驱动程序可以将一个或多个 ACX 元素添加到流。 默认情况下,ACX 元素以相同的程序集顺序连接。 ACXSTREAM 仅与一个 ACXCIRCUIT 相关联。 ACX 支持两种类型的流:非流式处理线路使用的基本 ACX 流对象和 ACX RealTime (RT) 流式处理线路使用的流对象。

AcxStreamCreate 创建的 ACXSTREAM 将允许驱动程序接收与流关联的控制信号和状态更改。 但是,ACXSTREAM 不支持将音频数据流式传输到 OS 或从 OS 流式传输音频数据。 支持流音频数据的驱动程序应使用 AcxRtStreamCreate 创建支持流式处理的 ACXSTREAM。 对于通过多个驱动程序的多个 ACXCIRCUIT 创建的终结点,托管流式处理引脚的 ACXCIRCUIT 将创建 ACX RT Stream而终结点中的其他 ACXCIRCUIT 将创建非 RT ACX 流。

示例

示例流创建如下所示。

    //
    // Init streaming callbacks.
    //
    ACX_STREAM_CALLBACKS streamCallbacks;
    ACX_STREAM_CALLBACKS_INIT(&streamCallbacks);
    streamCallbacks.EvtAcxStreamPrepareHardware     = EvtStreamPrepareHardware;
    streamCallbacks.EvtAcxStreamReleaseHardware     = EvtStreamReleaseHardware;
    streamCallbacks.EvtAcxStreamRun                 = EvtStreamRun;
    streamCallbacks.EvtAcxStreamPause               = EvtStreamPause;
    streamCallbacks.EvtAcxStreamAssignDrmContentId  = EvtStreamAssignDrmContentId;

    status = AcxStreamInitAssignAcxStreamCallbacks(StreamInit, &streamCallbacks);

    //
    // Create the stream.
    //
    WDF_OBJECT_ATTRIBUTES attributes;
    ACXSTREAM stream;
    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&attributes, STREAM_CONTEXT);
    attributes.EvtCleanupCallback = EvtStreamContextCleanup;
    attributes.EvtDestroyCallback = EvtStreamDestroy;
    status = AcxStreamCreate(Device, Circuit, &attributes, &StreamInit, &stream);

ACX 要求

最低 ACX 版本: 1.0

有关 ACX 版本的详细信息,请参阅 ACX 版本概述

要求

要求
Header acxstreams.h
IRQL PASSIVE_LEVEL

另请参阅