структура ACX_STREAM_BRIDGE_CONFIG (acxstreams.h)

Структура AcxStreamBridge используется каналом для распространения создания потока, переходов состояний потока и параметров DRM между сегментами потока канала конечной точки.

Синтаксис

typedef struct _ACX_STREAM_BRIDGE_CONFIG {
  ULONG                  Size;
  ULONG                  Flags;
  ACX_STREAM_BRIDGE_TYPE Type;
  ULONG                  InModesCount;
  PCGUID                 *InModes;
  PCGUID                 OutMode;
  ACXOBJECTBAG           OutStreamVarArguments;
  WDF_OBJECT_ATTRIBUTES  TargetStreamAttributes;
} ACX_STREAM_BRIDGE_CONFIG, *PACX_STREAM_BRIDGE_CONFIG;

Члены

Size

Длина этой структуры в байтах.

Flags

Побитовое ИЛИ перечисления ACX_STREAM_BRIDGE_CONFIG_FLAGS .

Type

Перечисление ACX_STREAM_BRIDGE_TYPE , определяющее тип моста.

InModesCount

Количество AUDIO_SIGNALPROCESSINGMODEs, перечисленных в InModes. Это режимы обработки сигналов, принимаемые в качестве входных данных ACXSTREAMBRIDGE. Дополнительные сведения о звуковых режимах см. в разделе Режимы обработки звуковых сигналов.

Это поле может быть равным нулю, только если для поля InModes задано значение NULL.

InModes

Указатель на список AUDIO_SIGNALPROCESSINGMODE указателей, поддерживаемых ACXSTREAMBRIDGE. Это поле может иметь значение NULL. GUID NULL — это значение дикого карта, которое соответствует любому AUDIO_SIGNALPROCESSINGMODEs.

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

OutMode

Указатель на AUDIO_SIGNALPROCESSINGMODE, определяющий режим обработки звукового сигнала выходного потока. Если это поле имеет значение NULL, AUDIO_SIGNALPROCESSINGMODE_DEFAULT используется, если поддерживается связанным ACXPIN, в противном случае используется AUDIO_SIGNALPROCESSINGMODE_RAW. Если последний также не поддерживается, выходной поток создается без указания режима обработки звукового сигнала.

OutStreamVarArguments

И объект ACXOBJECTBAG, который используется для предоставления переменных аргументов для выходного потока. Это необязательный параметр, который может иметь значение NULL. Дополнительные сведения об объектах ACX см. в разделе ACX — сводка по объектам ACX.

TargetStreamAttributes

Структура WDF_OBJECT_ATTRIBUTES , используемая для определения атрибутов объекта ACXTARGETSTREAM.

Комментарии

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

Контакт может быть связан с нулевым, одним или несколькими ACXSTREAMBRIDGEs. ACX выполняет поиск в связанном списке режимов обработки сигнала ACXPIN на соответствие режиму обработки потокового сигнала. Поиск останавливается при первом совпадении.

ACX создает acXSTREAMBRIDGE по умолчанию для моста ACXCIRCUIT в ACXCIRCUIT, если драйвер не создает его, и драйвер не отключает обработку моста потока по умолчанию с помощью функции AcxCircuitInitDisableDefaultStreamBridgeHandling.

Если связанный ACXPIN поддерживает указанный режим обработки звукового сигнала, при создании выходного потока используется формат данных по умолчанию для этого режима обработки звукового сигнала.

Если связанный ACXPIN не поддерживает указанный режим обработки звукового сигнала, при создании выходного потока используется формат данных входного потока.

ACXSTREAMBRIDGE должен быть родительским объектом, предком которого является ACXCIRCUIT.

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

        ACXSTREAMBRIDGE             bridge          = NULL;
        ACX_STREAM_BRIDGE_CONFIG    bridgeCfg;
    
        ACX_STREAM_BRIDGE_CONFIG_INIT(&bridgeCfg);
        bridgeCfg.InModesCount = 0;     // no in-modes. this stream-bridge is manually managed.
        bridgeCfg.InModes      = NULL; 
        bridgeCfg.OutMode      = NULL;  // no mode, i.e., default (1st), raw (2nd) or no mode (3rd).
        bridgeCfg.Flags       |= AcxStreamBridgeInvertChangeStateSequence;

        WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
        attributes.ParentObject = pin;

        status = AcxStreamBridgeCreate(Circuit, &attributes, &bridgeCfg, &bridge);

В этом примере показано, как задать stream BRIDGE для режимов RAW и DEFAULT.

    //
    // Add a stream BRIDGE for RAW and DEFAULT modes.
    //
    PCGUID  inModes[] = 
    {
        &AUDIO_SIGNALPROCESSINGMODE_DEFAULT, 
        &AUDIO_SIGNALPROCESSINGMODE_RAW,
    };

    WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
    attributes.ParentObject = pin;

    ACXSTREAMBRIDGE bridge = NULL;
    ACX_STREAM_BRIDGE_CONFIG bridgeCfg;
 
    ACX_STREAM_BRIDGE_CONFIG_INIT(&bridgeCfg);
    streamCfg.InModesCount = 2;
    streamCfg.InModes      = inModes; 
    streamCfg.OutMode      = &AUDIO_SIGNALPROCESSINGMODE_DEFAULT;

    status = AcxStreamBridgeCreate(circuit, &attributes, &bridgeCfg, &bridge);

Требования ACX

Минимальная версия ACX: 1.0

Дополнительные сведения о версиях ACX см. в статье Обзор версий ACX.

Требования

Требование Значение
Заголовок acxstreams.h

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