我需要测试设备在 Windows难的挂起/冻结(例如屏幕冻结、没有 LED 闪烁、对输入没有反应,包括Ctrl+Alt+Del等)。为了在合理短的时间内进行足够多的实验,我需要以编程方式或其他方式启动这些挂起。
我对感兴趣Windows 10特别是,但对于其他版本的任何可行的方法都值得赞赏。
我对此话题进行的每一次搜索都毫不意外地让我找到了关于如何排除这些情况,而不是激怒他们。所以这个问题可能看起来很奇怪。
反馈: 我尝试过很多食谱在答案和评论中提供。首先,我对导致 BSoD 的崩溃不感兴趣(这就是为什么我描述的是冻结,而不是崩溃)。
我必须承认,Windows 10 64 位对许多方法都表现出了良好的抵抗力。它几乎可以应对任何CPU负载方法(包括叉子炸弹、循环等)效果很好。引发立即错误的方法(大多数 NotMyFault 挂起方法)由操作系统通过重新启动或关闭来处理(这不是我追求的)。最好的结果是通过内存泄漏方法不是我的错— 真正冻结,没有重新启动的机会。
最后,微软关于如何让 Windows 冻结的大量文档让我印象深刻。看来他们对这部分比对面(对抗冻结)的了解要多得多 ;-)
答案1
也许这可以帮助: 通过键盘强制系统崩溃
使用 USB 键盘时,您必须在注册表中启用键盘启动崩溃。在注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameters 中,创建一个名为 CrashOnCtrlScroll 的值,并将其设置为 REG_DWORD 值 0x01。
您必须重新启动系统才能使这些设置生效。
完成后,可以使用以下热键序列启动键盘崩溃:按住最右边的 CTRL 键,然后按两次 SCROLL LOCK 键。
或者你可以启动一个 fork 炸弹:看到这个问题
还有不是我的错
Notmyfault 是一款可用于使 Windows 系统崩溃、挂起和导致内核内存泄漏的工具。它对于学习如何识别和诊断设备驱动程序和硬件问题非常有用,您还可以使用它在行为异常的系统上生成蓝屏转储文件。
答案2
这听起来就像您正在测试外部设备对操作系统无响应的反应。
如果您的硬件可以连接到虚拟化 Windows 安装,那么您可以根据需要多次暂停和恢复虚拟机。在 VirtualBox(或其他桌面虚拟化)环境中安装所需的操作系统,向 VM 公开正在使用的任何硬件接口(USB、以太网或其他)。
然后您就可以暂停和恢复随意虚拟机。
答案3
至少在旧版 Windows 下(几年前),以下操作是有效的:
我编写了一个带有无限循环的 C 程序:
while(1) {}
...然后我在任务管理器中给予该程序“实时优先级”(也有一个 API 可以做到这一点)。
在多核系统上,我需要多次执行此操作,以便每个核心上运行一个循环......
答案4
请在 StackOverflow 上查看与您的问题类似的以下问题:如何让窗口短时间冻结
简而言之,没有办法(可靠地)做到这一点。
也许您可以直接中断与设备的通信,而不是让 Windows 冻结或挂起。
我不知道你的设备是什么,也不知道你是如何连接的。例如,如果它是 USB 或以太网适配器,你可以轻松地在设备管理器中停用它或拔掉它?如果你强行使系统崩溃或挂起,你可能会以各种方式损坏你的系统,所以要小心谨慎。