我遇到了如下问题:
1、在Win2000中,在设备管理器中将某一硬件卸载,并在winnt\inf目录下将其INF文件删除,在winnt\system32\drivers目录下将其.sys文件删除。
2、这时用UpdateDriverForPlugAndPlayDevices安装这一硬件的驱动不成功,但我可以用SetupCopyOEMInf来安装其INF文件,这时重启系统或在设备管理器中进行扫描硬件改动,此硬件的驱动才能装上。请问用程序怎样实现扫描硬件改动的功能?
或者用什么其它的方法来实现我的第二个步骤可以不重启系统或扫描就可以实现驱动的安装?
1、在Win2000中,在设备管理器中将某一硬件卸载,并在winnt\inf目录下将其INF文件删除,在winnt\system32\drivers目录下将其.sys文件删除。
2、这时用UpdateDriverForPlugAndPlayDevices安装这一硬件的驱动不成功,但我可以用SetupCopyOEMInf来安装其INF文件,这时重启系统或在设备管理器中进行扫描硬件改动,此硬件的驱动才能装上。请问用程序怎样实现扫描硬件改动的功能?
或者用什么其它的方法来实现我的第二个步骤可以不重启系统或扫描就可以实现驱动的安装?
解决方案 »
- 请tabby进来接分
- 关于打开文件夹的问题!
- 再度散分,岁末摘星,只差三分了,呵呵,希望今天能得偿所愿~~~~HOHO
- 紧急求助关于acess数据库
- 请教一个关于CSoket类的Accept方法的问题
- 怎样将CString或char型转换为Date型
- 奇怪
- 调用DoDragDrop后,怎么判断是拖放到了本进程还是其他进程
- 右键弹出菜单怎么只能显示一条很窄的纵边
- CexaView::CexaView():m_rectEllipse(0,0,20,20)怎么理解?
- 有没人用过Visual Studio .NET 2003,进来一下
- 为什么MSDN中没有CMSFlexGrid的信息?从哪里能得到该控件的详细使用说明?
{
DEVINST devInst;
CONFIGERT status;
//得到设备管理树的根结点
status = CM_Locate_DevNode(&devInst,NULL,CM_LOCATE_DEVNODE_NARMAL);
if (status!=CR_SUCCESS)
{
printf("CM_Locate_DevNode failed: %x\n",status);
return FALSE;
} //刷新
status = CM_Reenumerate_DevNode(devInst,0);
if (status !=CR_SUCCESS)
{
printf("CM_Reenumerate_DevNode failed: %x\n",status);
return FALSE;
}
return TRUE;
}
直接使用这个函数就可以了。如果电脑上没有安装DDK,也可以通过引用cfgmgr32.dll,里面已经封装了这两个函数。