WM _ QUERYENDSESSION-Meldung

Die WM _ QUERYENDSESSION-Nachricht wird gesendet, wenn der Benutzer die Sitzung beendet oder wenn eine Anwendung eine der Funktionen zum Herunterfahren des Systems aufruft. Wenn eine Anwendung 0 (null) zurückgibt, wird die Sitzung nicht beendet. Das System beendet das Senden von WM _ QUERYENDSESSION-Nachrichten, sobald eine Anwendung 0 (null) zurückgibt.

Nach der Verarbeitung dieser Nachricht sendet das System die WM _ ENDSESSION-Nachricht mit dem wParam-Parameter, der auf die Ergebnisse der WM _ QUERYENDSESSION-Nachricht festgelegt ist.

Ein Fenster empfängt diese Nachricht über seine WindowProc-Funktion.

LRESULT CALLBACK WindowProc( 
  HWND hwnd,      // handle to window 
  UINT uMsg,      // message identifier 
  WPARAM wParam,  // not used 
  LPARAM lParam   // logoff option
);

Parameter

Hwnd

Ein Handle für das Fenster.

uMsg

Der WM _ QUERYENDSESSION-Bezeichner.

wParam

Dieser Parameter ist für die zukünftige Verwendung reserviert.

lParam

Dieser Parameter kann einen oder mehrere der folgenden Werte sein. Wenn dieser Parameter 0 ist, wird das System heruntergefahren oder neu gestartet (es ist nicht möglich, zu bestimmen, welches Ereignis auftritt).

Wert Bedeutung
ENDSESSION _ CLOSEAPP-0x00000001
Die Anwendung verwendet eine Datei, die ersetzt werden muss, das System wird serviced, oder die Systemressourcen sind erschöpft. Weitere Informationen finden Sie unter Richtlinien für Anwendungen.
ENDSESSION _ CRITICAL
0x40000000
Die Anwendung wird zum Herunterfahren gezwungen.
ENDSESSION _ LOGOFF-0x80000000
Der Benutzer wird abgemeldet. Weitere Informationen finden Sie unter Logging Off.

Beachten Sie, dass dieser Parameter eine Bitmaske ist. Um auf diesen Wert zu testen, verwenden Sie einen bitweisen Vorgang. nicht auf Gleichheit testen.

Rückgabewert

Anwendungen sollten die Absichten des Benutzers achten und TRUE zurückgeben. Standardmäßig gibt die DefWindowProc-Funktion TRUE für diese Meldung zurück.

Wenn das Herunterfahren das System oder das Medium beschädigt, das bzw. das bzw. das gerade geschaltet wird, kann die Anwendung FALSE zurückgeben. Es ist jedoch eine bewährte Methode, die Aktionen des Benutzers zu achten.

Hinweise

Wenn eine Anwendung TRUE für diese Nachricht zurückgibt, empfängt sie die WM _ ENDSESSION-Nachricht, unabhängig davon, wie die anderen Anwendungen auf die WM _ QUERYENDSESSION-Nachricht reagieren. Jede Anwendung sollte SOFORT nach dem Empfang dieser Nachricht TRUE oder FALSE zurückgeben und alle Bereinigungsvorgänge zurückverlangen, bis sie die WM _ ENDSESSION-Nachricht empfängt.

Anwendungen können eine Benutzeroberfläche anzeigen, in der der Benutzer beim Herunterfahren zur Eingabe von Informationen aufgefordert wird. Dies wird jedoch nicht empfohlen. Nach fünf Sekunden zeigt das System Informationen zu den Anwendungen an, die das Herunterfahren verhindern, und ermöglicht es dem Benutzer, sie zu beenden. Beispielsweise zeigt Windows XP ein Dialogfeld an, während Windows Vista einen Vollbildbildschirm mit zusätzlichen Informationen zu den Anwendungen anzeigt, die das Herunterfahren blockieren. Wenn Ihre Anwendung das Herunterfahren des Systems blockieren oder verschieben muss, verwenden Sie die ShutdownBlockReasonCreate-Funktion. Weitere Informationen finden Sie unter Shutdown Changes for Windows Vista.

Konsolenanwendungen können die Funktion SetConsoleCtrlHandler verwenden, um Benachrichtigungen zum Herunterfahren zu erhalten.

Dienstanwendungen können die RegisterServiceCtrlHandlerEx-Funktion verwenden, um Benachrichtigungen zum Herunterfahren in einer Handlerroutine zu empfangen.

Beispiele

Ein Beispiel finden Sie unter Logging Off.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows [XP-Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server)
Windows UWP-Apps für Server [ 2003-Desktop-Apps |]
Header
WinUser.h (include Windows.h)

Siehe auch

Abmelden

Herunterfahren

DefWindowProc

ExitWindows

SetProcessShutdownParameters

WM _ ENDSESSION