Modifiche di arresto per Windows Vista

La tabella seguente riepiloga le differenze tra l'arresto in Windows Vista e Windows XP.

Funzionalità Windows XP Windows Vista
Blocco dell'arresto Le applicazioni possono ritardare la risposta a WM_QUERYENDSESSION per 5 secondi, quindi il sistema consente all'utente di terminare l'applicazione. Le applicazioni che restituiscono TRUE in risposta a WM_QUERYENDSESSION possono ritardare la risposta a WM_ENDSESSION per 5 secondi, quindi il sistema consente all'utente di terminare l'applicazione. Le applicazioni possono ritardare la risposta alle WM_QUERYENDSESSION per 5 secondi, quindi il sistema consente all'utente di continuare o annullare l'arresto. Le applicazioni che restituiscono TRUE in risposta a WM_QUERYENDSESSION possono ritardare la risposta a WM_ENDSESSION per 5 secondi, quindi il sistema consente all'utente di continuare o annullare l'arresto.
Annullamento dell'arresto Se un'applicazione restituisce FALSE in risposta alla WM_QUERYENDSESSION, l'arresto viene annullato nella maggior parte dei casi. Tuttavia, non viene visualizzata alcuna interfaccia utente, pertanto l'utente potrebbe non essere consapevole che l'arresto è stato annullato. Se un'applicazione restituisce FALSE in risposta alla WM_QUERYENDSESSION, viene comunque visualizzata nell'interfaccia utente di arresto. Si noti che il sistema non consente alle applicazioni console o alle applicazioni senza una finestra visibile di annullare l'arresto. Queste applicazioni vengono terminate automaticamente se non rispondono a WM_QUERYENDSESSION o WM_ENDSESSION entro 5 secondi o se restituiscono FALSE in risposta alla WM_QUERYENDSESSION.
Arresto dell'interfaccia utente Il sistema visualizza una finestra di dialogo per ogni arresto di blocco dell'applicazione. Se l'utente fa clic sul pulsante End Now , l'applicazione viene terminata. Se l'utente fa clic sul pulsante Annulla , l'arresto viene annullato e l'applicazione continua a essere eseguita. Il sistema visualizza un'interfaccia utente a schermo intero che identifica tutte le applicazioni che bloccano l'arresto e i relativi motivi per farlo (se hanno registrato un motivo usando ShutdownBlockReasonCreate).

 

Procedure consigliate

  • Le applicazioni non devono bloccare l'arresto. Rispondere alle WM_QUERYENDSESSION il più rapidamente possibile e rinviare le attività di pulizia fino all'elaborazione del messaggio di WM_ENDSESSION .
  • Le applicazioni che devono bloccare l'arresto devono usare la nuova funzione ShutdownBlockReasonCreate per registrare una stringa che spiega il motivo per l'utente. L'utente può decidere se continuare o annullare l'arresto.
  • Le applicazioni non possono basarsi sull'impossibilità di bloccare l'arresto.