阅读:8169回复:5
当卸载inf安装的驱动程序后,如何删除对应的oemxx.inf 文件 大侠们帮忙
当卸载inf安装的驱动程序后,如何删除对应的oemxx.inf 文件 大侠们帮忙
|
|
沙发#
发布于:2010-08-27 14:05
WDK的difxAPI中有相应的函数DriverPackageUninstall,但最好是同一系列的函数DriverPackageInstall安装的才行,其中还要用到函数DriverPackageGetPath
还有setup的一系列函数,比如SetupUninstallNewlyCopiedInfs 这个我没用过,你可以参照MSDN看一下 |
|
板凳#
发布于:2011-09-29 18:02
调用SetupUninstallOEMInfW,Win2000下没有这个函数
|
|
地板#
发布于:2012-03-05 17:27
SetupCopyOEMInf 安装驱动,该函数可以得到oemxx.inf的路径,卸载驱动的时候要自己去删除该文件
|
|
地下室#
发布于:2012-07-16 13:31
执行删除后,用程序搜索对应目录下的oem*.inf文件,找到你的文件特定的关键词,对应删除文件即可。
如我的INF文件中有一个特殊的单词“mcmcmc”,执行如下语句即可。 int __cdecl RemoveOEMInf(CHAR *devid) { TCHAR windir[MAX_PATH]; GetWindowsDirectory(windir,MAX_PATH); strcat(windir,"\\inf\\*.inf"); CFileFind finder; BOOL bWorking = finder.FindFile(windir); CFile filetemp; char *buffer = NULL; char *tmpptr=NULL; LONG buffersize; while (bWorking) { bWorking = finder.FindNextFile(); //OutputDebugString( (LPCTSTR) finder.GetFileName()); filetemp.Open((LPCTSTR) finder.GetFilePath(), CFile::modeRead | CFile::shareDenyNone); buffersize=filetemp.GetLength(); buffer =(PCHAR) LocalAlloc(LPTR,buffersize); filetemp.ReadHuge(buffer,buffersize); filetemp.Close(); tmpptr=strstr(buffer,devid); if(tmpptr) { DeleteFile((LPCTSTR) finder.GetFilePath()); } if (buffer) LocalFree(buffer); } return 0; // Install Success } RemoveOEMInf("mcmcmc"); |
|
5楼#
发布于:2012-12-11 15:42
楼上天牛x了
www.bocaitong60.com |
|
|