查询系统事件日志中的硬件错误事件
记录硬件错误事件的提供程序的名称是 Microsoft-Windows-WHEA-Logger。
此提供程序专为桌面方案中的用户而设计。 它提供具有事件main详细信息的人类可读消息,以便用户可以大致了解所发生的情况。
下面的代码示例演示如何查询系统事件日志以检索以前由 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);
}
}
注意
上述示例中使用的所有Evt_Xxx_函数和 EVT_XXX 数据类型都记录在 Microsoft Windows SDK 文档中的 Windows 事件日志部分。