关于设备电源状态D3的问题

huangbt_amoi 2007-08-09 08:49:39
为什么可以把系统从挂起状态的设备不能通过DevicePowerNotify申请进入D3状态呢?
小弟看了windows mobile 5.0的文档,但是看得一头雾水,请各位大哥大姐指教,本人不胜感激!以下是mobile的部分文档:

Devices that can wake the system from a suspend state should not request the D3 state through DevicePowerNotify. This is because enabling a device as a wake source is not always appropriate, unless the system is going to enter a suspend state. The driver cannot distinguish IOCTL_POWER_SET requests for D3 that it has initiated itself from those initiated by the Power Manager as part of a system power state transition.

If a non-wake-enabled device is in D3 and the system suspends, it should transition to D4 in its XXX_PowerDown (Device Manager) handler and back to D3 in its XXX_PowerUp (Device Manager) handler. If it cannot do this, it should not attempt to support D3, but should transition to D4 when requested to go into D3.
...全文
1776 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangbt_amoi 2007-08-15
  • 打赏
  • 举报
回复
郁闷了,这么多天,没人帮我解决
huangbt_amoi 2007-08-10
  • 打赏
  • 举报
回复
多谢楼上老兄,但我不是问如何让设备进入D3状态,而是为什么可以作为唤醒源的设备不要通过DevicePowerNotify申请进入D3状态,也就是:Devices that can wake the system from a suspend state should not request the D3 state through DevicePowerNotify
后面解释了原因:This is because enabling a device as a wake source is not always appropriate。但是这好像说得太含糊了吧!能不能给点详细点的解释?
Mobile_Writer 2007-08-10
  • 打赏
  • 举报
回复
可以通过
SetDevicePower()
来实现。
或者也试试SetSystemPowerState()
来试试。
正常情况下D0到D4是如下定义的,但有的时候不一定,有OEM决定。
//*****************************************************************************
// T Y P E D E F S
//*****************************************************************************

//
// Device Power States
//
typedef enum _CEDEVICE_POWER_STATE {
PwrDeviceUnspecified = -1,
D0 = 0, // Full On: full power, full functionality
D1, // Low Power On: fully functional at low power/performance
D2, // Standby: partially powered with automatic wake
D3, // Sleep: partially powered with device initiated wake
D4, // Off: unpowered
PwrDeviceMaximum
} CEDEVICE_POWER_STATE, *PCEDEVICE_POWER_STATE;
huangbt_amoi 2007-08-10
  • 打赏
  • 举报
回复
自己顶
huangbt_amoi 2007-08-10
  • 打赏
  • 举报
回复
急啊,急!!!!
huangbt_amoi 2007-08-09
  • 打赏
  • 举报
回复
快回复啊,在线等!
tong20037 2007-08-09
  • 打赏
  • 举报
回复
路过~
全套源代码,请咨询 ny_mrzhang@hotmail.com QQ:97302751 以前的协议是这样的。。。车载设备发往网络中心位置数据-80[功能] 车载设备向网络中心发送当前位置信息[去向] 网络中心[数据入库] 网络中心收到数据后将数据保存到动态位置数据表中 (DynData)[格式] 29 29 80 len1 len2 d3d2d1d0 yymmddhhmmss jjjj wwww ssff st lichen1 lichen2 lichen3 st1st2st3 st4 v1v2v3v4v5v6v7v8 len1 len2: 包长d3d2d1d0: 伪IP,终端ID号yymmddhhmmss:年月日时分秒日期表示范围:年份,后两位 ;月份,1-12;日期,1-31时间表示范围:小时,00——23;分钟,00——59;秒,00——59时、分、秒均采用压缩BCD编码。[例如]: 10点23分15秒表示为: 10H,23H,15Hjjjj:经度经度表示范围:000度00.000分——179度59.999分;采用压缩BCD编码,但最高位是符号位。“正”表示“东经”,“负”表示“西经”;“分”的单位是:千分之一分。[例如]: 西经130度45.608分表示为:(注意:1度=60分) 13H,04H,56H,08Hwwww:纬度纬度表示范围:00度00.000分——89度59.999分;采用压缩BCD编码,但最高位是符号位。“正”表示“北纬”,“负”表示“南纬”;“分”的单位是:千分之一分。[例如]: 南纬30度37.901分表示为: 3H,03H,79H,01Hssff:速度方向速度表示方法:表示范围:0——9999公里/小时采用压缩BCD编码。[例如]: 120公里/小时表示为: 01H,20H方位表示方法:表示范围:000——359度采用压缩BCD编码,正北为0度,顺时针方向计数。单位为:度。[例如]: 154度表示为: 01H,54Hst:定位,天线,电源状态定位状态由单字节组成,各位含义如下: D7 D6 D5 D4 D3 D2 D1 D0D7 定位标志0 GPS未定位1 GPS已定位D6 D5 1 1 GPS正常1 0 GPS天线短路0 1 GPS天线开路0 0 GPS天线故障D4 D3 电源状态1 1 正常1 0 主电源掉电0 1 主电源过高或过低 D2 D1 D0 保留 lichen1 lichen2 lichen3:里程数 HEX 格式:0——0XFFFFFF (0——16777215)米st1st2st3 st4:车辆状态现在协议格式:*HQ,000,S12,130305,60# 上传短信*HQ,000,S4,121212,0F,FF# 速度显示*HQ,000,S4,121212,9F,FF# 断油断电

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧