如何从内核态重启系统

    技术2022-05-11  69

    如何从内核态重启系统呢,一个经常被推荐的简单的解决办法是 用驱动来通知一个用户态的服务并调用ExitWindowsEx函数

    但是如果你非要想在内核态做这件事呢?那么你可以使用HalReturnToFirmware或NtShutdownSystem函数

    但是这些函数都是无文档的,如果你使用它们,你的驱动可能无法通过WHQL认证

    这里提供一种简单的、完全有文档的方法:

    使用下面的函数

    KeBugCheck(POWER_FAILURE_SIMULATE);

    也许你会认为这是BugCheck,那么你错了,这并不会引发bugcheck

    这样实际上会调用了HalReturnToFirmware(HalRebootMachine)

    当执行了BugCheck回调后,无BSOD,无Crash dump,只会进行非常干净、简单和直接的重启动;)


    最新回复(0)