Skip to content

Commit 27e147a

Browse files
committed
[WINLOGON] Fixes for logon/logoff steps and notifications (reactos#8325)
- The `LogonHandler` notification should be invoked only once for a given logon operation. It is invoked in `HandleLogon()` after access to the window station (and desktop) is allowed for the user logging in. And so, it must not be invoked elsewhere, when no user is logged in (or a logon failure happened), like after a call to `WlxDisplaySASNotice()`... - Invoke the `StartShellHandler` notification **before** starting the shell, and the `PostShellHandler` notification **after** the shell started. - Invoke the `LogoffHandler` notification on the application desktop, just after having terminated all the user's programs, and before switching back to Winlogon's desktop. - Add and show the 'Logging off' status message. - When performing the following actions: `WLX_SAS_ACTION_LOGOFF`, `WLX_SAS_ACTION_FORCE_LOGOFF`, as well as: `WLX_SAS_ACTION_SHUTDOWN`, `WLX_SAS_ACTION_SHUTDOWN_POWER_OFF`, `WLX_SAS_ACTION_SHUTDOWN_REBOOT`, ensure that Winlogon is in a correct LogonState for doing the logoff sequence. ---- Test results for Winlogon notifications, after fix: - `Asynchronous: FALSE, Impersonation: FALSE` ``` WLEventStartup: 30 tests executed (0 marked as todo, 1 failure), 0 skipped. WLEventLogon: 32 tests executed (0 marked as todo, 1 failure), 0 skipped. WLEventStartShell: 32 tests executed (0 marked as todo, 1 failure), 0 skipped. WLEventPostShell: 32 tests executed (0 marked as todo, 1 failure), 0 skipped. WLEventLock: 32 tests executed (0 marked as todo, 1 failure), 0 skipped. WLEventUnlock: 32 tests executed (0 marked as todo, 1 failure), 0 skipped. WLEventStartScreenSaver: 32 tests executed (0 marked as todo, 6 failures), 0 skipped. WLEventStopScreenSaver: 32 tests executed (0 marked as todo, 5 failures), 0 skipped. WLEventLogoff: 32 tests executed (0 marked as todo, 1 failure), 0 skipped. WLEventShutdown: 31 tests executed (0 marked as todo, 3 failures), 0 skipped. ``` - `Asynchronous: FALSE, Impersonation: TRUE` ``` WLEventStartup: 30 tests executed (0 marked as todo, 1 failure), 0 skipped. WLEventLogon: 33 tests executed (0 marked as todo, 3 failures), 0 skipped. WLEventStartShell: 33 tests executed (0 marked as todo, 3 failures), 0 skipped. WLEventPostShell: 33 tests executed (0 marked as todo, 3 failures), 0 skipped. WLEventLock: 33 tests executed (0 marked as todo, 3 failures), 0 skipped. WLEventUnlock: 33 tests executed (0 marked as todo, 3 failures), 0 skipped. WLEventStartScreenSaver: 34 tests executed (0 marked as todo, 3 failures), 0 skipped. WLEventStopScreenSaver: 34 tests executed (0 marked as todo, 2 failures), 0 skipped. WLEventLogoff: 34 tests executed (0 marked as todo, 1 failure), 0 skipped. WLEventShutdown: 31 tests executed (0 marked as todo, 3 failures), 0 skipped. ```
1 parent 0bd6b3d commit 27e147a

32 files changed

+55
-12
lines changed

base/system/winlogon/lang/bg-BG.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ BEGIN
5050
IDS_PREPARETOHIBERNATE "Приготвяне за сън..."
5151
IDS_SAVEYOURSETTINGS "Записване на настройките ви..."
5252
IDS_REACTOSISSTARTINGUP "ReactOS тръгва..."
53+
IDS_LOGGINGOFF "Logging off..."
5354
IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d"
5455
IDS_TIMEOUTLONGFORMAT "%d days"
5556
END

base/system/winlogon/lang/cs-CZ.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ BEGIN
5959
IDS_PREPARETOHIBERNATE "Příprava k přechodu do režimu hibernace..."
6060
IDS_SAVEYOURSETTINGS "Ukládání osobního nastavení..."
6161
IDS_REACTOSISSTARTINGUP "ReactOS se spouští..."
62+
IDS_LOGGINGOFF "Logging off..."
6263
IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d"
6364
IDS_TIMEOUTLONGFORMAT "%d dní"
6465
END

base/system/winlogon/lang/de-DE.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ BEGIN
5252
IDS_PREPARETOHIBERNATE "Vorbereiten für den Ruhezustand..."
5353
IDS_SAVEYOURSETTINGS "Speichern Ihrer persönlichen Einstellungen..."
5454
IDS_REACTOSISSTARTINGUP "ReactOS startet..."
55+
IDS_LOGGINGOFF "Logging off..."
5556
IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d"
5657
IDS_TIMEOUTLONGFORMAT "%d Tage"
5758
END

base/system/winlogon/lang/el-GR.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ BEGIN
5050
IDS_PREPARETOHIBERNATE "Preparing to Hibernate..."
5151
IDS_SAVEYOURSETTINGS "Γίνεται αποθήκευση των ρυθμίσεών σας..."
5252
IDS_REACTOSISSTARTINGUP "Το ReactOS ξεκινά..."
53+
IDS_LOGGINGOFF "Logging off..."
5354
IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d"
5455
IDS_TIMEOUTLONGFORMAT "%d days"
5556
END

base/system/winlogon/lang/en-US.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ BEGIN
5050
IDS_PREPARETOHIBERNATE "Preparing to Hibernate..."
5151
IDS_SAVEYOURSETTINGS "Saving your settings..."
5252
IDS_REACTOSISSTARTINGUP "ReactOS is starting up..."
53+
IDS_LOGGINGOFF "Logging off..."
5354
IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d"
5455
IDS_TIMEOUTLONGFORMAT "%d days"
5556
END

base/system/winlogon/lang/es-ES.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ BEGIN
5252
IDS_PREPARETOHIBERNATE "Hibernando..."
5353
IDS_SAVEYOURSETTINGS "Guardando su configuración personal..."
5454
IDS_REACTOSISSTARTINGUP "ReactOS se está iniciando..."
55+
IDS_LOGGINGOFF "Logging off..."
5556
IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d"
5657
IDS_TIMEOUTLONGFORMAT "%d días"
5758
END

base/system/winlogon/lang/eu-ES.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ BEGIN
5757
IDS_PREPARETOHIBERNATE "Preparando para hibernar..."
5858
IDS_SAVEYOURSETTINGS "Gordetzen zure pertsonal konfigurazioa..."
5959
IDS_REACTOSISSTARTINGUP "Itzaron, ReactOS hasi da..."
60+
IDS_LOGGINGOFF "Logging off..."
6061
IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d"
6162
IDS_TIMEOUTLONGFORMAT "%d egunak"
6263
END

base/system/winlogon/lang/fr-FR.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ BEGIN
5252
IDS_PREPARETOHIBERNATE "Préparation de l'hibernation..."
5353
IDS_SAVEYOURSETTINGS "Enregistrement de vos paramètres..."
5454
IDS_REACTOSISSTARTINGUP "Démarrage de ReactOS..."
55+
IDS_LOGGINGOFF "Fermeture de session..."
5556
IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d"
5657
IDS_TIMEOUTLONGFORMAT "%d jours"
5758
END

base/system/winlogon/lang/he-IL.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ BEGIN
5252
IDS_PREPARETOHIBERNATE "מתכונן לשינה..."
5353
IDS_SAVEYOURSETTINGS "שומר את הגדרותיך..."
5454
IDS_REACTOSISSTARTINGUP "ReactOS מופעל..."
55+
IDS_LOGGINGOFF "Logging off..."
5556
IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d"
5657
IDS_TIMEOUTLONGFORMAT "%d days"
5758
END

base/system/winlogon/lang/hu-HU.rc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ BEGIN
5252
IDS_PREPARETOHIBERNATE "Hibernálás előkészítése..."
5353
IDS_SAVEYOURSETTINGS "Beállítások mentése..."
5454
IDS_REACTOSISSTARTINGUP "A ReactOS indul..."
55+
IDS_LOGGINGOFF "Logging off..."
5556
IDS_TIMEOUTSHORTFORMAT "%02d:%02d:%02d"
5657
IDS_TIMEOUTLONGFORMAT "%d nap"
5758
END

0 commit comments

Comments
 (0)