强制重启N种方法

2015-12-24 17:19 146人阅读 评论(0) 收藏 举报

本文章已收录于:

分类:

驱动开发学习(458)

作者同类文章X

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);
    }

时间: 2024-09-29 02:43:02

强制重启N种方法的相关文章

linux关机重启五种方法(sysrq shutdown halt init ipmi)

linux关机重启五种方法(sysrq shutdown halt init) 当前版本 cat /etc/debian_version 5.0.1 一.linux关机命令(前三种) 1.shutdown -h now(-h:halt after shutdown.) halt init 0 2.linux重启命令 shutdown -r(-r:reboot after shutdown.) reboot init 6 二.特殊情况重启和关机(能ping通 上述命令无法使用情况下 也就是系统挂起

iis 重启 (三种方法)

iis 重启 (三种方法) WINDOWS提供WEB服务的IIS有时候会出现访问过大导致网站打不开,这时重启IIS是最好的选择. 方法/步骤 1 1.界面操作 打开“控制面板”->“管理工具”->“服务”.找到“IIS Admin Service” 右键点击“重新启动” 弹出 “停止其它服务” 窗口,点击“是”. 2 2.Net 命令操作 点击 “开始”->“运行”,输入cmd 打开命令窗口: 输入 net stop iisadmin /y  回车停止IIS:再输入 net start

重启网卡的几种方法(命令行,API,

1.重启windows网卡命令 rem 禁用网卡netsh interface set interface 本地连接 disabledrem 启用网卡 netsh interface set interface 本地连接 enabled 2.根据相关信息作出如下修改 rem 禁用网卡netsh interface set interface 以太网 disabledrem 启用网卡 netsh interface set interface 以太网 enabled 三.以下是网上找到的C++代码

查看登陆系统用户的信息的三种方法详解

查看登陆系统用户的信息的三种方法详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.who这个命令显示可以谁在登陆,但是这个有很多的花式玩法,这个命令超简单 语法:who [OPTION]... [ FILE | ARG1 ARG2 ] 1.参数:-u,显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串. 例如: 2.参数:-m,此参数的效果和指定"a

Spring Security3的四种方法概述

使用Spring Security3的四种方法概述 那么在Spring Security3的使用中,有4种方法: 一种是全部利用配置文件,将用户.权限.资源(url)硬编码在xml文件中,已经实现过,并经过验证: 二种是用户和权限用数据库存储,而资源(url)和权限的对应采用硬编码配置,目前这种方式已经实现,并经过验证. 三种是细分角色和权限,并将用户.角色.权限和资源均采用数据库存储,并且自定义过滤器,代替原有的FilterSecurityInterceptor过滤器,     并分别实现Ac

有关WINDOWS XP登录密码的几种方法

网上关于破解WINDOWS XP登录密码的几种方法很多,但许多根本不行.我现在总结自己试过几种,这几种方法其实均比较菜的,但可行的.WINDOWS XP登录是由SAM 文件管理的,总体来说“山姆大叔”是比较难搞定的,所以网上许多方法不行的原因吧.上次在网上看到关于一篇关于SAM 文件的文章,写得不错,但没能收藏起来.反正有不少人在研究这个.我想就是有了破解的方法,高手们也不一定全公布吧,这是由于大家不难知道的原因——安全,他们不便公布!如果很轻易就破了的话,那微软一定要打这个补丁的,那他们的成果

使用Spring Security3的四种方法概述

使用Spring Security3的四种方法概述 那么在Spring Security3的使用中,有4种方法: 一种是全部利用配置文件,将用户.权限.资源(url)硬编码在xml文件中,已经实现过,并经过验证: 二种是用户和权限用数据库存储,而资源(url)和权限的对应采用硬编码配置,目前这种方式已经实现,并经过验证. 三种是细分角色和权限,并将用户.角色.权限和资源均采用数据库存储,并且自定义过滤器,代替原有的FilterSecurityInterceptor过滤器,     并分别实现Ac

Windows Server 2016-客户端退域的三种方法

前边我们提到了客户端加域的操作方法,本章为大家补充域客户端退域的操作过程,包含图形化.netdom remove.Powershell三种方法,具体内容如下: 图形化退域方法: 1.Win键,计算机右键属性: 2.系统界面在计算机名称.域和工作组设置栏选择"更改设置": 3.在系统属性界面,选择"更改": 4.在更改界面隶属于框选择工作组并键入要加入的工作组信息,并确定: 5.提示"离开域后,您需要知道本地管理员账户的密码才能登录到计算机.单击"

分区自动挂载的三种方法

一.修改/etc/rc.local配置文件追加类似命令:mount /dev/sda1  /sda1 到配置文件最后一行 二,修改/etc/fstab配置文件追加类似命令:/dev/sda1   /sda1  ext4   defaults   0  0 到配置文件中 三,安装autofs服务yum install autofs 追加类似命令:sda1   -fstype=ext4  :/dev/sda1 到配置/etc/autofs.misc文件中重启服务: service autofs re