Betriebssystemupgrades

Die Treibereinstellungen eines Audiogeräts können häufig über Betriebssystemupgrades hinweg beibehalten werden. Nach dem Upgrade besteht das Ziel darin, die Benutzereinstellungen vorwärts zu verschieben und gleichzeitig sicherzustellen, dass die Audioendpunkte die Betriebssystem- und Treiberfunktionen genau widerspiegeln.

Migrationsprozess für Audioendpunkte

Während der Betriebssystemupgrades kann ein Migrationsprozess für audioendpunkts ausgeführt werden. Dieser Prozess versucht, so viele Informationen vorwärts zu verschieben, dass dies sicher ist. Berücksichtigen Sie bei der Entwicklung Ihres Audiotreibers diese Migrationsverhalten.

Dieser Endpunktmigrationsprozess kann in den folgenden Situationen ausgeführt werden.

  • Betriebssystemupdate.
  • Updates des Audiotreibers. Dies schließt die Installation eines Audioerweiterungstreibers oder eines AudioProcessingObject ein. Weitere Informationen finden Sie unter Erstellen einer komponentenisierten Audiotreiberinstallation.
  • Der vorhandene Audiotreiber wird neu installiert. Diese Neuinstallation kann erfolgen, wenn die Audioproblembehandlung ausgeführt wird. Dies kann auch über den Geräte-Manager erfolgen, indem Sie einen "Updatetreiber" ausführen und den bereits installierten Treiber auswählen.
  • AudioEndpointBuilder wird gewartet. Dies tritt immer dann auf, wenn eine Fehlerbehebung im AudioEndpointBuilder-Dienst vorliegt, der in den veröffentlichten Versionen von Windows aktualisiert wird.
  • Die Firmwarerevision auf einem USB-Audiotreiber wird geändert.
  • Der Audiotreiber ändert die Endpunktkonfiguration über KSPROPERTY_JACK_DESCRIPTION3.

Der Migrationsprozess des Audioendpunkts

Der Migrationsprozess des Audioendpunkts führt die folgenden Schritte aus.

  • Kopiert benutzergesteuerte Endpunkteigenschaften der Weiterleitung.
  • Kopiert CAPX-Eigenschaften vorwärts.

Der Migrationsprozess für Audioendpunkte führt keine der folgenden Aktionen aus.

  • Kopiert fxProperties nicht vor capx-Verfügbarkeit mit Windows 11.
  • Es werden keine Vorwärtseigenschaften kopiert, die nicht in der Liste der Benutzereinstellungen enthalten sind, die dem Betriebssystem bekannt sind.

Ab Windows 11 wird ein neues CapX-Einstellungsframework verwendet, um Einstellungen zu speichern. Mit dem Einstellungsframework können APOs Methoden zum Abfragen und Ändern des Eigenschaftenspeichers für Audioeffekte ("FX Property Store") auf einem Audioendpunkt verfügbar machen. Weitere Informationen finden Sie unter Windows 11-APIs für Audioverarbeitungsobjekte.

Abgleichen der Präupgradeendpunkte nach dem Upgrade von Endpunkten

Der Migrationsprozess stimmt mit den Endpunkten vor dem Upgrade überein, um Endpunkte nach dem Upgrade zu verwenden, indem diese beiden Elemente verwendet werden.

  • Hardware-ID : Weitere Informationen zur Hardware-ID finden Sie unter Systemweite eindeutige Geräte-IDs.
  • Verweiszeichenfolge : Die Verwendung der Verweiszeichenfolge wird unten erläutert.

Beachten Sie, dass das Zwischenspeichern von mmdevice-IDs während des Endpunktmigrationsprozesses nicht funktioniert, da neue Endpunkte erstellt werden.

Registriertes Untergerät

Die PcRegisterSubdevice-Funktion des Portklassentreibers registriert das Untergerät, das vom Rest des Systems als Gerät wahrgenommen wird. Die Funktion registriert die Geräteschnittstelle instance für ein Filterobjekt, das ein Untergerät auf einem Audioadapter darstellt. Der E/A-Manager fügt die vom Name-Parameter angegebene Zeichenfolge an die Verweiszeichenfolge an, die er zum Identifizieren der instance verwendet. Die geänderte Verweiszeichenfolge ist nützlich, um zwischen den Untergeräte im Audioadapter zu unterscheiden. Weitere Informationen zu Verweiszeichenfolgen finden Sie unter IoRegisterDeviceInterface.

Verwendung von Referenzzeichenfolgen

Audioendpunkte werden durch die Verweiszeichenfolge identifiziert, die beim Erstellen der KS-Schnittstelle an PnP übergeben wurde, zusammen mit der Pin-ID für den externen Connector. Wenn Sie diese Werte ändern, wird ein neuer Audioendpunkt erstellt. Dieser neue Audioendpunkt enthält nicht die Benutzereinstellungen, die der vorherigen Verweiszeichenfolge und der Pin-ID des Connectors zugeordnet sind.

In Fällen, in denen die Hardware-ID zwischen zwei oder mehr installierten Audiogeräten identisch ist und die Verweiszeichenfolgen ebenfalls identisch sind, kann das Migrationssystem die Einstellungen nicht ordnungsgemäß migrieren, da die Endpunkte vor der Migration zu den Endpunkten nach der Migration nicht übereinstimmen können.

Das Installieren mehrerer Kopien derselben aufgezählten Softwareaudiogeräte auf allen Windows-Versionen, die alle dieselbe Hardware-ID und Verweiszeichenfolgen verwenden, wird nicht ordnungsgemäß migriert.

Vor Windows 11

Audioendpunkte mit denselben Referenzzeichenfolgenwerten werden bei Stamm-Softwareaudiogeräten auf Systemen vor Windows 11 nicht ordnungsgemäß migriert.

Beim Erstellen eines aufgezählten Softwareaudiogeräts, das windows-Versionen vor Windows 11 als Ziel hat, muss für jeden Audioendpunkt ein eindeutiger Verweiszeichenfolgenwert verwendet werden, um eine erfolgreiche Migration sicherzustellen.

Windows 11 und höher

Stamm-Softwareaudiogeräte auf Systemen auf und nach Windows 11 Audioendpunkte mit denselben Referenzzeichenfolgenwerten werden ohne Hardware-ID nicht ordnungsgemäß migriert.

Beim Erstellen eines aufgezählten Softwareaudiogeräts, das windows-Versionen nach Windows 11 als Ziel dient, muss eine eindeutige Hardware-ID im Treiber inf angegeben werden, und jedes aufgezählte Softwareaudiogerät kann nur ein einziges Mal mit dieser Hardware-ID installiert werden. Um mehrere Kopien desselben Treibers zu installieren, müssen bei jeder Installation unterschiedliche Verweiszeichenfolgen verwendet werden, um eine erfolgreiche Migration sicherzustellen.

Verweiszeichenfolgenregeln

Es wird dringend empfohlen, die standardmäßigen Verweiszeichenfolgen "wave" und "topo", die in den Audiobeispieltreibern verwendet werden, nicht zu verwenden. Stattdessen sollten aussagekräftigere Verweiszeichenfolgen verwendet werden. Treiber, die die Standardreferenzzeichenfolgen verwenden, haben das Risiko, dass ihre Migrationsdaten verloren gehen oder auf das falsche Gerät angewendet werden, falls eine Hardware-ID nicht verfügbar ist oder mit einem anderen Treiber übereinstimmt, der diese Verweiszeichenfolgen verwendet. Eine vernünftige Strategie wäre etwa "ContosoSoftwareRender-output2". Das Einschließen eines eindeutigen Anbieternamens hilft, die Verweiszeichenfolge mehrdeutig zu machen.

Verweiszeichenfolgen müssen für die Installation des Audiotreibers, Updates, Betriebssystemupdates, Neustarts usw. statisch bleiben. Wenn sich die Verweiszeichenfolge ändert, wird ein neuer Audioendpunkt erstellt, und Die Benutzereinstellungen werden nicht vom vorherigen Endpunkt auf den neuen Endpunkt kopiert.

Name der Hardware-ID-Geräteinstanz

Die Hardware-ID des Audiotreibers wird im Abschnitt Modelle der INF-Datei definiert. Die Hardware-ID identifiziert mindestens ein Gerät und verweist auf den Abschnitt DDInstall der INF-Datei für dieses Gerät. Außerdem wird ein eindeutiger Hardwarebezeichner (ID) für dieses Gerät im Abschnitt "Unique-to-the-model-section" angegeben. Weitere Informationen finden Sie unter INF-Modelle undINF DDInstall.For more information see in inf models section and INF DDInstall section.

Diese INF-Datei zeigt die Gerätebeschreibung aus dem Abschnitt DDInstall im Sysvad-Audiobeispiel an.

[SYSVAD.NT$ARCH$]
%SYSVAD_SA.DeviceDesc%=SYSVAD_SA, Root\sysvad_ComponentizedAudioSample

SYSVAD_SA.DeviceDesc="Virtual Audio Device (WDM) - Tablet Sample"

Diese INF-Datei zeigt, wie die Gerätebeschreibung von einem OEM angepasst wird.

[CONTOSO.NT$ARCH$]
%CONTOSO_SA.DeviceDesc%=CONTOSO_SA, Root\contoso_ContosoSoftwareRender

CONTOSO_SA.DeviceDesc="Description of the Contoso Software Render Driver"

Die Hardware-ID, mit der AudioEndpointBuilder übereinstimmt, wäre Root\contoso_ContosoSoftwareRender

Gespeicherte Einstellungen in der Registrierung

Ein Audioadaptertreiber kann seine aktuellen Geräteeinstellungen (hauptsächlich Lautstärken und Stummschaltungseinstellungen) in der Systemregistrierung nachverfolgen. Der Treiber speichert diese Einstellungen in der Regel im vom System bereitgestellten Treiberschlüssel (dargestellt durch den INF-Schlüsselwort (keyword) HKR) unter dem Unterschlüssel "Einstellungen". Wenn der Benutzer diese Einstellungen über eine Systemsteuerung oder eine andere Audioanwendung ändert, aktualisiert der Treiber die entsprechenden Registrierungseinträge. Jedes Mal, wenn das System gestartet wird, stellt der Treiber die Geräteeinstellungen aus der Registrierung wieder her.

Benutzer bevorzugen dieses Verhalten weitgehend, da es die Anpassungen, die sie im Laufe der Zeit am System vorgenommen haben, beibehalten, anstatt sie zu zwingen, ihre Einstellungen bei jedem Upgrade des Betriebssystems manuell wiederherzustellen.

Einige Treiber überschreiben diese Einstellungen jedoch bei jeder Installation blind mit Standardwerten. Ein besserer Ansatz besteht darin, dass ein Treiber bei der Installation bestimmt, ob bestimmte treiberspezifische Einträge bereits vorhanden sind. Wenn sie vorhanden sind, sollte der Treiber die Einstellungen beibehalten, die in diesen Einträgen enthalten sind, anstatt sie zu überschreiben.

Die Anweisungen im Add-Registry-Abschnitt der INF-Datei des Treibers geben an, ob vorhandene Registrierungseinträge überschrieben werden sollen. Weitere Informationen finden Sie in der Beschreibung des FLG_ADDREG_NOCLOBBER-Flags in der INF-AddReg-Direktive.

Weitere Informationen

KSPROPERTY_JACK_DESCRIPTION3

DEVPKEY_Device_DeviceDesc

ABSCHNITT "INF DDInstall"

DCH-Entwurfsprinzipien und bewährte Methoden

Windows 11-APIs für Audioverarbeitungsobjekte