Du möchtest sicherstellen, dass dein Gerät immer auf dem neuesten Stand ist? Kein Problem! In diesem Artikel erfährst du, wie du die Firmware deines Geräts mithilfe des Windows Update (WU) Dienstes aktualisieren kannst. Dabei wird eine Update-Mechanismus bereitgestellt, der als Treiber implementiert ist und das Firmware-Paket enthält. Egal, ob du einen Gerätetreiber des Herstellers oder einen von Microsoft verwendest – ich erkläre dir, wie du vorgehen musst.
Der Firmware Update-Treiber
Zunächst einmal ist der Firmware Update-Treiber ein leichtgewichtiger Treiber, der bestimmte Prozeduren umsetzt:
-
Beim Starten des Geräts oder in der EVT_WDF_DRIVER_DEVICE_ADD-Rückruffunktion des Treibers:
- Das angeschlossene Gerät wird identifiziert.
- Es wird überprüft, ob der Treiber eine neuere Firmware-Version hat als die, die derzeit auf dem Gerät installiert ist.
- Wenn ein Firmware-Update erforderlich ist, wird ein Timer gestartet, um das Update zu planen.
- Andernfalls wird nichts unternommen, bis der Treiber erneut gestartet wird.
-
Während der Systemnutzung:
- Wenn ein Update in der Warteschlange steht, wird auf das Erreichen bestimmter Bedingungen gewartet.
- Sobald diese Bedingungen erfüllt sind, wird das Firmware-Update auf dem Gerät durchgeführt.
Der Inhalt des Firmware Update-Treibers
Ein typisches Firmware Update-Treiber-Paket enthält folgende Elemente:
- Universeller Treiber-INF
- Treiberkatalog
- Funktionstreiber (.sys oder .dll)
- Binärdatei des Firmware-Update-Pakets
Wenn du dein Firmware Update-Paket bereit hast, reiche es als separaten Treiber ein. Du kannst entweder die Firmware-Update-Funktionalität in den bestehenden Gerätetreiber integrieren oder einen separaten Treiber für das Firmware-Update erstellen.
Einbau der Firmware-Update-Logik in den Gerätetreiber des Herstellers
Du kannst die Firmware-Update-Mechanismus in den bestehenden Gerätetreiber integrieren. Alternativ dazu kannst du auch einen separaten Geräteknoten erstellen und darauf den Firmware-Treiber installieren. Dadurch erhältst du zwei separate Geräteknoten für ein Gerät. Dies ist jedoch nur möglich, wenn die beiden Knoten unterschiedliche Hardware-IDs haben.
Einbau der Firmware-Update-Logik in den von Microsoft bereitgestellten Treiber
Wenn du einen von Microsoft bereitgestellten Treiber verwendest, musst du ebenfalls einen separaten Geräteknoten erstellen. Dieser Schritt ist notwendig, um die Firmware aktualisieren zu können.
Best Practices
Folgende bewährte Praktiken können dir beim Umgang mit Firmware-Updates helfen:
- In deinem Firmware Update-Treiber-INF gib DIRID 13 an, um PnP dazu zu bringen, die Dateien im Treiberpaket im DriverStore zu belassen.
- Firmware Update-Treiber sollten die Klasse “Firmware” und die ClassGuid “{f2e7dd72-6468-4e36-b6f1-6488f42c1b52}” angeben.
- Um einen anderen Geräteknoten zu finden, sollte der Firmware-Treiber den Gerätebaum relativ zu sich selbst durchsuchen, anstatt alle Geräteknoten auf Übereinstimmung zu überprüfen.
- Der Treiber sollte mehrere Instanzen des Geräts auf dem System berücksichtigen und robust gegenüber unterschiedlichen Firmware-Versionen sein.
- Wenn bereits eine Methode zur Aktualisierung der Firmware vorhanden ist (z.B. eine EXE-Datei oder Co-Installer), kannst du den Update-Code innerhalb eines UMDF-Treibers wiederverwenden.
Jetzt bist du bestens gerüstet, um das Firmware-Update für dein Gerät durchzuführen. Viel Erfolg!