多個音訊子裝置
多功能裝置可以包含兩個或多個音訊子裝置。 例如,介面卡驅動程式可能會允許將八通道音訊裝置公開至系統作為四個身歷聲通道。 撰寫介面卡驅動程式以這種方式公開多個子裝置時,您應該將子裝置的相關資訊併入驅動程式 的啟動順序 和 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"
易記名稱會顯示在音訊控制台中,以識別子控制項。