windows - CreateProcess returnerer ikke 0, men GetExitCodeProcess () returnerer 128

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg opretter en applikation, der starter en anden proces ved hjælp af CreateProcess (). Og i den overordnede proces vil jeg bruge GetExitCodeProcess () for at kontrollere om processen er aktiv eller ej.


Her CreateProcess () er vellykket (returnerede en ikke negativ værdi), men GetExitCodeProcess () returnerer 128 (Der er ingen børneprocesser at vente på). Jeg ser ikke noget spor af barnet processen startet (normalt nogle debugs). Det sker periodisk.


Enhver ide om, hvad der virkelig skete med børneprocessen ?. Hvor får vi flere oplysninger (i system/applikationshændelseslogfiler?).


Vær venlig at guide mig.


Tak,
Naga

Bedste reference


Tak for dine kommentarer.


Jeg har fundet følgende MSDN artikler, der giver de samme symptomer og opløsning for problemet.





Cmd.exe, Perl.exe eller andre konsoltilstandsprogrammer mislykkes i at initialisere korrekt og afslutte for tidligt, når de startes af en tjeneste ved hjælp af API'erne CreateProcess () eller CreateProcessAsUser (). Opkaldsprocessen har ingen måde at vide, at den lancerede konsolmodusansøgning er afsluttet for tidligt.


I nogle tilfælde kaldes GetExitCode () mod den fejlede proces, som angiver følgende exitkode:
128L ERROR\_WAIT\_NO\_CHILDREN - Der er ingen børneprocesser at vente på.





http://support.microsoft.com/kb/156484
http://support.microsoft.com/kb/142676/EN-US[1]


http://support.microsoft.com/kb/175687/EN-US[2]


Tak,
Naga