AcxStreamBridgeRemoveStream 函数 (acxstreams.h)

AcxStreamBridgeRemoveStream 函数从 ACXSTREAMBRIDGE 对象中删除指定的 ACXSTREAM。 有关 ACX 对象的详细信息,请参阅 ACX - ACX 对象的摘要

语法

NTSTATUS AcxStreamBridgeRemoveStream(
  ACXSTREAMBRIDGE Bridge,
  ACXSTREAM       Stream
);

参数

Bridge

ACXSTREAMBRIDGE 对象由线路用来传播流创建、流的状态转换和终结点线路流段之间的 DRM 设置。 此对象仅在多线路(音频复合)方案中使用。

Stream

要从 ACXSTREAMBRIDGE 中删除的 ACXSTREAM 对象的句柄。

返回值

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

言论

只能从驱动程序的流清理处理程序上下文调用此 DDI。 调用方调用此 DDI 以手动取消与指定的 ACXSTREAMBRIDGE 对象的输入 ACXSTREAM 的关联。

驱动程序在以下方案中调用 AcxStreamBridgeRemoveStream:

(a) 驱动程序希望从 ACXSTREAMBRIDGE 手动删除 ACXSTREAM。

(b) 驱动程序(及其 h/w 要求)需要上层 ACXSTREAM,即线路流靠近流式桥引脚,以便在下层 ACXSTREAM 之前采取措施。

(c) 驱动程序需要在下层 ACXSTREAM 消失前后采取措施。

对于 AcxStreamBridgeMux 类型,仅创建一个下层 ACXSTREAM,而与添加到此桥的输入 ACXSTREAM 的数量无关。 这意味着,输出 ACXSTREAM(对于本地线路,该流使用 ACXTARGETSTREAM 表示),仅为添加到 ACXSTREAMBRIDGE 的第一个 ACXSTREAM 创建。 任何其他输入 ACXSTREAM 只需引用此现有的 ACXTARGETSTREAM。

对于 AcxStreamBridgeMux 类型,当最后一个输入 ACXSTREAM 与 AcxStreamBridgeRemoveStream 从 ACXSTREAMBRIDGE 中删除时,将删除输出 ACXTARGETSTREAM。

示例用法如下所示。

    status = AcxStreamBridgeAddStream(bridge, stream);

    // Get I/O target to send I/O to the target stream.
    targetStream = AcxStreamBridgeGetTargetStream(bridge, stream);
 
    // Target stream is closed if this was last input ACXSTREAM removed.
    status = AcxStreamBridgeRemoveStream(bridge, stream);

ACX 要求

最低 ACX 版本: 1.0

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

要求

要求 价值
标头 acxstreams.h
IRQL PASSIVE_LEVEL

另请参阅