StartService errore code: 2

03/04/2012 12:03 Tyrar#1
hallo.



ich habe mein kleines tool, das den service starten soll, läuft soweit auch alles!
wenn ich allerdings den service stoppe und dann wieder starten will returned StartService 0 und GetLastError gibt 2 zurück..

OpenSCManager und OpenService bekommen von mir SERVICE_ALL_ACCESS übergeben und das programm hat debug rechte!

DriverEntry/Unload funktionen werden auch sauber gecalled!

edit:
hab übrigens nicht rausgefunden was error code 2 bedeutet!
03/04/2012 13:51 jacky919#2
Quote:
Originally Posted by MSDN
2 (0x2): ERROR_FILE_NOT_FOUND The system cannot find the file specified.
siehe: [Only registered and activated users can see links. Click Here To Register...]

Vielleicht hilft es dir ja.
03/04/2012 15:13 Tyrar#3
hm... das kann an sich nicht sein.. das service handle wird erstellt, kann auch geöffnet werden und auch beim ersten mal gestartet werden... der pfad ist:
Code:
char szDirectory[MAX_PATH]={0};
szDirectory[0]=0x22;
GetCurrentDirectoryA(MAX_PATH-1,(char*)(((ULONG)szDirectory)+1));
lstrcatA(szDirectory,"\\HAC.sys\"");
oder
Code:
char* szDirectory="C:\\HAC\\HAC.sys";
was nach den informationen ausm msdn richtig wäre (dateien existieren auch)

edit:
ma nen screen von ServiWin

[Only registered and activated users can see links. Click Here To Register...]
03/05/2012 17:46 MrSm!th#4
1. Was soll das Leerzeichen vor dem Pfad?
2. Verzichte auf Funktionen wie GetCurrentDirectory, ich hab schon einige Bugs mit denen erlebt. Nimm lieber GetModuleFileName.
Hatte auch schon Fälle, da hat GetCurrentDirectory einfach mal nen völlig falschen Pfad zurückgegeben, wenn es vorher von einem anderen Modul gecalled wurde :<
03/05/2012 18:14 Tyrar#5
1. das ist ein " :p
2. funktioniert auch der direkte pfad nicht :|
03/05/2012 18:37 link#6
Zeig evtl. etwas mehr Code oder probier mal \tools\KmdManager\KmdManager.exe aus [Only registered and activated users can see links. Click Here To Register...].