ACX 物件的摘要

重要

有些資訊與發行前版本產品有關,在正式發行前可能會大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。

本主題提供構成 ACX 音訊驅動程式基底之 ACX) 物件的音訊類別延伸模組 (高階摘要。 如需 ACX 的一般概觀,請參閱 ACX 音訊類別延伸模組概觀

ACX 物件是 Windows Driver Framework (WDF) 物件 - WDFOBJECT。 如需 WDF 的詳細資訊,請參閱 Framework 物件簡介。 如需 WDF 物件的摘要,請參閱 Framework 物件的摘要

ACX 物件階層

在 ACX (如同 WDF) ,驅動程式物件是根物件,而所有其他物件都是其子系/子系。 所有 ACX 物件都是驅動程式物件的子系,直接或間接透過其他 ACX 或 WDF 物件。 ACX 驅動程式可以在建立期間指定 ACX 物件的父代。 如果未指定父代,ACX 會使用預設父代,如下列各節所述。

圖表說明 ACX 物件的階層,其中 WDFDEVICE 位於頂端和主要 ACX 物件,例如線路和資料流程

ACX 線路

AcxCircuit 代表使用者察覺到音訊裝置的部分或完整音訊路徑, (喇叭、麥克風等) 。 AcxCircuit 至少有一個輸入針腳和一個輸出針腳 (ACXPIN) ,而且可能會匯總一或多個類似 AcxElements 的物件。 根據預設,AcxElements 會以相同的元件順序「連接」。

音訊線路是 ACX 的核心建置組塊。 在新的 ACX 架構中,音訊驅動程式會建立一或多個 ACX 線路物件來代表部分或完整的音訊資料/控制路徑。 ACX 會將這些 ACX 線路物件組合在一起,以建立代表音訊端點的完整音訊路徑。 ACX 負責管理 ACX 線路及其相依性。 這些線路的組合順序可以在初始化時間以靜態方式定義,或在執行時間以動態方式定義。

ACX 架構中的音訊端點是一或多個 ACX 線路的集合。 多線路音訊路徑中的每個 ACX 線路都必須屬於不同的 PnP 裝置堆疊。 ACX 驅動程式可能會在初始化時建立一或多個線路,或在執行時間建立線路,例如在偵測新的音訊元件之後,或因為其已向 ACX 註冊為特定線路類型的處理站,而 ACX 架構要求處理站元件建立該類型的新線路, (請參閱稍後所述的 ACX 線路管理員/處理站主題) 。

  • AcxCircuit 可能有一或多個資料流程。

  • AcxCircuit 有專用的 WDF 佇列。 如需 WDF 佇列的詳細資訊,請參閱 Framework Queue Objects

ACX 線路的 DIS 會在 acxcircuit.h 標頭中描述。

ACX 針腳

如同 WDM Portcls 音訊驅動程式和 AcxPin 物件,代表邏輯連線 (非實體連線) 資料流程從系統通訊匯流排進入配接器,或從介面卡進入系統通訊匯流排。

針腳的 DIS 會在 acxpin.h 標頭中描述。

ACX 資料流程

AcxStream 代表特定線路硬體上的音訊串流。 AcxStream 可能會匯總一或多個類似 AcxElements 的物件。 根據預設,AcxElements 會以相同的元件順序「連接」。 AcxStream 只與一個 ACX 線路相關聯。

  • AcxStream 有專用的 WDF 佇列。 如需 WDF 佇列的詳細資訊,請參閱 Framework 佇列物件
  • AcxStream 支援不同的狀態。 這些狀態會指出音訊在 (執行狀態) 或未流動 (PAUSE 或 STOP 狀態) 。
  • 目前 ACX 支援兩種類型的資料流程:非串流線路所使用的基本 ACX 資料流程物件,以及串流線路所使用的 ACX RT 資料流程物件。

資料流程的 DIS 定義于 acxstreams.h 標頭中。

ACX 目標

WdfIoTarget 是一種 WDF 抽象概念,可促進兩個不同的堆疊之間的通訊。 如需 WDF IO 目標的詳細資訊,請參閱 I/O 目標簡介

  • 驅動程式會使用 AcxTargetCircuit 來與不同堆疊公開的遠端線路通訊。 AcxTargetCircuit 是使用 WdfIoTarget 來實作。
  • 驅動程式會使用 AcxTargetPin 與不同堆疊所公開的遠端線路針腳通訊。 AcxTargetPin 是使用 WdfIoTarget 實作,以將訊息傳送至遠端釘選實體。
  • 驅動程式會使用 AcxTargetElement 來與不同堆疊所公開的遠端線路元素通訊。 AcxTargetElement 是使用 WdfIoTarget 實作,以將訊息傳送至遠端元素實體。
  • 驅動程式會使用 AcxTargetStream 來與不同堆疊所公開的遠端線路串流通訊。 AcxTargetStream 是使用 WdfIoTarget 來實作,以建立遠端資料流並變更遠端資料流的狀態。
  • 驅動程式會使用 AcxTargetFactoryCircuit 與遠端線路處理站實例通訊。 AcxTargetFactoryCircuit 是使用 WdfTarget 實作,以將訊息傳送至遠端線路處理站。

上述每個 ACX 類型都支援屬性、方法和事件,以與遠端線路互動。 所有這些類型都是建立在 WdfIoTarget 物件之上。

目標的 DIS 定義于 acxtargets.h 標頭中。

ACX 串流網橋

AcxStreamBridge 物件是由線路用來傳播串流建立、資料流程的狀態轉換,以及線路區段之間的 DRM 設定。 這個物件只會用於多線路 (音訊複合) 案例中。 驅動程式可能會將一或多個 ACXSTREAMBRIDGE 物件與橋接器接點產生關聯。 橋接器接腳是 ACXPIN,可邏輯連接到另一個線路上的 CORrespoinding ACXPIN。

Stream 的 DIS 會在 acxstreams.h 標頭中描述。

ACX 音訊引擎節點線路配置範例

下圖說明 ACX 線路。 主機和卸載針腳是線路的輸入,具有可用於回應取消的回送針腳。 輸出可能是路由傳送至喇叭的橋接器接腳。

說明 和 acx 線路與 和 主機的圖表,卸載左側的回送針腳,以及透過音訊引擎節點路由傳送至右側的橋接器接點

請注意,當線路/元素與新增至線路的順序相同時,驅動程式不需要執行明確連接的步驟。

根據預設,ACX 會連接從線路 ACX 要求接收針腳開始的專案,並結束于轉譯和擷取裝置的線路裝置橋接器接腳。

ACX 管理員

ACX 管理員用於系統工作,例如支援複合音訊端點。 這些類型的端點是由相同或不同廠商的一或多個驅動程式堆疊所管理。 用戶端可以在 ACPI 中預先設定此設定,或使用 ACX Manager 的 DDI。 ACX 管理員的 DIS 會在 acxmanager.h 標頭中描述。

ACX 物件包

ACX 物件包是用來儲存各種資料類型。 ACXOBJECTBAG 可以在各種 DIS 中當做引數傳遞。 物件包的 DIS 會在 acxmisc.h 標頭中描述。

ACX 物件摘要

下表列出所有 ACX 物件,並提供每個物件的相關一些基本資訊。

Handle 名稱 目的
ACXMANAGER ACX 管理員 用來管理和控制其他物件的 ACX Manager 物件。
ACXOBJECTBAG 物件包 用於儲存資料以與 物件搭配使用。
ACXEVENT ACX 事件 針對 KS (核心串流) 事件。
ACXEVENTDATA 事件資料 與事件相關聯的資料。
ACXPNPEVENT Pnp 事件 適用于隨插即用事件。
ACXCIRCUIT 線路 本主題中所述的 ACX 線路。
ACXPIN Pin ACX 針腳物件代表邏輯連線,如本主題所述。
ACXELEMENT 元素 用來表示任何可新增至 AcxCircuit 或 AcxStream 的專案,例如 AcxVolume
ACXAUDIOENGINE 音訊引擎 轉譯線路中用來代表 DSP 的 ACX 音訊引擎。
ACXSTREAMAUDIOENGINE 串流音訊引擎 用於轉譯資料流程來表示 DSP。
ACXKEYWORDSPOTTER 關鍵字 Spotter 關鍵字識別器,用於擷取線路中的音訊資料流程中的關鍵字偵測。
ACXVOLUME 磁碟區 用來表示磁片區、增益、提升。
ACXMUTE Mute 用來表示靜音專案。
ACXJACK 傑克 用來表示音訊插孔或其他實體連接器。
ACXMICARRAYGEOMETRY 麥克風陣列幾何 用來表示麥克風陣列幾何,例如麥克風的位置。
ACXPEAKMETER 尖峰計量 當硬體支援尖峰計量功能時使用。
ACXSTREAM STREAM 用來代表線路所建立的音訊串流,如本主題所述。
ACXDATAFORMAT 資料格式 資料格式代表音訊裝置所支援的資料格式。
ACXDATAFORMATLIST 資料格式清單 可供使用的音訊資料格式清單。
ACXTARGETCIRCUIT 目標線路 用來與不同堆疊公開的遠端線路通訊。
ACXTARGETPIN 目標釘選 用來與不同堆疊公開的遠端線路針腳通訊。
ACXTARGETELEMENT Target 項目 用來表示可新增至 AcxCircuit 或 AcxStream 的目標專案,例如 AcxVolume
ACXTARGETSTREAM 目標資料流程 用來與不同堆疊公開的遠端線路資料流程通訊。
ACXTARGETFACTORYCIRCUIT 目標線路處理站 用來與遠端線路的處理站通訊。
ACXSTREAMBRIDGE 串流網橋 由線路用來傳播串流建立、狀態轉換和線路區段之間的 DRM。
ACXCOMPOSITE 複合 用來代表多線路/多堆疊/多廠商串流架構。
ACXCOMPOSITEFACTORY 複合處理站 建立複合音訊線路的處理站。
ACXFACTORYCIRCUIT 處理站線路 使用特定範本建立線路的處理站。
ACXCIRCUITMANAGER 線路管理員 用於建立動態線路的線路提供者。
ACXCOMPOSITETEMPLATE 複合範本 複合範本代表部分或完整的音訊系結。 複合範本可以有一或多個線路範本。
ACXCIRCUITTEMPLATE 線路範本 線路範本代表部分音訊路徑。
ACXAUDIOMODULE 音訊模組 針對自訂協力廠商附加元件功能。

下列 ACX 物件可用來儲存線路、串流和線路處理站資訊。

Handle 目的
ACXCIRCUIT_INIT 儲存 ACX 線路初始化資料
ACXSTREAM_INIT 儲存 ACX 資料流程初始化資料
ACXFACTORYCIRCUIT_INIT 儲存 ACX 線路處理站所使用的初始化資料

另請參閱

ACX 音訊類別延伸模組概觀

ACX 多堆疊跨驅動程式通訊