gohoho
驱动牛犊
驱动牛犊
  • 注册日期2003-12-04
  • 最后登录2004-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1370回复:11

虚拟设备驱动程序<->电源管理

楼主#
更多 发布于:2004-04-06 10:47
当用户执行了关机、待机、休眠的操作,在驱动程序中如何获取这些电源操作??
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-04-06 11:48
irp_mj_power
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
gohoho
驱动牛犊
驱动牛犊
  • 注册日期2003-12-04
  • 最后登录2004-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-06 12:26
我知道irp_mj_power是电源管理,可以怎么样获取当前电源状态呢?并修改电源状态呢?
gohoho
驱动牛犊
驱动牛犊
  • 注册日期2003-12-04
  • 最后登录2004-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-06 17:32
自己顶,高手有空帮忙解答一下啊,谢谢!
gohoho
驱动牛犊
驱动牛犊
  • 注册日期2003-12-04
  • 最后登录2004-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-07 09:45
自已顶,路过的帮忙顶一下
dregs
驱动小牛
驱动小牛
  • 注册日期2004-02-19
  • 最后登录2006-05-10
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-04-07 11:15
在你的disp_power中

    stack = IoGetCurrentIrpStackLocation (Irp);
    powerType = stack->Parameters.Power.Type;
    powerState = stack->Parameters.Power.State;

switch (stack->MinorFunction) {

        case IRP_MN_SET_POWER:
           switch (powerType)
{
case DevicePowerState:
case SystemPowerState:
}

case IRP_MN_WAIT_WAKE:
case IRP_MN_QUERY_POWER:
....
}

希望可以帮助 freshman too
还是我
gohoho
驱动牛犊
驱动牛犊
  • 注册日期2003-12-04
  • 最后登录2004-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-04-07 11:24
在你的disp_power中

    stack = IoGetCurrentIrpStackLocation (Irp);
    powerType = stack->Parameters.Power.Type;
    powerState = stack->Parameters.Power.State;

switch (stack->MinorFunction) {

        case IRP_MN_SET_POWER:
           switch (powerType)
{
case DevicePowerState:
case SystemPowerState:
}

case IRP_MN_WAIT_WAKE:
case IRP_MN_QUERY_POWER:
....
}

希望可以帮助 freshman too
 



非常感谢您!再请帮忙:
在case IRP_MN_SET_POWER:
           switch (powerType)
{
case DevicePowerState:
case SystemPowerState:
}
中,当是SystemPowerState时,我想获取系统电源状态是待机?还是休眠,我试了好久,待机跟休眠好像同一状态,都是PowerSystemHibernate

if (PowerState.SystemState==PowerSystemHibernate)
{
....
}

我想当待机的时候设置成休眠的状态,而休眠的时候设置成待机的状态,我快弄了一个星期了,XP系统也装了N次,痛苦啊!还请您帮帮我啊!

flyonearth
驱动中牛
驱动中牛
  • 注册日期2002-12-25
  • 最后登录2009-07-01
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望30点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-04-07 12:02
为什么要将待机和休眠互换?有什么意义吗? :o
gohoho
驱动牛犊
驱动牛犊
  • 注册日期2003-12-04
  • 最后登录2004-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-04-07 12:30
为什么要将待机和休眠互换?有什么意义吗? :o

这只是举个例子,我要实现的功能是将休眠改成待机,一旦计算机执行了休眠,驱程里面马上将休眠改成待机状态。
gohoho
驱动牛犊
驱动牛犊
  • 注册日期2003-12-04
  • 最后登录2004-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-04-07 12:32
1、在驱程里面如果判断计算机要选择的电源操作是“待机”、“休眠”;
2、如果在驱程里面修改系统的电源状态,比如把“休眠”状态改成“待机”状态。
gohoho
驱动牛犊
驱动牛犊
  • 注册日期2003-12-04
  • 最后登录2004-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-04-07 13:38
电源管理怎么就这么难吗?请大家指点一二啊。
gohoho
驱动牛犊
驱动牛犊
  • 注册日期2003-12-04
  • 最后登录2004-10-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-04-07 16:28
痛苦,自己顶!
游客

返回顶部