Freigeben über


Entfernen von Co-Installern aus Treiberpaketen

Achtung

Ab Januar 2023 werden Treiberpakete, die ein Co-Installer enthalten, nicht mehr vom Hardware Developer Center-Portal signiert. Ausführliche Informationen zur Anforderung finden Sie unter Windows Hardware Compatibility Program Specifications and Policies, insbesondere version 22H2 policies, section Device.DevFund.INF.Declarative.

Diese Seite befasst sich mit allgemeinen Gründen für co-installers, die in einem Treiberpaket vorhanden sind, und bietet Mechanismen zum Ausführen derselben Aufgabe ohne einen Co-Installer.

WDF- und WinUSB-Co-Installer

Das WDF-Co-Installer und das WinUSB-Co-Installationsprogramm sind auf keinem System unter Windows 10 und höher erforderlich. Die WDF-Co-Installer-Verweise können ohne zusätzliche Arbeit entfernt werden. Die WinUSB-Co-Installer-Verweise können entfernt werden, und WinUSB sollte mithilfe der Include- und Needs-Direktiven aus dem Treiberpaket INF referenziert werden.

WinUSB-Treiberpaketanleitung

Installieren von Software, die die Benutzeroberfläche darstellt

Statt eine Anwendung während einer Installation zu starten, stellen Sie eine Universelle Windows-Plattform Anwendung bereit, die mithilfe einer AddSoftware-Direktive aus einem DDInstall.Software-Abschnitt des Treiberpakets INF installiert wird.

Weitere Informationen finden Sie unter Koppeln eines Treibers mit einer Universelle Windows-Plattform-App (UWP). Eine AddSoftware-Direktive wird unter Windows 10, Version 1703 und höher, unterstützt.

Weitere Details finden Sie weiter unten unter "Installing Associated Software ".

Festlegen von Gerätefreundlichen Namen

INF-Datei

Ein Treiberpaket-INF kann den Anzeigenamen des Geräts wie folgt festlegen:

[DDInstall.HW]
AddReg = FriendlyName_AddReg

[FriendlyName_AddReg]
HKR,,FriendlyName,, "Device Friendly Name"

Laufzeit

Der Anzeigename kann vom Treiber während der Start-IRP oder der PrepareHardware-Phase festgelegt werden, indem die DEVPKEY_Device_FriendlyName-Eigenschaft mit einer der folgenden APIs festgelegt wird:

Andere Geräteeinstellungen/Konfigurationen:

Wenn möglich, kann der Treiber die Geräteeinstellungen und die Konfiguration innerhalb der Start-IRP- oder Der PrepareHardware-Phase des Treibers ändern. Beim Ändern des Zustands zur Laufzeit sollte der Treiber die Isolationsanforderungen des Treiberpakets erfüllen. Diese Anforderungen enthalten die Anleitungen zum Treiberkonfigurations- und Zustandslayout und helfen dem zukünftigen Nachweis des Treibers, indem er externe Änderungen stabiler macht, leichter zu aktualisieren und einfacher zu installieren.

Bei Einstellungen und Konfigurationen, die nicht innerhalb des Treibers selbst festgelegt werden können, kann ein Treiberpaket auch Laufzeitkomponenten für den Benutzermodus enthalten, die die Einstellungen und Konfiguration ändern. Dies kann eine benutzerorientierte App oder ein Win32-Dienst sein, der die Konfiguration aktualisiert. Informationen zum Einschließen von Benutzermodussoftware für die Verwendung mit einem Gerät finden Sie unter Verwenden einer INF-Komponente.

Wenn eine persistente Komponente wie z. B. ein Dienst verwendet wird, stellen Sie sicher, dass ihre Funktionalität erforderlich ist und nicht auf weniger ressourcenintensive Weise ausgeführt werden kann, z. B. innerhalb eines Treiberpakets INF oder innerhalb des Treibers selbst. Informationen zum Sicherstellen, dass ein Dienst nur ausgeführt wird, wenn relevante Geräte verbunden sind, finden Sie unter Diensttrigger, Win32-Dienste, die mit Geräten interagieren, und registrieren für Geräteschnittstellenbenachrichtigungen. Der Dienst muss auch die neuesten Anforderungen erfüllen, z. B. das Übergeben von API Validator.

Installieren der zugehörigen Software

Der Teil "Componentized" der DCH-Treiberanforderungen führte ein Konzept namens "SoftwareComponent" ein, das ein Mechanismus ist, um die Installation eines Gerätetreibers von der zugehörigen Software zu entkoppeln. Wenn eine Softwarekomponente von der INF erstellt wird, wird automatisch ein untergeordnetes Gerät erstellt, das der Softwarekomponente zugeordnet ist. Dieses untergeordnete Gerät ist zum Zweck der Installation der Software vorhanden, die dem übergeordneten Gerät zugeordnet ist. Diese Software kann unabhängig vom Standard Gerät und Treiber installiert und aktualisiert werden.

Innerhalb eines SoftwareComponent-Treiberpakets INF verwendet der empfohlene Mechanismus zum Installieren von Software eine AddSoftware-Direktive. Dadurch wird der Download und die Installation von Software aus dem Windows Store ausgelöst.

Abhängigkeiten über Treiber und Geräte hinweg

Abhängigkeiten von Gerätestart-/Aufzählungsabhängigkeiten

Soweit möglich, sollten Geräteübergreifende Abhängigkeiten oder Startbestellungsanforderungen vermieden werden.

Für ACPI-aufgezählte Geräte kann das Abhängigkeitsobjekt (_DEP) in der ACPI-Firmware verwendet werden, um die Gerätestartbestellung zu erzwingen. Weitere Informationen finden Sie unter Geräteverwaltung Namespace.

Treiber können auf die IRP_MN_QUERY_DEVICE_RELATIONS IRP reagieren, um Beziehungen zwischen Geräten zu definieren, z. B. Entfernungsbeziehungen. Weitere Informationen finden Sie unter IRP_MN_QUERY_DEVICE_RELATIONS.

Installationsabhängigkeiten des Treiberpakets

Die CopyInf-Direktive kann auch verwendet werden, um während des gleichen Installations-API-Aufrufs wie ein anderer Treiber ein zusätzliches Treiberpaket zu installieren. Das an die Installations-API übergebene Treiberpaket wird installiert, bevor copyInf-referenzierte Treiberpakete installiert werden. Treiberpakete, auf die von CopyInf verwiesen wird, sind jedoch nicht garantiert, dass sie in einer bestimmten Reihenfolge installiert werden.

Konfigurieren von Komponenten von mehreren Anbietern, die im Paket mit einem einzigen Treiber gebündelt sind

Treiberpakete unterstützen einen Typ des Treiberpakets INF, der als ErweiterungS-INF bezeichnet wird. Dies ist eine INF-Datei, die speziell für die Erweiterung und Erweiterung der Funktionalität eines "basis"-Treiberpakets inF konzipiert ist. Eine Erweiterung stellt möglicherweise nicht den Funktionstreiber für das Gerät bereit, sondern kann andernfalls andere Direktiven verwenden oder andere Einstellungen für ein Gerät schreiben. Während einer Treiberinstallation wird ein einzelnes Basistreiberpaket INF mithilfe der Treiberbewertung ausgewählt, um die Funktionalität für das Gerät bereitzustellen, und dann werden alle Erweiterungs-INFs für das Gerät ausgewählt. Weitere Informationen finden Sie unter Verwenden einer INF-Erweiterungsdatei.

Ein gängiges Paradigma für die Verwendung von Erweiterungstreiberpaket-INFs ist für den Hardwarehersteller die Bereitstellung des Basistreiberpakets INF und für einen OEM-Versand, der in einem System enthalten ist, um ein Erweiterungstreiberpaket zu erstellen, das es für dieses System angepasst.

Installieren/Orchestrieren von Firmwareupdates

Je nach Art des aktualisierten Geräts werden verschiedene Firmwareupdatemechanismen empfohlen. Jede der folgenden Optionen kann verwendet werden, um ein Firmwareupdate über Windows Update zu versenden und zu installieren.

Nicht wechselbar

Die UEFI-Firmwareupdateplattform wurde entwickelt, um Komponenten eines Systems zu aktualisieren, die nicht entfernt werden können, z. B. die Systemfirmware. Weitere Informationen finden Sie unter UEFI Firmware Update Platform.

Wechselmedium

Für Wechselmedien wie HID- oder USB-Geräte ermöglicht das CFU-Modell sichere Firmwareupdates. Weitere Informationen finden Sie unter Komponentenfirmwareupdate.

Benutzerdefinierte Implementierung

Alternativ kann ein benutzerdefinierter Treiber geschrieben werden, der die Firmware des Geräts nach Ermessen des Treibers aktualisiert. Weitere Informationen finden Sie unter Custom Firmware Updating Driver.