阅读:2093回复:5
为什么win98上SetupDiCreateDeviceInfo执行后会报错呀???
我在做98上的modem自动安装程序,代码如下,在执行到SetupDiCreateDeviceInfo()函数时会报0x000000d错误,同样的代码在win2k上执行就没有问题,请问谁知道这是怎么回事呀??
int InstallRootEnumeratedDriver(IN LPGUID lpGUID, IN LPCTSTR lpszHardwareID , IN LPCTSTR lpszDescription, IN LPCTSTR lpszInfName OPTIONAL, OUT LPTSTR lpszInstanceID OPTIONAL, OUT LPBOOL pfNeedReboot OPTIONAL, IN LPCTSTR lpszComName ) { int ret = ERROR_SUCCESS; DWORD dwEnumIndex; char szClassName[100]; HDEVINFO hdi = NULL; SP_DEVINFO_DATA hDev; SP_DEVINSTALL_PARAMS hInstParam = { 0 } ; SP_DRVINFO_DATA hDrv = { 0 } ; hDev.cbSize = sizeof(SP_DEVINFO_DATA); hInstParam.cbSize = sizeof(SP_DEVINSTALL_PARAMS); hDrv.cbSize = sizeof(SP_DRVINFO_DATA); memset(&hDev,0,sizeof(hDev)); //try //{ //检测设备是否已经安装 if(FindExistingDevice(lpGUID , lpszHardwareID , lpszInstanceID)) return ERROR_SUCCESS; if(!SetupDiClassNameFromGuid(lpGUID , szClassName , sizeof(szClassName) ,NULL)) printf(\"1111111111\\n\"); if((hdi = SetupDiCreateDeviceInfoList(lpGUID , NULL))==NULL) printf(\"222222222222\\n\"); //创建新设备信息。如果设备已经存在,有异常产生 //tong if(!SetupDiCreateDeviceInfo(hdi , szClassName, lpGUID , lpszDescription, NULL , DICD_GENERATE_ID , &hDev)) hDev.cbSize = sizeof(SP_DEVINFO_DATA); if(!SetupDiCreateDeviceInfo(hdi,(const char *)szClassName,lpGUID,NULL,NULL,DICD_GENERATE_ID,&hDev)) { printf(\"33333333333333\\n\"); ret = GetLastError (); } if(!SetupDiGetDeviceInstanceId(hdi , &hDev ,lpszInstanceID , MAX_PATH , NULL)) { printf(\"444444444444444\\n\"); ret = GetLastError (); } 。。。。。。。 |
|
沙发#
发布于:2004-05-21 16:59
等待恢复呀!!!!!!
另外,在win98上执行的时候,到SetupDiCreateDeviceInfo(hdi , szClassName, lpGUID , lpszDescription, NULL , DICD_GENERATE_ID , &hDev) 一句报错,错误号为:0x0000000d,看了帮助说这是“数据错误”,我的hdi是前面函数得到的句柄,szClassName是“Modem”,lpGUID 是GUID const CLASS_GUID = {0x4D36E96DL, 0xe325, 0x11ce, {0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18}}; 符值过来的,hDev是SP_DEVINFO_DATA结构,初始化为0的。。。。实在是看不出来哪里错了呀:( 请各位给支个招行不?? 谢谢了 |
|
板凳#
发布于:2004-05-22 01:19
找了n久 没有人回答过这个问题
yumen |
|
地板#
发布于:2004-05-22 09:39
界个界个。。。。。。哎。。。。。。
这个网站真的好像没有人回答win98上的问题。。。win98就这么遭人冷落的么??? |
|
地下室#
发布于:2004-05-25 18:15
我现在也在研究这方面的问题。
|
|
5楼#
发布于:2004-05-25 18:31
噢?太好了,我刚看了你发的帖子,你说“我的驱动程序在win98下正常,在win2000下有感叹号”。。。我和你正好相反,我的win2000下没问题,win98下就是运行SetupDiCreateDeviceInfo()报错,我们能不能互通有无呀:)
|
|