ExitWindowsEx-Funktion (winuser.h)

Meldet den interaktiven Benutzer ab, fährt das System herunter oder fährt das System herunter und startet es neu. Es sendet die WM_QUERYENDSESSION-Nachricht an alle Anwendungen, um festzustellen, ob sie beendet werden können.

Syntax

BOOL ExitWindowsEx(
  [in] UINT  uFlags,
  [in] DWORD dwReason
);

Parameter

[in] uFlags

Der Typ des Herunterfahrens. Dieser Parameter muss einen der folgenden Werte enthalten.

Wert Bedeutung
EWX_HYBRID_SHUTDOWN
0x00400000
Ab Windows 8: Sie können das System für einen schnelleren Start vorbereiten, indem Sie das flag EWX_HYBRID_SHUTDOWN mit dem flag EWX_SHUTDOWN kombinieren.
EWX_LOGOFF
0
Beendet alle Prozesse, die in der Anmeldesitzung des Prozesses ausgeführt werden, der die ExitWindowsEx-Funktion aufgerufen hat . Anschließend wird der Benutzer protokolliert.

Dieses Flag kann nur von Prozessen verwendet werden, die in der Anmeldesitzung eines interaktiven Benutzers ausgeführt werden.

EWX_POWEROFF
0x00000008
Schaltet das System herunter und schaltet den Strom aus. Das System muss die Abschaltfunktion unterstützen.

Der aufrufende Prozess muss über die berechtigung SE_SHUTDOWN_NAME verfügen. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

EWX_REBOOT
0x00000002
Fährt das System herunter und startet dann das System neu.

Der aufrufende Prozess muss über die berechtigung SE_SHUTDOWN_NAME verfügen. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

EWX_RESTARTAPPS
0x00000040
Fährt das System herunter und startet es dann neu, sowie alle Anwendungen, die mit der Funktion RegisterApplicationRestart für den Neustart registriert wurden. Diese Anwendung empfängt die WM_QUERYENDSESSION Nachricht, wobei lParam auf den ENDSESSION_CLOSEAPP-Wert festgelegt ist. Weitere Informationen finden Sie unter Richtlinien für Anwendungen.
EWX_SHUTDOWN
0x00000001
Schaltet das System bis zu einem Punkt herunter, an dem es sicher ist, den Strom auszuschalten. Alle Dateipuffer wurden auf den Datenträger geleert, und alle ausgeführten Prozesse wurden beendet.

Der aufrufende Prozess muss über die berechtigung SE_SHUTDOWN_NAME verfügen. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

Wenn Sie dieses Flag angeben, wird die Stromversorgung auch dann nicht ausgeschaltet, wenn das System die Abschaltfunktion unterstützt. Dazu müssen Sie EWX_POWEROFF angeben. Windows XP mit SP1: Wenn das System die Ausschaltfunktion unterstützt, wird die Stromversorgung durch Angabe dieses Flags deaktiviert.

 

Dieser Parameter kann optional einen der folgenden Werte enthalten.

Wert Bedeutung
EWX_FORCE
0x00000004
Dieses Flag hat keine Auswirkung, wenn Terminaldienste aktiviert sind. Andernfalls sendet das System die WM_QUERYENDSESSION-Nachricht nicht. Dies kann dazu führen, dass Anwendungen Daten verlieren. Daher sollten Sie dieses Flag nur im Notfall verwenden.
EWX_FORCEIFHUNG
0x00000010
Erzwingt das Beenden von Prozessen, wenn sie nicht innerhalb des Timeoutintervalls auf die WM_QUERYENDSESSION oder WM_ENDSESSION Nachricht reagieren. Weitere Informationen finden Sie in den Hinweisen.

[in] dwReason

Der Grund für die Einleitung des Herunterfahrens. Dieser Parameter muss einer der Gründe für das Herunterfahren des Systems sein.

Wenn dieser Parameter null ist, wird der SHTDN_REASON_FLAG_PLANNED Grundcode nicht festgelegt, und daher ist die Standardaktion ein nicht definiertes Herunterfahren, das als "Kein Titel aus diesem Grund gefunden" protokolliert wird. Standardmäßig handelt es sich auch um ein ungeplantes Herunterfahren. Je nachdem, wie das System konfiguriert ist, löst ein ungeplantes Herunterfahren die Erstellung einer Datei aus, die die Systemstatusinformationen enthält, wodurch das Herunterfahren verzögert werden kann. Verwenden Sie daher nicht null für diesen Parameter.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null. Da die Funktion asynchron ausgeführt wird, gibt ein Rückgabewert ungleich null an, dass das Herunterfahren initiiert wurde. Es gibt nicht an, ob das Herunterfahren erfolgreich ist. Es ist möglich, dass das System, der Benutzer oder eine andere Anwendung das Herunterfahren abbricht.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die ExitWindowsEx-Funktion gibt zurück, sobald sie den Herunterfahrvorgang initiiert hat. Das Herunterfahren oder Abmelden wird dann asynchron fortgesetzt. Die Funktion ist so konzipiert, dass alle Prozesse in der Anmeldesitzung des Aufrufers beendet werden. Wenn Sie also nicht der interaktive Benutzer sind, kann die Funktion erfolgreich sein, ohne den Computer tatsächlich herunterzufahren. Wenn Sie nicht der interaktive Benutzer sind, verwenden Sie die Funktion InitiateSystemShutdown oder InitiateSystemShutdownEx .

Ein Rückgabewert ungleich 0 (null) bedeutet nicht, dass die Abmeldung erfolgreich war oder sein wird. Das Herunterfahren ist ein asynchroner Prozess, der lange nach der Rückgabe des API-Aufrufs oder gar nicht auftreten kann. Selbst wenn der Timeoutwert 0 (null) ist, kann das Herunterfahren von Anwendungen, Diensten oder sogar dem System abgebrochen werden. Der Rückgabewert ungleich 0 (null) gibt an, dass die Überprüfung der Rechte und Parameter erfolgreich war und das System die Anforderung zum Herunterfahren akzeptiert hat.

Wenn diese Funktion aufgerufen wird, muss der Aufrufer angeben, ob Anwendungen mit nicht gespeicherten Änderungen zwangsweise geschlossen werden sollen. Wenn der Aufrufer das Schließen dieser Anwendungen nicht erzwingt und eine Anwendung mit nicht gespeicherten Änderungen in der Konsolensitzung ausgeführt wird, wird das Herunterfahren fortgesetzt, bis der bei der Konsolensitzung angemeldete Benutzer das Herunterfahren abbricht, Änderungen speichert, die Anwendung schließt oder das Schließen der Anwendung erzwingt. Während dieses Zeitraums kann das Herunterfahren nicht abgebrochen werden, außer vom Konsolenbenutzer, und ein weiteres Herunterfahren wird möglicherweise nicht initiiert.

Durch das Aufrufen dieser Funktion mit dem Wert des uFlags-Parameters , der auf EWX_FORCE festgelegt ist, wird diese Situation vermieden. Denken Sie daran, dass dies zu Datenverlust führen kann.

Verwenden Sie die SetProcessShutdownParameters-Funktion , um eine Herunterfahrpriorität für eine Anwendung relativ zu anderen Anwendungen im System festzulegen.

Während des Herunterfahrens oder Abmeldens wird ausgeführten Anwendungen eine bestimmte Zeit zur Reaktion auf die Herunterfahrensanforderung eingeräumt. Wenn diese Zeit abläuft, bevor alle Anwendungen beendet wurden, zeigt das System eine Benutzeroberfläche an, die es dem Benutzer ermöglicht, das System erzwungen herunterzufahren oder die Herunterfahranforderung abzubrechen. Wenn der EWX_FORCE Wert angegeben wird, erzwingt das System, dass ausgeführte Anwendungen nach Ablauf der Zeit beendet werden.

Wenn der EWX_FORCEIFHUNG Wert angegeben wird, erzwingt das System das Schließen von hängenden Anwendungen und zeigt das Dialogfeld nicht an.

Konsolenprozesse erhalten je nach Bedarf eine separate Benachrichtigung, CTRL_SHUTDOWN_EVENT oder CTRL_LOGOFF_EVENT. Ein Konsolenprozess leitet diese Nachrichten an seine HandlerRoutine-Funktion weiter. ExitWindowsEx sendet diese Benachrichtigungen asynchron; Daher kann eine Anwendung nicht davon ausgehen, dass die Konsolenbenachrichtigungen verarbeitet wurden, wenn ein Aufruf von ExitWindowsEx zurückgegeben wird.

Um das System herunterzufahren oder neu zu starten, muss der aufrufende Prozess die Funktion AdjustTokenPrivileges verwenden, um die berechtigung SE_SHUTDOWN_NAME zu aktivieren. Weitere Informationen finden Sie unter Ausführen mit speziellen Berechtigungen.

Beispiele

Ein Beispiel finden Sie unter Herunterfahren des Systems.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile winuser.h (windows.h einschließen)
Bibliothek User32.lib
DLL User32.dll
APIs ext-ms-win-ntuser-misc-l1-1-0 (eingeführt in Windows 8)

Weitere Informationen

AdjustTokenPrivileges

HandlerRoutine

Abmelden

SetProcessShutdownParameters

Herunterfahren

Funktionen zum Herunterfahren des Systems