Freigeben über


Verwenden von WHEA unter Windows 10

In Windows 10, Version 2004, enthält die Windows Hardware Error Architecture (WHEA) eine neue Schnittstelle (v2). Auf dieser Seite wird beschrieben, wie Sie als Fehlerquelle registrieren und Fehler melden.

Hinzufügen einer Fehlerquelle

Um sich bei WHEA als Fehlerquelle mit WHEA v2 zu registrieren, sollte der Treiber folgende Schritte ausführen:

  1. Geben Sie eine Konfiguration für Den Gerätetreiber an, indem Sie eine WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER Struktur instanziieren und Zeiger auf WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER und WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER Ereignisrückruffunktionen bereitstellen.

  2. Rufen Sie WheaAddErrorSourceDeviceDriver auf, und stellen Sie die Konfigurationsstruktur bereit. In der Regel ruft der Treiber diese Routine von DriverEntry auf.

    Um eine Fehlerquelle zu einem späteren Zeitpunkt zu entfernen, rufen Sie WheaRemoveErrorSourceDeviceDriver auf.

  3. WHEA ruft die WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER Ereignisrückruffunktion des Treibers auf, wenn die Fehlerquelle zum Melden von Fehlern bereit ist. Der Treiber empfängt eine ErrorSourceId als Parameter für den Rückruf.

Melden eines Fehlers

Führen Sie zum Melden eines Fehlers die folgenden Schritte gleichzeitig aus:

  1. Rufen Sie WheaCreateHwErrorReportDeviceDriver auf, und stellen Sie die ErrorSourceId und optional ein DeviceObject für den Treiber bereit. Die Routine gibt ein Handle an den aktuellen Fehler zurück.

  2. Rufen Sie WheaAddHwErrorReportSectionDeviceDriver auf, um dem Fehler Daten hinzuzufügen. Diese Funktion fügt dem Fehlerbericht einen einzelnen Abschnitt hinzu und konfiguriert einen vom Treiber bereitgestellten Datenpuffer. Der Treiber kann diese Routine bis zu MaxSectionsPerReport-Zeiten aufrufen, wie in WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER angegeben.

    Optional kann der Treiber WheaHwErrorReportSetSeverityDeviceDriver aufrufen, um den Fehlerschweregrad des Pakets und der Abschnitte festzulegen. Siehe auch WheaHwErrorReportSetSectionNameDeviceDriver, eine Hilfsfunktion zum Aktualisieren des FRUText-Felds der WHEA_ERROR_RECORD_SECTION_DESCRIPTOR Struktur.

  3. Kopieren Sie Fehlerdaten in den Puffersatz.

  4. Rufen Sie WheaHwErrorReportSubmitDeviceDriver auf, und stellen Sie erneut das Fehlerhandle bereit. Nach diesem Aufruf sind Puffer in den Puffersätzen nicht verfügbar, und der Handle ist ungültig.

  5. Wenn ein Fehler auftritt oder der Fehler nicht mehr gültig ist, kann der Treiber optional WheaHwErrorReportAbandonDeviceDriver aufrufen. In diesem Fall wird kein Bericht an WHEA übermittelt.

Der Treiber muss entweder WheaHwErrorReportSubmitDeviceDriver oder WheaHwErrorReportAbandonDeviceDriver auf jedem Handle aufrufen, das von WheaCreateHwErrorReportDeviceDriver erstellt wurde. Andernfalls gibt WheaRemoveErrorSourceDeviceDriver möglicherweise STATUS_RESOURCE_IN_USE zurück.