[WINLOGON] Close all dialog boxes on SAS

CORE-13593
This commit is contained in:
Eric Kohl 2018-05-21 11:20:50 +02:00
parent e9e14be661
commit 02f3cb5381
3 changed files with 9 additions and 15 deletions

View file

@ -1157,9 +1157,7 @@ DispatchSAS(
case STATE_LOGGED_OFF: case STATE_LOGGED_OFF:
Session->LogonState = STATE_LOGGED_OFF_SAS; Session->LogonState = STATE_LOGGED_OFF_SAS;
hwnd = GetTopDialogWindow(); CloseAllDialogWindows();
if (hwnd != NULL)
SendMessage(hwnd, WLX_WM_SAS, 0, 0);
Session->Options = 0; Session->Options = 0;
@ -1192,9 +1190,7 @@ DispatchSAS(
case STATE_LOCKED: case STATE_LOCKED:
Session->LogonState = STATE_LOCKED_SAS; Session->LogonState = STATE_LOCKED_SAS;
hwnd = GetTopDialogWindow(); CloseAllDialogWindows();
if (hwnd != NULL)
SendMessage(hwnd, WLX_WM_SAS, 0, 0);
wlxAction = (DWORD)Session->Gina.Functions.WlxWkstaLockedSAS(Session->Gina.Context, dwSasType); wlxAction = (DWORD)Session->Gina.Functions.WlxWkstaLockedSAS(Session->Gina.Context, dwSasType);
break; break;

View file

@ -342,8 +342,8 @@ RemoveStatusMessage(IN PWLSESSION Session);
VOID VOID
InitDialogListHead(VOID); InitDialogListHead(VOID);
HWND VOID
GetTopDialogWindow(VOID); CloseAllDialogWindows(VOID);
BOOL BOOL
GinaInit(IN OUT PWLSESSION Session); GinaInit(IN OUT PWLSESSION Session);

View file

@ -106,24 +106,22 @@ GetDialogListEntry(HWND hwndDlg)
HWND HWND
GetTopDialogWindow(VOID) CloseAllDialogWindows(VOID)
{ {
PDIALOG_LIST_ENTRY Current; PDIALOG_LIST_ENTRY Current;
PLIST_ENTRY ListEntry; PLIST_ENTRY ListEntry;
ListEntry = DialogListHead.Flink; ListEntry = DialogListHead.Flink;
if (ListEntry != &DialogListHead) while (ListEntry != &DialogListHead)
{ {
Current = CONTAINING_RECORD(ListEntry, Current = CONTAINING_RECORD(ListEntry,
DIALOG_LIST_ENTRY, DIALOG_LIST_ENTRY,
Entry); Entry);
TRACE("Found entry: %p window %p\n", Current, Current->hWnd); PostMessage(Current->hWnd, WLX_WM_SAS, 0, 0);
return Current->hWnd;
}
TRACE("Found no window\n"); ListEntry = ListEntry->Flink;
return NULL; }
} }