主题:KernelIoControl 重启的问题

  共有34213人关注过本帖    
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   [只看该作者]

我原来用的效果像是软件重启,明白了也 就解决问题 了 ,非常感谢。

  单帖管理 | 引用 | 回复 回到顶部

返回首页

KernelIoControl 重启的问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: