Partager via


Interrogation du journal des événements système pour les événements d’erreur matérielle

Le nom du fournisseur qui enregistre les événements d’erreur matérielle est Microsoft-Windows-WHEA-Logger.

Ce fournisseur est conçu pour les utilisateurs dans les scénarios de bureau. Il fournit un message lisible par l’homme avec les détails principaux de l’événement afin qu’un utilisateur puisse avoir une idée de base de ce qui s’est produit.

L’exemple de code suivant montre comment interroger le journal des événements système pour récupérer tous les événements d’erreur matérielle précédemment enregistrés par l’architecture d’erreur matérielle Windows (WHEA).

// 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);
  }
}

Remarque

Toutes les fonctions Evt_Xxx_ et les types de données EVT_XXX utilisés dans les exemples précédents sont documentés dans la section journal des événements Windows dans la documentation du Kit de développement logiciel (SDK) Microsoft Windows.