ziyun
驱动小牛
驱动小牛
  • 注册日期2003-07-28
  • 最后登录2009-05-31
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望109点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2005-01-05 10:38
我按照你的说法做了,发现在播放的时候还是关闭了背光,下面是我的代码:
HANDLE hsysevent=OpenEvent(EVENT_ALL_ACCESS,FALSE,_T("PowerManager/SystemIdleTimerReset"));
BacklightDrvGetRegistryData();
TimeOut = Backlight_ACTimeOut;
if(TimeOut)
{
      if(WaitForSingleObject(hsysevent, 500*TimeOut)==WAIT_OBJECT_0)
     {
}
else
{
DWORD RetValue = WaitForSingleObject(gPenIntrEvent, 500*TimeOut);
………………

我的想法是,先等待power信号一半的等待时间,如果是等待超时,则等待另一半的外部输入信号,如果还是超时,则关闭背光
辛苦你,帮我分析一下,为什么没有产生预期的效果?
非常感谢!
ziyun
驱动小牛
驱动小牛
  • 注册日期2003-07-28
  • 最后登录2009-05-31
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望109点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2005-01-05 10:42
说错了,我是这样想的,比如,我设置1分钟后关闭背光,那么,我先等待30s看有没有power信号发生,如果没有,就再等30s,看有没有外部输入发生,如果都没有,就关闭背光
ziyun
驱动小牛
驱动小牛
  • 注册日期2003-07-28
  • 最后登录2009-05-31
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望109点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2005-01-05 11:11
我这样做的结果是系统等待一半的时间就直接关闭背光了,难道不是先等待WaitForSingleObject(hsysevent一半的时间,然后再等待WaitForSingleObject(gPenIntrEvent另一半的时间,而是两个信号同时发生了?
hijacker2000
驱动牛犊
驱动牛犊
  • 注册日期2004-06-23
  • 最后登录2005-05-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2005-01-05 13:31
ziyun兄,看看这个,或许对你有帮助。

GWES reads an event name from HKEY_LOCAL_MACHINE\System\GWE\ActivityEvent. If an event is named in this key and its handle can be opened, the event will be signaled every time the GWES user input thread wakes up to handle an input event

The CXPORT module in the networking stack will periodically signal an activity timer event named by HKEY_LOCAL_MACHINE\Comm\CXPORT\NoIdleTimerEvent whenever at least one socket is in the connected state. Many OEMs may choose to set the "NoIdleTimerReset" flag in the registry if they are using activity timers.

The PCMCIA driver will signal an activity timer event named by HKEY_LOCAL_MACHINE\Drivers\PCMCIA\StatusChangeActivityEvent whenever a card is ejected or inserted
wwei_wang
驱动大牛
驱动大牛
  • 注册日期2002-06-07
  • 最后登录2006-06-23
  • 粉丝0
  • 关注0
  • 积分77分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2005-01-06 08:58
“我这样做的结果是系统等待一半的时间就直接关闭背光了,难道不是先等待WaitForSingleObject(hsysevent一半的时间,然后再等待WaitForSingleObject(gPenIntrEvent另一半的时间,而是两个信号同时发生了?”
-------------------

兄弟为何要这么做?建议驱动中的监视线程只等待( _T("PowerManager/SystemIdleTimerReset") )这一个事件,有外部输入时,激活这个事件就可以了。
Come on, let us drive the world.
ziyun
驱动小牛
驱动小牛
  • 注册日期2003-07-28
  • 最后登录2009-05-31
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望109点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2005-01-06 09:36
在common。reg中有如下话:
; This registry setting tells GWES to signal the Power Manager
; when user input devices are active.  GWES will reset this activity timer
; whenever it dequeues any type of input event (keyboard, mouse, or
; touch) from its internal queue.
[HKEY_LOCAL_MACHINE\SYSTEM\GWE]
    "ActivityEvent"="PowerManager/ActivityTimer/UserActivity"÷
我的英文不好,不知道是不是这个意思:这个注册表信息设置告诉gwes当系统有外部输入时,告诉PM,如果时这样的话,那么我只需要检测这个PowerManager/ActivityTimer/UserActivity就可以了,对不对??
上一页 下一页
游客

返回顶部