我现在的一个程序,在进入等待(S3)状态时需要发送一些命令给驱动程序,但是在进入休眠时需要保存一些状态。但是我发现接收WM_POWERBROADCAST消息在这两种状态下是一样的?参数中无法判断是进入等待还是进入休眠?在驱动程序中可以得到这样的信息,但是驱动程序我不能改动。
问题: 我怎么在接收到WM_POWERBROADCAST消息之后知道系统是进入了等待还是休眠?

解决方案 »

  1.   

    To Seansoe:
       谢谢了。昨天查了一天的文档,还是没有搞定。
    如果我在程序(服务程序)中阻止等待或者休眠,会弹出一个对换框说是阻止进入等待或者是休眠,所以,我认为应该可以有API可以查到,只是我现在还没有查到而已。SDK中关于电源管理的部分感觉内容比较少。
    有没有什么好的建议?
      

  2.   

    在一个WDM驱动里获得休眠或等待是比较容易的,只需要处理IRP_MJ_POWER的dispatch例程就行了。
      

  3.   

    To alphapiao(奉旨灌水钦差):
      是啊,在驱动程序中好做,可以现在给我的驱动程序是已经被微软签名的,所以,不能改,我只能在上层处理了,但是上层又找不到对应的函数,好郁闷啊....