Windows 7 如何收集可能涉及驱动程序和用户模式代码的Windows 7冻结信息?

Windows 7 如何收集可能涉及驱动程序和用户模式代码的Windows 7冻结信息?,windows-7,device-driver,crash-dumps,nt-native-api,Windows 7,Device Driver,Crash Dumps,Nt Native Api,我正在经历一个应用程序崩溃,即windows 7崩溃,但不是传统的“蓝屏死亡”崩溃,它发生在设备驱动程序或其他内核空间进程崩溃整个系统时,而是所有用户空间进程都被锁定 以下是机器的状态: (1) Windows鼠标移动仍在响应,Aero合成层仍在工作(资源管理器中的某些鼠标悬停效果仍在工作),但没有win32进程在工作,GDI和用户会话似乎已冻结。 (2) Ctrl+Alt+Delete不会打开任务管理器。 (3) 没有撞车事故,也没有死亡蓝屏 有人知道收集更多关于这次坠机的信息的方法吗?我知道

我正在经历一个应用程序崩溃,即windows 7崩溃,但不是传统的“蓝屏死亡”崩溃,它发生在设备驱动程序或其他内核空间进程崩溃整个系统时,而是所有用户空间进程都被锁定

以下是机器的状态:

(1) Windows鼠标移动仍在响应,Aero合成层仍在工作(资源管理器中的某些鼠标悬停效果仍在工作),但没有win32进程在工作,GDI和用户会话似乎已冻结。 (2) Ctrl+Alt+Delete不会打开任务管理器。 (3) 没有撞车事故,也没有死亡蓝屏

有人知道收集更多关于这次坠机的信息的方法吗?我知道其中涉及到驱动程序级别的问题,我想收集设备驱动程序级别的人员可以使用的信息。当你看到死亡的蓝屏时,你可以收集内存转储(DMP)文件,并将它们发送给开发人员以提供帮助。我要寻找的是一种跟踪进程和系统状态的方法,可能是连接或其他什么。我从来没有做过内核调试器的工作,所以我正在寻找一种方法来开始这项工作


我可以很容易地在win7/32位虚拟机中重现崩溃,而且我还没有安装内核调试工具。首先,我想知道我是否选择了一种值得的方法(内核调试工具?),如果是这样,我真的不知道如何使用这些工具来收集可能帮助内核模式开发人员找到问题的信息。

下载WinDbg并通过Firewire或串行电缆连接到相关机器(USB在某些情况下也可以工作IIRC)。这将允许您从远程机器搜索运行系统中的死锁

另一种可能是引发系统崩溃(事后分析)。在将崩溃转储设置设置为完全转储之前,您应该确保。这将创建与RAM大小相同的崩溃转储。当然,在将转储发送给用户(例如通过网络)时,这可能会造成问题。还要注意,根据具体情况,转储中可能包含私人数据

如何触发崩溃转储是我描述的,下面引用了相关部分。如果通过内核调试器连接,也可以触发内存转储的创建


可以告知键盘驱动程序导致BSOD:

HKLM\CurrentControlSet\Services\kbdhid\Parameters
或(对于较旧的PS/2键盘)

然后将名为
CrashOnCtrlScroll
REG\u DWORD
设置为
1


下次重新启动后,您可以通过
Ctrl+ScrollK+ScrollK
强制蓝屏。在这种情况下,错误检查代码将是
0xE2
手动启动的\u崩溃
)。

DWM是一个Win32进程;)真的吗?奇怪的是,所有Win32 GDI进程都在内核中出现死锁,在一个用户级进程上,这并不重要,但鼠标悬停在DWM aero上的效果仍然有效(实际上它们运行了几秒钟,然后有什么东西也锁定了它们)。这听起来很神秘。但是没有更多细节的猜测是没有意义的。哇。关于手动启动的崩溃的好提示。
HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters