次の方法で共有


複数のオーディオ サブデバイス

多機能デバイスには、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"

表示名は、サブデバイスを識別するオーディオ コントロール パネルに表示されます。