2

在网络环境中的 Windows XP Pro 下,Ctrl+Alt+Del 会为您提供 Windows 安全提示,如果您按住 Ctrl 并单击关机,则会触发紧急关机。

这似乎将系统关闭得如此之快,甚至没有什么进程可以完成,即几乎就像您刚刚拉下电源/长按电源按钮一样。

我想知道 Windows 是通过什么过程实现如此快速的关机——它是直接通过 ACPI/APM 指示 BIOS 关闭系统吗?如果是这样,如何以任何语言以编程方式实现这一点?

4

3 回答 3

1

ExitWindowsEx功能是标准关闭,即使EWX_FORCE它仍然关闭所有程序,服务等......它只是不要求/等待它们关闭。

那么解决方案是什么?使用NtShutdownSystem.

该函数通过刷新缓存、注册表等然后调用 BIOS 来关闭机器电源来执行实际的关机。

在此处查看使用示例: http:
//www.codeproject.com/Articles/34194/Performing-emergency-shutdowns

于 2014-12-26T04:01:37.510 回答
1

这可以通过使用系统请求功能在 *nix 系统上完成。通常出于安全原因禁用此功能,但您可以使用 root 权限启用它并立即请求关闭系统电源,如下所示:

echo 1 > /proc/sys/kernel/sysrq-trigger ;
echo o > /proc/sysrq-trigger

其中字母“o”表示“断电”。其他功能可用。https://en.wikipedia.org/wiki/Magic_SysRq_key

于 2013-03-27T10:09:44.173 回答
0

你可以使用ExitWindowsExwithEWX_POWEROFFEWX_FORCEflags set ...

于 2013-03-26T11:41:07.767 回答