Warum funktioniert die RequestAdditionalTime () -Methode beim Neustart in Vista / 7 nicht?

Ich habe einige umfangreiche Tests eines Windows-Dienstes durchgeführt, den ich in C # .Net 3.5 geschrieben habe. Ich habe Probleme, Windows zu veranlassen, mir genügend Zeit zu geben, damit mein Dienst ordnungsgemäß heruntergefahren werden kann, wenn ich den Computer neu starte oder herunterfahre, obwohl ich die RequestAdditionalTime () -Methode aufrufe, mit der der SCM aktualisiert und mein Dienst ausgeführt werden soll. Mein Code funktioniert ordnungsgemäß, wenn ich den Dienst jedoch manuell beende. Ich habe diesen Code hauptsächlich in Windows Vista und Windows 7 getestet, als ich mich entschied, den Code in Windows XP zu testen, funktionierte alles perfekt. Weiß jemand, warum dieser Aufruf in Vista / 7 nicht funktioniert? Ich denke, ich brauche eine Art Erlaubnis, um zu verhindern, dass das System heruntergefahren wird, was ich standardmäßig in XP, aber nicht in Vista / 7 erhalte.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage