主题:KernelIoControl 重启的问题 共有34228人关注过本帖 |
---|
KIC |
1楼 |
KernelIoControl 重启的问题 Post By:2009-8-14 11:25:00 [只看该作者]
void  SysReboot()
{ KernelIoControl( IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL ); } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR    lpCmdLine, int       nCmdShow) { Write_Log("系统系统") Sleep(30000); Write_Log("准备重启系统") SysReboot(); //Sleep(1000); return 0; } 程序执行到重启这里 网络灯长亮不闪烁。。。等待了几分钟还是这样   重启需要多长时间?这里重启是操作系统重启了吗? |
|
单帖管理 | 引用 | 回复 |
lxs |
2楼 |
Post By:2009-8-14 11:55:00 [只看该作者]
// dwType = 1:     // for COLD_Boot
// dwType = 2:     // for WARM_Boot // dwType = 3:     // for SOFT_Boot void  SysReboot( DWORD dwType ) { KernelIoControl( IOCTL_HAL_REBOOT, (LPVOID)&dwType, sizeof(DWORD), NULL, 0, NULL ); } 你的参数写错了吧。改下参数试试看。 |
|
单帖管理 | 引用 | 回复 |
KIC |
3楼 |
Post By:2009-8-14 12:43:00 [只看该作者]
DWORD dwType = 3;
KernelIoControl( IOCTL_HAL_REBOOT, (LPVOID)&dwType, sizeof(DWORD), NULL, 0, NULL );  改成这样,还是原来的效果,重启失败。 |
|
单帖管理 | 引用 | 回复 |
lxs |
4楼 |
Post By:2009-8-14 12:52:00 [只看该作者]
把你的工程文件发到lxs@emtronix.com吧,我测试下。
|
|
单帖管理 | 引用 | 回复 |
KIC |
5楼 |
Post By:2009-8-14 12:54:00 [只看该作者]
DWORD dwType = 1;  重启成功  重启时网络灯先灭后亮
DWORD dwType = 2;  重启成功  重启时网络灯绿灯快速闪烁 DWORD dwType = 3;  重启失败 能不能解释一下三种重启的适用条件?   |
|
单帖管理 | 引用 | 回复 |
lqk |
6楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2009-8-14 14:09:00 [只看该作者]
dwType = 1:     冷重启动,整个系统复位重启,相当于按复位键
dwType = 2:     热重启,只复位外设,CPU不复位 dwType = 3:     软件重启,基本上不用这种方式。 |
单帖管理 | 引用 | 回复 |
非常感谢 |
7楼 |
Post By:2009-8-14 15:29:00 [只看该作者]
我原来用的效果像是软件重启,明白了也 就解决问题 了 ,非常感谢。
|
|
单帖管理 | 引用 | 回复 |