请教关于背光驱动的问题?欢迎各位讨论!
各位好!
我正在做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...)
请问各位兄台:这个地方我该怎么处理??
[解决办法]
KernelIoControl函数是有内核来调用的,并不需要你自己调用。可以在KernelIoControl中通过串口打印些信息出来,看有没有被调用。
[解决办法]
这个在背光驱动里实现就行了吧,没必要改PM的代码。
[解决办法]
看看这里吧,希望有点帮助。
http://www.cnblogs.com/we-hjb/archive/2010/01/27/1657973.html
[解决办法]
原来是笔误啊!