Freigeben über


Abfragen des Systemereignisprotokolls nach Hardwarefehlerereignissen

Der Name des Anbieters, der die Hardwarefehlerereignisse protokolliert, ist Microsoft-Windows-WHEA-Logger.

Dieser Anbieter wurde für Benutzer in Desktopszenarien entwickelt. Es stellt eine lesbare Nachricht mit den Hauptdetails des Ereignisses bereit, damit ein Benutzer eine grundlegende Vorstellung davon erhalten kann, was aufgetreten ist.

Das folgende Codebeispiel zeigt, wie Sie das Systemereignisprotokoll abfragen, um alle Hardwarefehlerereignisse abzurufen, die zuvor von der Windows Hardware Error Architecture (WHEA) protokolliert wurden.

// Function to query the event log for hardware error events
VOID QueryHwErrorEvents(VOID) {

  EVT_HANDLE QueryHandle;
  EVT_HANDLE EventHandle;
  ULONG Returned;

  // Obtain a query handle to the system event log
  QueryHandle =
    EvtQuery(
      NULL, 
      L"System", 
      L"*[System/Provider[@Name=\"Microsoft-Windows-WHEA-Logger\"]]",
      EvtQueryChannelPath | EvtQueryForwardDirection
      );

  // Check result
  if (QueryHandle != NULL) {

    // Get the next hardware error event
    while (EvtNext(
             QueryHandle,
             1,
             &EventHandle,
             -1,
             0,
             &Returned
             )) {

      // Process the hardware error event
      ProcessHwErrorEvent(EventHandle);

      // Close the event handle
      EvtClose(EventHandle);
    }

    // Close the query handle
    EvtClose(QueryHandle);
  }
}

Anmerkung

Alle Evt_Xxx_-Funktionen und die EVT_XXX- Datentypen, die in den vorherigen Beispielen verwendet wurden, sind im Abschnitt Windows-Ereignisprotokoll in der Dokumentation zum Microsoft Windows SDK dokumentiert.