多功能裝置可以包含兩個或多個音訊子裝置。 例如,配接卡驅動程式可能允許八聲道音訊裝置以四個立體聲聲道的形式公開給系統。 撰寫配接器驅動程式以這種方式公開多個子裝置時,您應該將子裝置的相關資訊併入驅動程式的 啟動順序 和 INF 檔案中。
首先,在啟動序列期間,您的配接器驅動程式應將每個立體聲子裝置作為埠/小埠驅動程式組的個別實例公開。 Microsoft Windows 驅動程式套件 (WDK) 中的數個範例配接器會實作函 InstallSubdevice 式,以建立和註冊子裝置,其中包含系統埠驅動程式、迷你埠驅動程式,以及一組要系結至此配對的資源。 在啟動期間,您的驅動程式應該針對每個立體聲子裝置呼叫其 InstallSubdevice 函式一次,並為每個埠/迷你埠驅動程式組指定唯一的名稱。
此外,您指派給此配對的唯一名稱必須符合您在驅動程式 INF 檔案中指定的 KSNAME 字串。 例如,您的驅動程式可能會在啟動期間將名稱 「Wave1」 和 「Wave2」 指派給兩個子裝置,如下所示:
InstallSubdevice(..., "Wave1",...);
InstallSubdevice(..., "Wave2",...);
在此情況下,相同的名稱應該出現在 INF 檔案中:
KSNAME_Wave1="Wave1"
KSNAME_Wave2="Wave2"
您的 INF 檔案應該新增包含下列名稱的介面:
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave1%,Test.Interface.Wave1
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave2%,Test.Interface.Wave2
INF 檔案應該建立 AddReg 區段 (請參閱 INF AddReg 指示詞) ,才能將這些介面的相關資訊新增至登錄:
[Test.Interface.Wave1]
AddReg=Test.I.Wave1.AddReg
[Test.Interface.Wave2]
AddReg=Test.I.Wave2.AddReg
AddReg 區段也應該指定每個子裝置的登錄項:
[Test.I.Wave1.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%Test.Wave1.szName%
[Test.I.Wave2.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%Test.Wave2.szName%
最後,INF 檔案應該定義這些子裝置的易記名稱:
Test.Wave1.szName="Punch"
Test.Wave2.szName="Judy"
友好的名稱會顯示在音訊控制面板中,以辨識子裝置。