Функция AcxStreamBridgeRemoveStream (acxstreams.h)

Функция AcxStreamBridgeRemoveStream удаляет указанный ACXSTREAM из объекта ACXSTREAMBRIDGE . Дополнительные сведения об объектах ACX см. в разделе ACX — сводка по объектам ACX.

Синтаксис

NTSTATUS AcxStreamBridgeRemoveStream(
  ACXSTREAMBRIDGE Bridge,
  ACXSTREAM       Stream
);

Параметры

Bridge

Объект ACXSTREAMBRIDGE используется каналом для распространения создания потока, переходов состояний потока и параметров DRM между сегментами потока конечной точки. Этот объект используется только в сценарии с несколькими каналами (составной аудио).

Stream

Дескриптор объекта ACXSTREAM, удаляемый из ACXSTREAMBRIDGE.

Возвращаемое значение

Возвращает значение STATUS_SUCCESS , если вызов был выполнен успешно. В противном случае возвращается соответствующий код ошибки. Дополнительные сведения см. в разделе Использование значений NTSTATUS.

Комментарии

Этот DDI можно вызывать только из контекста обработчика очистки потока драйвера. Вызывающий объект вызывает этот DDI, чтобы вручную отменить связь входного ACXSTREAM с указанным объектом ACXSTREAMBRIDGE.

Драйверы вызывают AcxStreamBridgeRemoveStream в следующих сценариях:

(a) Драйверы хотят вручную удалить ACXSTREAM из ACXSTREAMBRIDGE.

(b) драйверам (и их требованиям ч/w) требуется ACXSTREAM верхнего уровня, т. е. канал выполняет потоки ближе к контакту моста потоковой передачи, чтобы выполнить действия перед acXSTREAM нижнего уровня.

(в) Драйверы должны выполнять действия до и после того, как acXSTREAM нижнего уровня исчезает.

Для типа AcxStreamBridgeMux создается только один ACXSTREAM нижнего уровня независимо от количества входных acXSTREAM, добавленных в этот мост. Это означает, что выходной ACXSTREAM (который для локального канала представляет поток с помощью ACXTARGETSTREAM) создается только для первого ACXSTREAM, добавленного в ACXSTREAMBRIDGE. Все дополнительные входные данные ACXSTREAM просто принимают ссылку на существующий ACXTARGETSTREAM.

Для типа AcxStreamBridgeMux выходные данные ACXTARGETSTREAM удаляются при удалении последнего входного ACXSTREAM из ACXSTREAMBRIDGE с помощью AcxStreamBridgeRemoveStream.

Пример

Ниже приведен пример использования.

    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

См. также раздел