zhuyanjv
驱动牛犊
驱动牛犊
  • 注册日期2004-04-20
  • 最后登录2008-02-19
  • 粉丝0
  • 关注0
  • 积分58分
  • 威望8点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1430回复:13

相同的驱动2000下可以阻止系统进入等待状态,98下wdm想阻止计算机进入睡眠状态,发现不成功,结果用softice在dispatchpower处设断点,发现点击关闭系统中“使系统进入睡眠状态”后,根

楼主#
更多 发布于:2004-06-09 14:58
急盼答复。在线等。
RED_spring
驱动中牛
驱动中牛
  • 注册日期2002-07-28
  • 最后登录2016-11-06
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望19点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-06-14 17:46
应用程序中可以处理这个消息
WM_POWERBROADCAST
 


在Vxd里用SHELL_HookSystemBroadcast可以hook像WM_POWERBROADCAST之类的广播消息。 如果你返回false,这些消息就不会发到应用程序。 :cool:
RED_spring
驱动中牛
驱动中牛
  • 注册日期2002-07-28
  • 最后登录2016-11-06
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望19点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-06-14 17:40
如果只是不想让机器进入节能模式,你不一定要驱动呀?APP可以的


嘿嘿,还是用driver放心些。用AP被人干掉怎么办?

什么? 用driver耗系统空间? 我才不管那么多呢。 :D :D :D

[编辑 -  6/14/04 by  RED_spring]
lejianz
驱动中牛
驱动中牛
  • 注册日期2003-03-05
  • 最后登录2023-11-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望145点
  • 贡献值0点
  • 好评度116点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-06-11 11:56
WM_POWERBROADCAST

The WM_POWERBROADCAST message is broadcast to an application to notify it of power-management events.

A window receives this message through its WindowProc function.


LRESULT CALLBACK WindowProc(
  HWND hwnd,       // handle to window
  UINT uMsg,       // WM_POWERBROADCAST
  WPARAM wParam,   // power-management event
  LPARAM lParam    // function-specific data
);
Parameters
hwnd
Handle to window.
uMsg
WM_POWERBROADCAST message identifier.
wParam
Power-management event. This parameter can be one of the following events. Event Meaning
PBT_APMBATTERYLOW Battery power is low.
PBT_APMOEMEVENT OEM-defined event occurred.
PBT_APMPOWERSTATUSCHANGE Power status has changed.
PBT_APMQUERYSUSPEND Request for permission to suspend.
PBT_APMQUERYSUSPENDFAILED Suspension request denied.
PBT_APMRESUMEAUTOMATIC Operation resuming automatically after event.
PBT_APMRESUMECRITICAL Operation resuming after critical suspension.
PBT_APMRESUMESUSPEND Operation resuming after suspension.
PBT_APMSUSPEND System is suspending operation.

lParam
Function-specific data. For most events, this parameter is reserved and not used.
However, if wParam is one of the resume events (PBT_APMRESUME*), the lParam parameter can specify the PBTF_APMRESUMEFROMFAILURE flag. This flag indicates that a suspend operation failed after the PBT_APMSUSPEND event was broadcast.

Return Values
Return TRUE to grant a request.

Return BROADCAST_QUERY_DENY to deny a request.

Requirements
Client: Included in Windows XP, Windows 2000 Professional, Windows NT Workstation 4.0, Windows Me, Windows 98, and Windows 95.
Server: Included in Windows Server 2003, Windows 2000 Server, and Windows NT Server 4.0.
Header: Declared in Winuser.h; include Windows.h.


一起交流,共同提高!
zhuyanjv
驱动牛犊
驱动牛犊
  • 注册日期2004-04-20
  • 最后登录2008-02-19
  • 粉丝0
  • 关注0
  • 积分58分
  • 威望8点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-10 16:59
我在wdm里怎么就截获不到电源状态改变的查询呢?2000下可以
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
5楼#
发布于:2004-06-10 11:05
VxD 中可以处理CONFIG_APM_QUERY_Dx,当系统将要进入睡眠模式的时候,Configuration Manager将给VxD发送CONFIG_APM_QUERY_Dx (x是1,2,3)消息,如果driver不能进入睡眠模式可以返回失败,阻止系统进入睡眠模式。
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
6楼#
发布于:2004-06-10 10:53
电源设置当然可以,但我想解决的就是截获系统电源消息然后阻止

如果在应用程序中处理wm_powerbroadcast,将怎么拒绝电源状态的改变呢
?


返回 BROADCAST_QUERY_DENY
MSDN里面有详细的说明,搜索一下吧。
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
zhuyanjv
驱动牛犊
驱动牛犊
  • 注册日期2004-04-20
  • 最后登录2008-02-19
  • 粉丝0
  • 关注0
  • 积分58分
  • 威望8点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-06-10 08:13
电源设置当然可以,但我想解决的就是截获系统电源消息然后阻止

如果在应用程序中处理wm_powerbroadcast,将怎么拒绝电源状态的改变呢
?
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-09 17:29
还有,你想象如果你把电源设置部分修改了会是怎样?回答当然是不会进入休眠了。
所以修改设置也是一个办法
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
9楼#
发布于:2004-06-09 17:17
应用程序中可以处理这个消息
WM_POWERBROADCAST
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
zhuyanjv
驱动牛犊
驱动牛犊
  • 注册日期2004-04-20
  • 最后登录2008-02-19
  • 粉丝0
  • 关注0
  • 积分58分
  • 威望8点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-06-09 17:00
to AllenZh:
app中怎么处理呢?
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-06-09 16:47
如果只是不想让机器进入节能模式,你不一定要驱动呀?APP可以的
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
zhuyanjv
驱动牛犊
驱动牛犊
  • 注册日期2004-04-20
  • 最后登录2008-02-19
  • 粉丝0
  • 关注0
  • 积分58分
  • 威望8点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-06-09 16:44
我其实就是想禁止电源节能就行了,不是要禁止用户操作,用操作模拟一下,想让系统发送电源的pnp命令而已。
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-06-09 16:15
这说明9x与2000在处理pnp方式上有所区别,对于wdm驱动这种区别不明显,但你的功能需要禁止用户进行休眠状态,这是非常规操作,因此你不能在pnp中去处理,我想你需要写vxd来实现,并且需要对电源管理部分进行拦截
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
游客

返回顶部