複数のオーディオ サブデバイス
多機能デバイスには、2 つ以上のオーディオ サブデバイスを含めることができます。 たとえば、アダプター ドライバーを使用すると、8 チャンネルのオーディオ デバイスを 4 つのステレオ チャネルとしてシステムに公開できます。 この方法で複数のサブデバイスを公開するアダプター ドライバーを作成する場合は、サブデバイスに関する情報をドライバーの 起動シーケンス および INF ファイルに組み込む必要があります。
まず、アダプター ドライバーは、スタートアップ シーケンス中にポート/ミニポート ドライバー ペアの個別のインスタンスとして各ステレオ サブデバイスを公開する必要があります。 Microsoft Windows Driver Kit (WDK) のサンプル アダプターのいくつかは、システム ポート ドライバー、ミニポート ドライバー、およびこのペアにバインドされるリソースのセットで構成されるサブデバイスを作成して登録する InstallSubdevice
関数を実装しています。 。 起動時に、ドライバーは、ステレオ サブデバイスごとに 1 回関数を InstallSubdevice
呼び出し、各ポート/ミニポート ドライバー ペアの一意の名前を指定する必要があります。
さらに、このペアに割り当てる一意の名前は、ドライバーの INF ファイルで指定した KSNAME 文字列と一致する必要があります。 たとえば、ドライバーは、次に示すように、スタートアップ時に 2 つのサブデバイスに名前 "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"
表示名は、サブデバイスを識別するオーディオ コントロール パネルに表示されます。