请教关于背光驱动的问题?欢迎各位讨论!

李四   2010-4-26 10:18 楼主
各位好!
我正在做WINCE下的背光驱动
首先
  我提供给PM.EXE 我的背光支持电源管理的能力为:D0、D1、D4
  并且在D0时我让背光亮,D1和D4时我都让背光关闭 相关函数:
  BOOL BackLightSetState(DWORD dwContext, CEDEVICE_POWER_STATE state)
  目前当sleep时,设备(背光)驱动自动进入到D4状态,将背光关闭,当ON状态(唤醒)时,设备(背光)驱动自动进入到
  D0状态,将背光打开。

然后我又把PM中的PDD层拿到我的BSP下编译,通过跟踪代码,发现当我在属性->背光超时,设置timeout时间后
当时间超时,PM.EXE的状态从UserActive切换到UserInactivity再到UserIdle
通过common.reg发现UserIdle对应的设备电源管理状态是D1,

可是:PM的系统电源管理状态已经进入到userIdle,而我的设备电源管理状态(背光驱动)并没进入到D1

通过代码发现,如果想让设备电源管理状态(背光驱动)进入到D1状态,必须通过IOCTL_POWER_SET

可是我看PM的PDD层并没有主动调用这个KernelIoControl(IOCTL_POWER_SET...)

请问各位兄台:这个地方我该怎么处理??

回复评论 (7)

KernelIoControl函数是有内核来调用的,并不需要你自己调用。可以在KernelIoControl中通过串口打印些信息出来,看有没有被调用。
点赞  2010-4-26 10:28
这个在背光驱动里实现就行了吧,没必要改PM的代码。
点赞  2010-4-26 10:29

4楼 kit 

引用: 引用 1 楼 retrymy 的回复:
KernelIoControl函数是有内核来调用的,并不需要你自己调用。可以在KernelIoControl中通过串口打印些信息出来,看有没有被调用。

没有被调用!
点赞  2010-4-26 10:30
请问在:
控制面板->power中有useridle systemidle suspend的超时时间设置
同样在:
控制面板->diplay->backlight中也有个超时时间设置(我目前就是设置这个超时时间)

这两个超时时间有什么区别??
我在注册表中:
[HKEY_LOCAL_MACHINE\ControlPanel\Backlight]
        "BatteryTimeout"=dword: 3c
        "ACTimeout"=dword:78
        "UseBattery"=dword:1
        "UseExt"=dword:1
        "Brightness"=dword:0f
        "UserC"=dword:1
        "AdvancedCPL"="AdvBacklight"
这里的几个timeout是指的哪个timeout值??
点赞  2010-4-26 10:38
看看这里吧,希望有点帮助。
[url=http://www.cnblogs.com/we-hjb/archive/2010/01/27/1657973.html][/url]
点赞  2010-4-26 11:19
thank you 各位:
   找到原因了
我在设置D0 ,D1 ,D4状态支持的时候,把D1打成D0了
点赞  2010-4-26 11:44
原来是笔误啊!
点赞  2010-4-26 11:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复