Freigeben über


Abfragen des Systemereignisprotokolls nach Hardwarefehlerereignissen

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

Dieser Anbieter ist für Benutzer in Desktopszenarien konzipiert. Es stellt eine für Menschen lesbare Nachricht mit den Standard Details des Ereignisses bereit, sodass ein Benutzer eine grundlegende Vorstellung davon erhalten kann, was passiert ist.

Das folgende Codebeispiel zeigt, wie Das Systemereignisprotokoll abgefragt wird, um alle Hardwarefehlerereignisse abzurufen, die zuvor von 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);
  }
}

Hinweis

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