Mehrere Audiountergeräte

Ein Multifunktionsgerät kann zwei oder mehr Audiountergeräte enthalten. Beispielsweise kann ein Adaptertreiber zulassen, dass ein Audiogerät mit acht Kanälen als vier Stereokanäle für das System verfügbar gemacht wird. Wenn Sie einen Adaptertreiber schreiben, um mehrere Untergeräte auf diese Weise verfügbar zu machen, sollten Sie Informationen über die Untergeräte in die Startsequenz und in die INF-Datei Ihres Treibers integrieren.

Zunächst sollte Ihr Adaptertreiber jedes Stereo-Untergerät während der Startsequenz als separate instance eines Port/Miniport-Treiberpaars verfügbar machen. Mehrere der Beispieladapter im Microsoft Windows Driver Kit (WDK) implementieren eine InstallSubdevice Funktion, die ein Untergerät erstellt und registriert, das aus einem Systemporttreiber, einem Miniporttreiber und einer Gruppe von Ressourcen besteht, die an dieses Paar gebunden werden sollen. Während des Startvorgangs sollte der Treiber seine InstallSubdevice Funktion einmal für jedes Stereo-Untergerät aufrufen und einen eindeutigen Namen für jedes Port/Miniport-Treiberpaar 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 beispielsweise zwei Untergeräte während des Startvorgangs die Namen "Wave1" und "Wave2" zuweisen, wie unten gezeigt:

  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 die folgenden 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 der Registrierung Informationen zu diesen Schnittstellen hinzuzufügen:

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

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

In den AddReg-Abschnitten sollten auch die Registrierungseinträge für die einzelnen Untergeräte angegeben werden:

  [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 Untergeräte definieren:

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

Die Anzeigenamen werden in der Audio-Systemsteuerung angezeigt, um die Untergeräte zu identifizieren.