mirror of
https://github.com/reactos/reactos.git
synced 2025-05-28 13:38:19 +00:00
[MSGINA]
- WlxDisplaySASNotice: Do not try an auto admin logon here. Check for auto admin logon instead and let WlxLoggedOutSAS do the logon stuff. [WINLOGON] - Avoid posting two SAS notification messages when winlogon is started up. svn path=/trunk/; revision=61587
This commit is contained in:
parent
f0ecb9c0cb
commit
e7e1ec28e5
2 changed files with 47 additions and 3 deletions
|
@ -845,7 +845,10 @@ DoGenericAction(
|
|||
Session->Gina.Functions.WlxDisplaySASNotice(Session->Gina.Context);
|
||||
break;
|
||||
case WLX_SAS_ACTION_NONE: /* 0x02 */
|
||||
Session->Gina.Functions.WlxDisplaySASNotice(Session->Gina.Context);
|
||||
if (Session->LogonState == STATE_LOGGED_OFF)
|
||||
{
|
||||
Session->Gina.Functions.WlxDisplaySASNotice(Session->Gina.Context);
|
||||
}
|
||||
break;
|
||||
case WLX_SAS_ACTION_LOCK_WKSTA: /* 0x03 */
|
||||
if (Session->Gina.Functions.WlxIsLockOk(Session->Gina.Context))
|
||||
|
@ -919,7 +922,7 @@ DispatchSAS(
|
|||
case WLX_SAS_TYPE_TIMEOUT: /* 0x00 */
|
||||
{
|
||||
Session->Gina.Functions.WlxDisplaySASNotice(Session->Gina.Context);
|
||||
break;
|
||||
return;
|
||||
}
|
||||
default:
|
||||
{
|
||||
|
|
|
@ -572,6 +572,47 @@ cleanup:
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
BOOL
|
||||
CheckAutoAdminLogon(
|
||||
IN PGINA_CONTEXT pgContext)
|
||||
{
|
||||
HKEY WinLogonKey = NULL;
|
||||
LPWSTR AutoLogon = NULL;
|
||||
BOOL result = FALSE;
|
||||
LONG rc;
|
||||
|
||||
if (pgContext->AutoLogonState == AUTOLOGON_DISABLED)
|
||||
return FALSE;
|
||||
|
||||
rc = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||
L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\WinLogon",
|
||||
0,
|
||||
KEY_QUERY_VALUE,
|
||||
&WinLogonKey);
|
||||
if (rc != ERROR_SUCCESS)
|
||||
goto cleanup;
|
||||
|
||||
rc = ReadRegSzKey(WinLogonKey,
|
||||
L"AutoAdminLogon",
|
||||
&AutoLogon);
|
||||
|
||||
if (rc != ERROR_SUCCESS)
|
||||
goto cleanup;
|
||||
|
||||
if (wcscmp(AutoLogon, L"1") == 0)
|
||||
result = TRUE;
|
||||
|
||||
cleanup:
|
||||
if (WinLogonKey != NULL)
|
||||
RegCloseKey(WinLogonKey);
|
||||
HeapFree(GetProcessHeap(), 0, AutoLogon);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
static BOOL
|
||||
DoAutoLogon(
|
||||
IN PGINA_CONTEXT pgContext)
|
||||
|
@ -685,7 +726,7 @@ WlxDisplaySASNotice(
|
|||
return;
|
||||
}
|
||||
|
||||
if (DoAutoLogon(pgContext))
|
||||
if (CheckAutoAdminLogon(pgContext))
|
||||
{
|
||||
/* Don't display the window, we want to do an automatic logon */
|
||||
pgContext->AutoLogonState = AUTOLOGON_ONCE;
|
||||
|
|
Loading…
Reference in a new issue