liuning
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2004-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1907回复:15

如何在driver中完成关闭或重启系统的操作

楼主#
更多 发布于:2004-07-15 08:58
本人需要在driver中完成关闭系统(shutdown)或重启(restart)系统的操作,但查了很多资料没有结果,哪位高手给予指点一下,谢了
terrychen
驱动小牛
驱动小牛
  • 注册日期2002-04-15
  • 最后登录2014-03-13
  • 粉丝0
  • 关注0
  • 积分174分
  • 威望68点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-15 09:54
HalReturnToFirmware( );
liuning
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2004-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-15 12:04
能否说的具体些,最好加上code,谢了
liuning
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2004-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-15 12:23
编译时提示这个函数没有定义
terrychen
驱动小牛
驱动小牛
  • 注册日期2002-04-15
  • 最后登录2014-03-13
  • 粉丝0
  • 关注0
  • 积分174分
  • 威望68点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-15 13:36
extern
NTHALAPI
VOID
HalReturnToFirmware (
    IN FIRMWARE_REENTRY Routine
    );
FIRMWARE_REENTRY 是一个enum类型;
liuning
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2004-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-15 14:12
这个函数是非正常关机的,每次系统重启的时候需要自检,这样
不符合程序的要求,能否帮助讲述一下zwshutdownsystem这个函数
liuning
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2004-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-15 14:21
FIRMWARE_REENTRY 的定义能否给出
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
7楼#
发布于:2004-07-15 14:39
这个函数是非正常关机的,每次系统重启的时候需要自检,这样
不符合程序的要求,能否帮助讲述一下zwshutdownsystem这个函数


ZwShutdownSystem shuts down the system.

NTSYSAPI
NTSTATUS
NTAPI
ZwShutdownSystem(
   IN SHUTDOWN_ACTION Action
);


Parameters
Action
The action to be performed after shutdown. Permitted values are drawn from the enumeration SHUTDOWN_ACTION.
typedef enum _SHUTDOWN_ACTION {
    ShutdownNoReboot,
    ShutdownReboot,
    ShutdownPowerOff
} SHUTDOWN_ACTION;


Return Value
Returns STATUS_SUCCESS or an error status, such as STATUS_PRIVILEGE_NOT_HELD.


Related Win32 Functions
ExitWindows(Ex), InitiateSystemShutdown.


Remarks
SeShutdownPrivilege is required to shut down the system.
User-mode applications and services are not informed of the shutdown (drivers of devices that have registered for shutdown notification by calling IoRegisterShutdownNotification are informed).

The system must have hardware support for power-off if the power-off action is to be used successfully.
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
liuning
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2004-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-07-15 15:02
我按照你写的方法执行了ZwShutdownSystem,但系统没有反映,没有执行关闭或重启操作,不知为什么,是否需要设置权限什么的。
wwwllg
驱动牛犊
驱动牛犊
  • 注册日期2004-07-04
  • 最后登录2016-03-22
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-07-15 16:00
ZwShutdownSystem关机一样很粗鲁,每次也需要自检。

[编辑 -  7/15/04 by  wwwllg]
fleabane
驱动牛犊
驱动牛犊
  • 注册日期2004-07-12
  • 最后登录2004-08-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-07-15 16:05
最粗鲁的,int 19h
liuning
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2004-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-07-15 16:18
尽管zwshutdownsystem也很粗鲁,但我仍然想知道怎么用它,请给予指点吧
liuning
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2004-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-07-15 16:19
尤其是为什么执行了zwshutdownsystem没有起作用
wwwllg
驱动牛犊
驱动牛犊
  • 注册日期2004-07-04
  • 最后登录2016-03-22
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-07-15 16:22
找到入口点执行就可以了。
liuning
驱动牛犊
驱动牛犊
  • 注册日期2004-03-16
  • 最后登录2004-09-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-07-15 16:47
麻烦说的具体点,怎么找啊
terrychen
驱动小牛
驱动小牛
  • 注册日期2002-04-15
  • 最后登录2014-03-13
  • 粉丝0
  • 关注0
  • 积分174分
  • 威望68点
  • 贡献值0点
  • 好评度15点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-07-16 09:12
typedef enum _FIRMWARE_REENTRY {
    HalHaltRoutine,
    HalPowerDownRoutine,
    HalRestartRoutine,
    HalRebootRoutine,
    HalInteractiveModeRoutine,
    HalMaximumRoutine
} FIRMWARE_REENTRY, *PFIRMWARE_REENTRY;

extern
NTHALAPI
VOID
HalReturnToFirmware (
IN FIRMWARE_REENTRY Routine
);

游客

返回顶部