Partilhar via


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.

Este provedor foi projetado para usuários em cenários de ambiente de trabalho. Ele fornece uma mensagem legível por humanos com os principais 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 pela arquitetura de erro de hardware do 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);
  }
}

Observação

Todas as funções Evt_Xxx_ e os tipos de dados EVT_XXX usados nos exemplos anteriores estão documentados na secção Log de Eventos do Windows na documentação do SDK do Microsoft Windows.