Consultando o log de eventos do sistema para eventos de erro de hardware
O nome do provedor que registra os eventos de erro de hardware é Microsoft-Windows-WHEA-Logger.
Esse provedor foi projetado para usuários em cenários de área de trabalho. Ele fornece uma mensagem legível por humanos com a main detalhes do evento para que um usuário possa ter uma ideia básica do que ocorreu.
O exemplo de código a seguir mostra como consultar o log de eventos do sistema para recuperar quaisquer eventos de erro de hardware que foram registrados anteriormente pelo 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);
}
}
Observação
Todas as funções Evt_Xxx_ e os tipos de dados EVT_XXX que foram usados nos exemplos anteriores estão documentados na seção Log de Eventos do Windows na documentação do SDK do Microsoft Windows.