如题,
声明:
#include <winioctl.h>
#define IOCTL_HAL_REBOOT CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
extern "C" __declspec(dllimport) BOOL KernelIoControl(
DWORD dwIoControlCode,
LPVOID lpInBuf,
DWORD nInBufSize,
LPVOID lpOutBuf,
DWORD nOutBufSize,
LPDWORD lpBytesReturned);
typedef void (WINAPI *_GwesPowerOffSystem)(void);
static _GwesPowerOffSystem GwesPowerOffSystemEx;
调用
重启:KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL);
待机:GwesPowerOffSystem();
这个两个都能正常使用
关机:SetSystemPowerState(NULL, POWER_STATE_OFF, POWER_FORCE);
找不到POWER_STATE_OFF, POWER_FORCE,这两个定义。
------解决方案--------------------
可以串口打印调试信息,看看SetSystemPowerState这个函数系统实现了没,wince有的函数是没有实现的。。。
或者就是SetSystemPowerState的使用权限问题。。。
------解决方案--------------------
刚刚看到一篇帖子,或许对你有用
http://www.cnblogs.com/wangweixf/archive/2008/12/08/1350226.html
------解决方案--------------------
搜搜你的系统里面有没有pm.h
#include <pm.h>
试试,不过支不支持,什么效果,要看你驱动里面电源管理部分做的怎么样吧。
------解决方案--------------------