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列舉的位 OR。

Type

定義網橋類型的 ACX_STREAM_BRIDGE_TYPE 列舉。

InModesCount

InModes 中列出的AUDIO_SIGNALPROCESSINGMODEs數目。 這些是 ACXSTREAMBRIDGE 接受為輸入的訊號處理模式。 如需音訊模式的詳細資訊,請參閱 音訊號處理模式

只有當 InModes 字段設定為 NULL 時,此欄位才能為零。

InModes

ACXSTREAMBRIDGE 所支援之AUDIO_SIGNALPROCESSINGMODE指標清單的指標。 這個欄位可以是 NULL。 NULL GUID 是通配符值,且符合任何AUDIO_SIGNALPROCESSINGMODEs。

如果未定義輸入訊號處理模式,ACXSTREAMBRIDGE 不會自動比對任何模式。 在此情況下,驅動程式可以手動將輸入數據流新增至串流網橋。

OutMode

定義輸出數據流音訊號處理模式之AUDIO_SIGNALPROCESSINGMODE的指標。 如果此欄位為 NULL,如果相關聯的 ACXPIN 支援,則會使用AUDIO_SIGNALPROCESSINGMODE_DEFAULT,否則會使用AUDIO_SIGNALPROCESSINGMODE_RAW。 如果也不支持後者,則會建立輸出數據流,而不需要指定音訊號處理模式。

OutStreamVarArguments

以及用來提供輸出數據流之變數自變數的 ACXOBJECTBAG 物件。 這是選擇性的設定,可以是 NULL。 如需 ACX 對象的詳細資訊,請參閱 ACX - ACX 物件的摘要

TargetStreamAttributes

用來定義 ACXTARGETSTREAM 物件屬性 的WDF_OBJECT_ATTRIBUTES 結構。

備註

AcxStreamBridge 是由線路用來傳播串流建立、數據流的狀態轉換,以及端點線路串流區段之間的DRM設定。 這個物件只會用於多線路 (音頻複合) 案例中。

針腳可以與零、一或多個 ACXSTREAMBRIDGE 相關聯。 ACX 會搜尋相關聯的 ACXPIN 訊號處理模式清單,以取得串流訊號處理模式比對。 搜尋會在第一個相符專案停止。

如果驅動程式未建立 ACXCIRCUIT,ACXCIRCUIT 會為 ACXCIRCUIT 建立預設 ACXSTREAMBRIDGE,而且驅動程式未停用 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);

此範例示範如何設定 RAW 和 DEFAULT 模式的數據流 BRIDGE。

    //
    // 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

另請參閱