add more event log
This commit is contained in:
@@ -244,11 +244,11 @@ async fn run_diagnosis() -> Result<SystemHealthReport, String> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. 关键日志 (严格模式)
|
// 3. 关键日志 (严格模式 + 扩展)
|
||||||
let mut events = Vec::new();
|
let mut events = Vec::new();
|
||||||
if let Some(con) = &wmi_con {
|
if let Some(con) = &wmi_con {
|
||||||
// 先按 ID 粗查
|
// [新增] 增加了 ID 7 (Disk), 1001 (BugCheck), 4101 (Display)
|
||||||
let query = "SELECT TimeGenerated, EventCode, SourceName, Message FROM Win32_NTLogEvent WHERE Logfile = 'System' AND (EventCode = 41 OR EventCode = 18 OR EventCode = 19)";
|
let query = "SELECT TimeGenerated, EventCode, SourceName, Message FROM Win32_NTLogEvent WHERE Logfile = 'System' AND (EventCode = 41 OR EventCode = 18 OR EventCode = 19 OR EventCode = 7 OR EventCode = 1001 OR EventCode = 4101)";
|
||||||
if let Ok(results) = con.raw_query::<Win32_NTLogEvent>(query) {
|
if let Ok(results) = con.raw_query::<Win32_NTLogEvent>(query) {
|
||||||
// 不在这里 truncate,而是过滤后再截取,保证显示的是真问题
|
// 不在这里 truncate,而是过滤后再截取,保证显示的是真问题
|
||||||
for event in results {
|
for event in results {
|
||||||
@@ -262,6 +262,18 @@ async fn run_diagnosis() -> Result<SystemHealthReport, String> {
|
|||||||
} else if (event.EventCode == 18 || event.EventCode == 19) && event.SourceName == "Microsoft-Windows-WHEA-Logger" {
|
} else if (event.EventCode == 18 || event.EventCode == 19) && event.SourceName == "Microsoft-Windows-WHEA-Logger" {
|
||||||
is_target_event = true;
|
is_target_event = true;
|
||||||
hint = "WHEA 硬件致命错误 (CPU/超频/PCIe)".to_string();
|
hint = "WHEA 硬件致命错误 (CPU/超频/PCIe)".to_string();
|
||||||
|
} else if event.EventCode == 7 && (event.SourceName == "Disk" || event.SourceName == "disk") {
|
||||||
|
// [新增] 磁盘坏块检测
|
||||||
|
is_target_event = true;
|
||||||
|
hint = "硬盘出现坏道 (Disk Bad Block)".to_string();
|
||||||
|
} else if event.EventCode == 1001 && event.SourceName == "BugCheck" {
|
||||||
|
// [新增] 蓝屏记录
|
||||||
|
is_target_event = true;
|
||||||
|
hint = "系统发生蓝屏死机 (BSOD)".to_string();
|
||||||
|
} else if event.EventCode == 4101 && event.SourceName == "Display" {
|
||||||
|
// [新增] 显卡驱动重置
|
||||||
|
is_target_event = true;
|
||||||
|
hint = "显卡驱动停止响应并已恢复 (TDR)".to_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
if is_target_event {
|
if is_target_event {
|
||||||
|
|||||||
Reference in New Issue
Block a user