Remove Gerätetreiber
-
Hallo,
weis jemand wie man mittels der SetupApi Gerätetreiber deinstallieren kann?
In der Dokumentation des DDK ist nicht viel zu finden.Es geht um Netzwerkkarten- und Modemeinträge.
Ich dachte das dies über den Inf-File möglich wäre.
Hier ein Codebeispiel für meinen Ansatz. aber irgendwie will er nicht.int main(int argc, char* argv[]) { PSP_DEVICE_INTERFACE_DETAIL_DATA pspdidd; PSP_DEVINFO_DATA pdevData; PSP_DEVINFO_DATA drvData; HDEVINFO hDevInfo; GUID ClassGUID; TCHAR ClassName[MAX_CLASS_NAME_LEN]; LPTSTR INFFile = argv[1]; CString strInfClassID; BOOL isInstall = FALSE; ZeroMemory((PVOID)&spdid, sizeof(spdid)); spdid.cbSize = sizeof(spdid); // Use the INF File to extract the Class GUID. if(!SetupDiGetINFClass(INFFile,&ClassGUID,ClassName,sizeof(ClassName),0)) { return DisplayError(TEXT("GetINFClass")); } // GUID aus Inffile einlesen LPOLESTR InfBuffer; StringFromCLSID( ClassGUID, &InfBuffer ); strInfClassID = InfBuffer; CoTaskMemFree(InfBuffer); hDevInfo = SetupDiGetClassDevs(&ClassGUID, NULL, NULL, NULL); if(hDevInfo == INVALID_HANDLE_VALUE) { printf("SetupDiGetClassDevs nicht gefunden.\n "); } if (!SetupDiGetSelectedDriver(hDevInfo, pdevData, &drvData)) { printf("SetupDiGetSelectedDriver Failed.\n"); } else { if(SetupDiCallClassInstaller(DIF_REMOVE, hDevInfo,&drvData)) { printf("Driver remove.\n"); } else { printf("Driver not remove.\n"); } } return 0; }
Danke P.Prescher