Dela via


Riktlinjer för program

Program som körs i Windows Vista och Windows Server 2008 bör följa dessa riktlinjer för att säkerställa att Omstartshanteraren kan stänga av och starta om program om det behövs för att installera uppdateringar. Tjänster kan använda riktlinjerna som beskrivs i Riktlinjer för tjänster.

  • Restart Manager frågar GUI-program om avstängning genom att skicka ett WM_QUERYENDSESSION meddelande som har parametern lParam inställd på ENDSESSION_CLOSEAPP (0x1). Program bör inte stängas av när de får ett WM_QUERYENDSESSION meddelande eftersom ett annat program kanske inte är redo att stängas av. GUI-program bör lyssna efter WM_QUERYENDSESSION-meddelandet och returnera värdet TRUE- om programmet är redo att stängas av och startas om. Om inget program returnerar värdet FALSEskickar Restart Manager ett WM_ENDSESSION meddelande med parametern lParam inställd på ENDSESSION_CLOSEAPP (0x1) och parametern wparam inställd på TRUE. Program bör bara stängas av när de får meddelandet WM_ENDSESSION. Omstartshanteraren skickar också ett WM_CLOSE meddelande för GUI-program som inte stängs av när WM_ENDSESSIONtas emot. Om något GUI-program svarar på ett WM_QUERYENDSESSION meddelande genom att returnera värdet FALSEavbryts avstängningen. Men om avstängningen tvingas avslutas programmet oavsett.

  • När ett GUI-program får ett WM_ENDSESSION meddelande bör programmet förbereda sig för att stängas av inom den angivna tidsgränsen. Program bör åtminstone förberedas genom att spara användardata och tillståndsinformation som behövs efter en omstart. Vi rekommenderar att program regelbundet sparar användardata och tillstånd.

  • Omstartshanteraren skickar ett CTRL_C_EVENT meddelande till konsolprogram som måste stängas av och startas om. När ett konsolprogram får ett CTRL_C_EVENT meddelande bör programmet vidta nödvändiga åtgärder för att förbereda en avstängning inom den angivna tidsgränsen. Konsolprogram bör som minst definiera en HandlerRoutine--funktion för att hantera CTRL_C_EVENT-meddelandet och bör spara alla användardata och tillståndsinformation som kommer att behövas efter en omstart. Vi rekommenderar att program regelbundet sparar användardata och tillstånd.

  • Om några program inte stängs av som svar på avstängningsmeddelandena kan installationsprogram använda RmForceShutdown- alternativet för funktionen RmShutdown för att tvinga programmen att stängas av. När installationsprogrammet anger en tvingad avstängning försöker Restart Manager stänga av programmen genom att skicka avstängningsmeddelandena, men tvingar dem att stängas om detta misslyckas. GUI-program och konsolprogram kan tvingas stängas av för att aktivera installationen av en kritisk säkerhetsuppdatering. Eftersom detta kan leda till dataförlust bör program hantera avstängningsmeddelandena och stängas av rent när det behövs.

  • Program bör registrera sig för en omstart med hjälp av funktionen RegisterApplicationRestart. Restart Manager kan bara starta om program som har registrerats för omstart. Det här är det enda sättet som Omstartshanteraren kan avgöra vilket kommandoradskommando som ska användas när programmet startas om. Om programmet måste öppnas igen med ett sparat tillstånd eller data måste den informationen ingå i kommandoradskommandot som är registrerat för programmet.

    Not

    Om det omstartade programmet måste köras i samma katalog som det kördes i innan det stängdes av, måste programmet spara kataloginformationen och sedan ändra till katalogen efter omstart.

     

    Not

    Funktionen RmRestart startar inte om program som inte körs som den användare som är inloggad för tillfället. Funktionen RmRestart startar till exempel inte om program som startats med kommandot Kör som som inte körs som den inloggade användaren. Dessa program måste startas om manuellt.

     

  • När Restart Manager fastställer att en systemomstart krävs för att installera en uppdatering stängs inga program och tjänster av. I stället överlåter det till installationsprogrammet att bestämma när en omstart av systemet ska schemaläggas och uppdateringen installeras. Installatörer kan minska störningarna för användare som orsakas av uppdateringar som kräver en omstart av systemet med hjälp av funktionen ExitWindowsEx med flaggan EWX_RESTARTAPPS eller funktionen InitiateShutdown med flaggan SHUTDOWN_RESTARTAPPS. Med hjälp av dessa flaggor ser du till att program som registrerats för omstart startas om efter en systemomstart, vilket minimerar påverkan på användaren.