强制重启N种方法
强制重启N种方法
1.
无意中看到一种通过控制92H端口bit0位,将其置1来实现重启的方法,刚才测试了一下,效果真好
mov al, 01
out 92h, al
2.
另一种,模拟键盘的reset
mov al, 0xfe
out 0x64, al
注
i8042 :键盘控制器
8042的端口在cpu的io空间地址如下:
port----Read/Write-----Function
0x60----Read----------Read Input Buffer
0x60----Write---------Write Output Buffer
0x64----Read----------Read Status Register
0x64----Write---------Send Command
再者
3.
status=ZwInitiatePowerAction(PowerActionShutdown,
PowerSystemShutdown,
0,
TRUE
);
再者
4.
HalReturnToFirmware(HalRebootRoutine);
驱动中直接使用由Hal.dll导出的HalReturnToFirmware函数来实现关机,这是系统正常关机时调用的最后一个API,也是最实效的一个API,这个函数会直接调用Bois例程,然后系统就真的关机了
再者
5.
KeBugCheck(POWER_FAILURE_SIMULATE);
也许你会认为这是BugCheck,那么你错了,这并不会引发bugcheck
这样实际上会调用了HalReturnToFirmware(HalRebootMachine)
当执行了BugCheck回调后,无BSOD,无Crash dump,只会进行非常干净、简单和直接的重启动
实现源码为
/* Check if this is power failure simulation */
if (BugCheckCode == POWER_FAILURE_SIMULATE)
{
/* Call the Callbacks and reboot */;
KiDoBugCheckCallbacks();
HalReturnToFirmware(HalRebootRoutine);
}
强制重启N种方法的更多相关文章
- iis 重启 (三种方法)
iis 重启 (三种方法) WINDOWS提供WEB服务的IIS有时候会出现访问过大导致网站打不开,这时重启IIS是最好的选择. 方法/步骤 1 1.界面操作 打开“控制面板”->“管理工具”- ...
- nginx重启几种方法
http://blog.csdn.net/zqinghai/article/details/71125045 ps -ef|grep nginx 平滑重启命令: kill -HUP 住进称号或进程号文 ...
- 强制重启Linux系统的几种方法
实际生产环境中某些情况下 Linux 服务器系统在出现致命错误需要远程进行重启,通过常规的 reboot.init 6 等方法无法正常重启(例如重启时卡在驱动程序里等情况),这时就需要通过下面介绍的几 ...
- linux 清空catalina.out日志 不需要重启tomcat(五种方法)【转】
1.重定向方法清空文件 [root@localhost logs]# du -h catalina.out 查看文件大小17M catalina.out[root@localhost logs] ...
- js字符串转换为数字的三种方法。(转换函数)(强制类型转换)(利用js变量弱类型转换)
js字符串转换为数字的三种方法.(转换函数)(强制类型转换)(利用js变量弱类型转换) 一.总结 js字符串转换为数字的三种方法(parseInt("1234blue"))(Num ...
- 重启网卡的几种方法(命令行,API,
1.重启windows网卡命令 rem 禁用网卡netsh interface set interface 本地连接 disabledrem 启用网卡 netsh interface set inte ...
- ubuntu14.04重启网卡的三种方法
Linux重启网卡的三种方法: 一.network 利用root帐户 # service network restart 或者/etc/init.d/networking restart 二.ifdo ...
- 【Qt】实现程序重启的两种方法
Qt5/PyQt5 实现程序重启的两种方法 前言 最近在写一个开源项目,需要实现一个程序自动重启的功能.尝试了好几种方式,效果均不太理想. 一开始的实现思路是,记为思路一吧.大概就是写一些 shell ...
- Mac小技巧:强制退出程序的六种方法
原帖地址: http://www.cnbeta.com/articles/175447.htm 1.使用键盘快捷键强制退出处于活跃状态的Mac程序 快捷键:Command+Option+Shift+E ...
随机推荐
- uva10160 Servicing Stations
The input consists of more than one description of town (but totally, less than ten descriptions). E ...
- Xcode 编译的哪些错误
1.error: macro names must be identifiers YourProject_prefix.pch 原因: 因为你弄脏了预处理器宏,在它处于<Multiple Val ...
- 转 mvc项目中,解决引用jquery文件后智能提示失效的办法
mvc项目中,解决用Url.Content方法引用jquery文件后智能提示失效的办法 这个标题不知道要怎么写才好, 但是希望文章的内容对大家有帮助. 场景如下: 我们在用开发开发程序的时候,经常 ...
- docker中如何制作自己的基础镜像
一.本地镜像 举个例子:现在把自己的开发环境打包,取名为centos6-base.tar,然后在docker中,以centos6-base.tar作为基准镜像. 1.创建自己的镜像,放置于/root目 ...
- 重构Web Api程序(Api Controller和Entity)
Insus.NET较习惯做法,是在程序完成之后,抽一些少时间对写好的代码重新审视.比如这些天写的Web Api的程序来说,发现有很多值得重构代码. 开发ASP.NET MVC程序,与数据相关有关联的一 ...
- Ros学习注意点
编译问题 回调函数不能有返回类型,严格按照实例程序编写 第三方库的问题,packet.xml里面必须加上自己的依赖文件 之前文档里面介绍的有点问题. 主要表现在:当你建立包的时候就写入了依赖,那就不需 ...
- 使用 data-* 属性来嵌入自定义数据
1. HTML 实例 <ul> <li data-animal-type="bird">Owl</li> <li data-animal- ...
- Eclipse 反编译插件JadClipse安装
下载jadClipse地址: 链接: http://pan.baidu.com/s/1kTN4TPd 提取码: 3fvd 将net.sf.jadclipse_3.3.0.jar拷贝到eclipse的 ...
- WPF ListView和ListBox等双击事件问题
上两篇文章中说双击行获取不到当前数据对象问题, http://www.cnblogs.com/ligl/p/5636899.html http://www.cnblogs.com/ligl/p/562 ...
- 2015/11/9用Python写游戏,pygame入门(8):按钮和游戏结束
昨天没有更新内容,今天相对多写一些. 因为我们已经基本完成游戏框架,但是游戏结束后,并不知道怎样比较好开始.我本来本着懒的原则,想结束后显示一个黑屏,然后你重新点一下鼠标就重新开始.但是那样实在太不像 ...