Query sul registro eventi di sistema per gli eventi di errore hardware
Il nome del provider che registra gli eventi di errore hardware è Microsoft-Windows-WHEA-Logger.
Questo provider è progettato per gli utenti negli scenari desktop. Fornisce un messaggio leggibile con i dettagli principali dell'evento in modo che un utente possa ottenere un'idea di base di ciò che si è verificato.
Nell'esempio di codice seguente viene illustrato come eseguire query sul registro eventi di sistema per recuperare eventuali eventi di errore hardware registrati in precedenza da 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);
}
}
Nota
Tutte le funzioni Evt_Xxx_ e i tipi di dati EVT_XXX usati negli esempi precedenti sono documentati nella sezione Registro eventi di Windows nella documentazione Microsoft Windows SDK.