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.