首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在重新引导到另一个操作系统后,是否可以可靠地检测到BSOD?

在重新引导到另一个操作系统后,是否可以可靠地检测到BSOD?
EN

Stack Overflow用户
提问于 2012-02-14 23:27:38
回答 5查看 310关注 0票数 0

我需要检测在不同的操作系统中由BSOD引起的重启。这样的情况是可以追踪的吗?内存转储足够了吗?Windows7显示一个很好的对话框,表明系统已从严重错误中恢复-它是如何知道的?

EN

回答 5

Stack Overflow用户

发布于 2012-02-14 23:31:34

Windows提供了一个注册callback on bugchecks的接口,所以你可以注册一个函数来做一些特定于错误检查的事情--创建一个简单的文件或类似的东西,然后在另一个操作系统中,你可以检查这个文件是否存在-如果存在,那么你的错误检查回调就会被执行。是否发生了错误检查?当然,你需要考虑的是,对你的函数的调用是在HIGH_LEVEL的IRQL发出的,所以你必须看看应用了什么限制,而且这也属于windows驱动程序开发的领域。

票数 2
EN

Stack Overflow用户

发布于 2012-02-14 23:31:05

在互联网上搜索,似乎Windows试图在C:/Windows/Minidump中生成转储文件。您可以在那里查找文件。请注意,我之所以说尝试,是因为BSOD可能非常致命,以至于无法创建转储文件(例如,由于显而易见的原因,在硬盘崩溃期间)。

您可以在文件上查找创建日期,以检测最新的文件。

这显然要求您可以在其他操作系统上挂载Windows文件系统,但这似乎是一个不错的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2012-02-15 05:53:44

您可以编写一个简单的Windows服务,将状态信息写入其他操作系统可以查找的位置。例如,这可以是MBR之后未使用的扇区之一、专用分区或USB记忆棒。

当服务启动时,您可以编写一条消息来指示Windows已启动并正在运行,可能会带有时间戳。您可能会经常更新它,如果有用的话,您甚至可以包含CPU加载或驱动程序加载/卸载事件等状态信息。当服务检测到系统正在关闭时,它会写入一条消息来说明这一点。当您的其他操作系统查看此信息时,如果最后一条消息没有说明系统是故意关机的,那么您可以得出Windows崩溃的结论。Windows执行类似的操作,以便引导加载程序可以在安全模式下引导系统。

显然,这不允许您区分BSOD和其他类型的崩溃,并且如果系统断电,您将得到假阳性。如果在系统关闭过程中发生BSOD,您也无法检测到它。这些警告是否重要取决于你没有告诉我们的细节。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9279549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档