从内核态重启系统的步骤
如何从内核态重启系统呢,一个经常被推荐的简单的解决办法是用驱动来通知一个用户态的服务并调用ExitWindowsEx函数
但是如果你非要想在内核态做这件事呢?那么你可以使用HalReturnToFirmware或NtShutdownSystem函数
但是这些函数都是无文档的,如果你使用它们,你的驱动可能无法通过WHQL认证
这里提供一种简单的、完全有文档的方法:
使用下面的函数
KeBugCheck(POWER_FAILURE_SIMULATE);
也许你会认为这是BugCheck,那么你错了,这并不会引发bugcheck
这样实际上会调用了HalReturnToFirmware(HalRebootMachine)
当执行了BugCheck回调后,无BSOD,无Crash dump,只会进行非常干净、简单和直接的重启动;)
本文地址:http://www.45fan.com/a/question/67536.html