Delen via


Richtlijnen voor toepassingen

Toepassingen die worden uitgevoerd op Windows Vista en Windows Server 2008 moeten voldoen aan deze richtlijnen om ervoor te zorgen dat het opnieuw opstarten van toepassingen indien nodig kan worden afgesloten en opnieuw kan worden opgestart om updates te installeren. Services kunnen de richtlijnen gebruiken die worden beschreven in Guidelines for Services.

  • De Restart Manager vraagt GUI-toepassingen voor afsluiten op door een WM_QUERYENDSESSION melding te verzenden met de parameter lParam ingesteld op ENDSESSION_CLOSEAPP (0x1). Toepassingen mogen niet worden afgesloten wanneer ze een WM_QUERYENDSESSION bericht ontvangen omdat een andere toepassing mogelijk niet gereed is om af te sluiten. GUI-toepassingen moeten luisteren naar het WM_QUERYENDSESSION bericht en een waarde retourneren van TRUE- als de toepassing is voorbereid om af te sluiten en opnieuw te starten. Als er geen toepassing een waarde retourneert van FALSE-, verzendt restart Manager een WM_ENDSESSION bericht met de parameter lParam ingesteld op ENDSESSION_CLOSEAPP (0x1) en de wparam- parameter ingesteld op TRUE. Toepassingen moeten alleen worden afgesloten wanneer ze het WM_ENDSESSION bericht ontvangen. De manager voor opnieuw opstarten verzendt ook een WM_CLOSE bericht voor GUI-toepassingen die niet worden afgesloten bij het ontvangen van WM_ENDSESSION. Als een GUI-toepassing reageert op een WM_QUERYENDSESSION bericht door een waarde van FALSEte retourneren, wordt het afsluiten geannuleerd. Als het afsluiten echter wordt afgedwongen, wordt de toepassing ongeacht of deze wordt beëindigd.

  • Wanneer een GUI-toepassing een WM_ENDSESSION bericht ontvangt, moet de toepassing zich voorbereiden om af te sluiten binnen de opgegeven time-outperiode. Toepassingen moeten zich ten minste voorbereiden door gebruikersgegevens en statusgegevens op te slaan die nodig zijn na het opnieuw opstarten. Het wordt aanbevolen dat toepassingen de gebruikersgegevens en -status periodiek opslaan.

  • Met Restart Manager wordt een CTRL_C_EVENT melding verzonden naar consoletoepassingen die moeten worden afgesloten en opnieuw moeten worden opgestart. Wanneer een consoletoepassing een CTRL_C_EVENT melding ontvangt, moet de toepassing acties ondernemen die nodig zijn om een afsluiting binnen de opgegeven time-outperiode voor te bereiden. Consoletoepassingen moeten minimaal een HandlerRoutine--functie definiëren om de CTRL_C_EVENT melding af te handelen en alle gebruikersgegevens en statusgegevens op te slaan die nodig zijn na het opnieuw opstarten. Het wordt aanbevolen dat toepassingen de gebruikersgegevens en -status periodiek opslaan.

  • Als toepassingen niet worden afgesloten als reactie op de afsluitberichten, kunnen installatieprogramma's de RmForceShutdown optie van de RmShutdown-functie gebruiken om de toepassingen af te sluiten. Wanneer het installatieprogramma een geforceerd afsluiten opgeeft, probeert Restart Manager de toepassingen schoon af te sluiten door de afsluitberichten te verzenden, maar worden ze geforceerd afgesloten als dit mislukt. GUI-toepassingen en consoletoepassingen kunnen worden gedwongen om af te sluiten om de installatie van een kritieke beveiligingsupdate mogelijk te maken. Omdat dit kan leiden tot gegevensverlies, moeten toepassingen de afsluitberichten afhandelen en indien nodig op schone wijze afsluiten.

  • Toepassingen moeten zich registreren voor opnieuw opstarten met behulp van de RegisterApplicationRestart functie. Restart Manager kan alleen toepassingen opnieuw opstarten die zijn geregistreerd voor opnieuw opstarten. Dit is de enige manier waarop de herstartbeheer de opdrachtregelopdracht kan bepalen die moet worden gebruikt bij het opnieuw opstarten van de toepassing. Als de toepassing opnieuw moet worden geopend met een bepaalde opgeslagen status of gegevens, moet die informatie worden opgenomen in de opdrachtregelopdracht die is geregistreerd voor de toepassing.

    Notitie

    Als de opnieuw gestarte toepassing moet worden uitgevoerd in dezelfde map waarin de toepassing is uitgevoerd voordat deze wordt afgesloten, moet de toepassing de mapgegevens opslaan en vervolgens naar de map gaan nadat de toepassing opnieuw is opgestart.

     

    Notitie

    De functie RmRestart start geen toepassingen opnieuw die niet worden uitgevoerd als de momenteel aangemelde gebruiker. De functie RmRestart start start bijvoorbeeld geen toepassingen die zijn gestart met de opdracht Uitvoeren als die niet worden uitgevoerd als de momenteel aangemelde gebruiker. Deze toepassingen moeten handmatig opnieuw worden opgestart.

     

  • Wanneer Restart Manager bepaalt dat een systeem opnieuw moet worden opgestart om een update te installeren, worden er geen toepassingen en services afgesloten. In plaats daarvan laat het dit aan het installatieprogramma over om te bepalen wanneer een systeem opnieuw moet worden opgestart en de update moet worden geïnstalleerd. Installatieprogramma's kunnen de onderbreking beperken van gebruikers die worden veroorzaakt door updates waarvoor een systeem opnieuw moet worden opgestart met behulp van de functie ExitWindowsEx met de vlag EWX_RESTARTAPPS of de InitiateShutdown--functie met de vlag SHUTDOWN_RESTARTAPPS. Door deze vlaggen te gebruiken, zorgt u ervoor dat toepassingen die zijn geregistreerd voor opnieuw opstarten opnieuw worden opgestart na het opnieuw opstarten van het systeem, waardoor de impact op de gebruiker wordt geminimaliseerd.