Freigeben über


Mehrere Audio-Subgeräte

Ein Multifunktionsgerät kann zwei oder mehr Audiounterfunktionen enthalten. Ein Adaptertreiber kann z. B. zulassen, dass ein Audiogerät mit acht Kanälen dem System als vier Stereokanäle verfügbar gemacht wird. Beim Schreiben eines Adaptertreibers, um mehrere Unterdateien auf diese Weise verfügbar zu machen, sollten Sie Informationen zu den Unterteilen in die Startsequenz und in die INF-Datei des Treibers integrieren.

Zunächst sollte der Adaptertreiber jedes Stereo-Untergerät als separate Instanz eines Port/Miniport-Treiberpaars während der Startsequenz exponieren. Mehrere der Beispieladapter im Microsoft Windows Driver Kit (WDK) implementieren eine InstallSubdevice Funktion, die ein Unterverzeichnis erstellt und registriert, das aus einem Systemporttreiber, einem Miniporttreiber und einer Reihe von Ressourcen besteht, die an dieses Paar gebunden werden sollen. Während des Starts sollte Ihr Treiber seine InstallSubdevice-Funktion einmal für jedes Stereo-Subgerät aufrufen und einen eindeutigen Namen für jedes Port-/Miniport-Treiber-Paar angeben.

Darüber hinaus muss der eindeutige Name, den Sie diesem Paar zuweisen, mit der KSNAME-Zeichenfolge übereinstimmen, die Sie in der INF-Datei Ihres Treibers angeben. Ihr Treiber kann z. B. die Namen "Wave1" und "Wave2" während des Starts zwei Unterdevices zuweisen, wie unten dargestellt:

  InstallSubdevice(..., "Wave1",...);
  InstallSubdevice(..., "Wave2",...);

In diesem Fall sollten die gleichen Namen in der INF-Datei angezeigt werden:

  KSNAME_Wave1="Wave1"
  KSNAME_Wave2="Wave2"

Ihre INF-Datei sollte Schnittstellen hinzufügen, die folgende Namen enthalten:

  AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave1%,Test.Interface.Wave1
  AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave2%,Test.Interface.Wave2

Die INF-Datei sollte AddReg-Abschnitte erstellen (siehe INF-AddReg-Direktive), um Informationen zu diesen Schnittstellen zur Registrierung hinzuzufügen:

  [Test.Interface.Wave1]
  AddReg=Test.I.Wave1.AddReg

  [Test.Interface.Wave2]
  AddReg=Test.I.Wave2.AddReg

Die AddReg-Abschnitte sollten auch die Registrierungseinträge für jeden Unterabschnitt angeben:

  [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%

Schließlich sollte die INF-Datei die Anzeigenamen für diese Subgeräte definieren.

  Test.Wave1.szName="Punch"
  Test.Wave2.szName="Judy"

Die freundlichen Namen werden im Audiosteuerungsfeld angezeigt, um die Untergeräte zu identifizieren.