拓撲迷你埠驅動程式
拓撲迷你埠驅動程式會管理各種硬體控制 (,例如音訊配接器混音器線路中的音量和靜音) 。 此驅動程式會將控制項列舉為混合器拓撲中的 節點 ,讓用戶端探索節點之間的互相連線,以及查詢並設定每個節點上的控制參數。
SysAudio 系統驅動程式會在建置音訊篩選圖形時查看配接器的拓撲。 Microsoft Windows SDK檔) Windows 多媒體一節中所述的混合器 API () 代表拓撲節點做為混音線控制項,並將其公開給使用者模式應用程式,例如 SndVol32。 如需詳細資訊,請參閱 SysTray 和 SndVol32。
拓撲迷你埠驅動程式應該實作拓撲迷你埠介面,埠驅動程式會使用此介面來初始化迷你埠驅動程式。 Miniport 介面 IMiniportTopology會繼承 IMiniport 介面中的方法;它不會提供其他方法。 音訊配接器驅動程式會將迷你埠物件的 IMiniportTopology 介面系結至埠物件的IPortTopology介面,以形成拓撲篩選。
一般而言,拓撲篩選器包含大部分介面卡的拓撲節點,不過介面卡內的其他裝置可能包含其他拓撲節點。 例如,以波浪篩選表示的波浪裝置可能包含 DAC (KSNODETYPE_DAC) 和 ADC (KSNODETYPE_ADC) 節點 。
拓撲節點上控制參數的查詢和設定是透過屬性要求來完成。 每個節點類型都與特定屬性或一組屬性相關聯。 節點可能只支援一個控制項值。 例如,磁片區節點 (KSNODETYPE_VOLUME) 具有值,指出其目前的磁片區設定。 其他節點可能支援多個控制值。 例如,3D 節點 (KSNODETYPE_3D_EFFECTS) 支援數個 3D 緩衝區和 3D 接聽程式屬性。 另一方面 ,總和 節點 (KSNODETYPE_SUM) 沒有控制項值。
拓撲迷你埠驅動程式會使用連線 描述元 (PCCONNECTION_DESCRIPTOR) 來描述兩個拓撲節點之間的連線。 每個連線都會導向,並同時指定 from-node 和 to-node。 節點可能會有數個針腳,而一個針腳所執行的函式可能會與其他針腳不同。 若要區分一個針腳與另一個針腳,迷你埠驅動程式會將針腳編號在節點上。 這些針腳編號會出現在連線描述元中。 例如,狀態變數篩選準則可能會有三個輸出針腳,一個用於高、中間和低頻率 ,編號為 1、2 和 3。 針腳編號可讓迷你埠驅動程式的用戶端判斷哪些連接與哪個針腳相關聯。
連線描述項會使用辨別節點識別碼PCFILTER_NODE,將篩選上的釘選與篩選內節點上的針腳區別。 每個混音器線路對音訊轉譯和擷取音訊配接器中的裝置的硬式連接,都會以拓撲篩選器上的針腳表示。 其他拓撲篩選針腳代表外部實體連線,例如介面卡上的線路插孔。 拓撲篩選器上的針腳代表介面卡硬體的實體、硬式連接。 因此,針腳無法明確控制是否建立連接,也無法用來管理該連線的資料流程。
單一連接描述項可以描述拓撲中任兩個針腳類型之間的連線。 連接兩端的針腳可以是篩選準則上的釘選或篩選內節點上的針腳,或者連接可以在一端有篩選釘選,另一端則有節點釘選。 迷你埠驅動程式會將其拓撲指定為連線描述元陣列。 單一針腳可以有多個連接,這表示相同的針腳可以出現在陣列中的一個以上的連接描述項中。
用戶端從迷你埠驅動程式取得的拓撲描述並非設計成支援開放式探索,說明如何解譯用戶端未知的節點類型。 節點針腳編號單獨不會提供用戶端探索針腳函式所需的資訊。 雖然迷你埠驅動程式會透過 GUID) 來識別節點 (類型,但不會提供任何標準化的參數清單來描述節點類型或節點類型支援的針腳。
例如,如果用戶端列舉使用節點類型 GUID 的節點KSNODETYPE_VOLUME 來識別本身,則用戶端只有在知道處理磁片區節點的慣例時,用戶端才能使用節點。 例如,依慣例,磁片區節點支援 KSPROPERTY_AUDIO_VOLUMELEVEL 屬性,並將節點針腳號碼 0 和 1 分別指派給輸出 (來源) 釘選和輸入 (接收) 針腳。 此外,能夠控制磁片區節點的用戶端通常會執行導向搜尋,將探索限制在相對少量的節點類型 (磁片區和靜音節點,例如) 。 用戶端通常會只探索可能包含磁片區節點的篩選圖形部分 (,例如混音器線) 。
迷你埠介面支援將未經請求的控制值從迷你埠驅動程式傳遞至埠驅動程式。 這項功能可配合具有使用者實際操作之控制項 Knob、滑杆或參數的裝置。 每次使用者變更節點的控制值時,硬體中斷都會通知埠驅動程式發生 硬體事件 。