¿Por qué el método RequestAdditionalTime () no funciona al reiniciar en Vista / 7?

He estado haciendo algunas pruebas exhaustivas de un servicio de Windows que he estado escribiendo en C # .Net 3.5. Estoy teniendo problemas para que Windows me dé el tiempo suficiente para que mi servicio se cierre correctamente cuando reinicio o apago la computadora a pesar de que estoy invocando el método RequestAdditionalTime () que debería actualizar el SCM y mantener mi servicio en funcionamiento. Mi código funciona correctamente si detengo manualmente el servicio sin embargo. Principalmente he estado probando este código en Windows Vista y Windows 7, luego de decidir probar el código en Windows Xp, todo funcionó perfectamente. ¿Alguien sabe por qué esta llamada no funciona en Vista / 7? Estoy pensando que necesito algún tipo de permiso para evitar que el sistema se apague, lo que se obtiene de forma predeterminada en Xp pero no en Vista / 7.

Respuestas a la pregunta(2)

Su respuesta a la pregunta