000
04.11.2004, 11:27 Uhr
Joda
|
Hi
Wer kann mir sagen wie ich unter Win 200 und XP einen Firewire Treiber installiert und deinstalliert. Möchte dies über die sys Datei machen und nicht über die inf Datei. Habe ein Programm geschrieben das den Treiber deinstalliert. Geht aber nicht dynamisch sondern man muss das System neu starten. Nach dem start kommt der PNP Manager und ich kann durch Auswahl der sys Datei den Treiber installieren. Gibt es eine Möglichkeit den Treiber im gleichen Arbeitsgang deinstallieren und auch gleich zu installieren? Wenn ja wäre ich über Hilfe sehr dankbar. Ein Sampler in VC++ 6 oder 7 wäre seht nett.
lg Karli
C++: |
int _tmain(int argc, _TCHAR* argv[]) {
//sys Datei z.B mytreiber.sys
LPSTR ServiceName = "mytreiber"; LPSTR ServiceDisplayName = "mytreiber";
// lokale Variablen vorbereiten SC_HANDLE hSCManager = NULL; SC_HANDLE hService = NULL;
// SCM öffnen if((hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE)) == NULL) { // Fehler beim Öffnen #ifdef _DEBUG _tprintf(TEXT("Fehler beim Oeffnen des SCM\n")); #endif // Zurück return -1; }
if (!(hService = OpenService(hSCManager, "mytreiber", STANDARD_RIGHTS_REQUIRED))) { // Fehler melden #ifdef _DEBUG _tprintf(TEXT("Oeffnen des Services fehlgeschlagen!")); #endif // zurück return -1; }
if (!DeleteService(hService)) { // Fehler melden #ifdef _DEBUG _tprintf(TEXT("Fehler beim Deinstallieren")); #endif
// return return -1; }
// Handle zum Service schließen CloseServiceHandle(hService);
// Handle zum SCM schließen CloseServiceHandle(hSCManager);
// Alles ok #ifdef _DEBUG _tprintf(TEXT("Service erfolgreich deinstalliert\n")); #endif //Reboot System RebootSystem();
return 0;
}
|
Dieser Post wurde am 04.11.2004 um 17:11 Uhr von Windalf editiert. |