mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 15:23:03 +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);
|
Session->Gina.Functions.WlxDisplaySASNotice(Session->Gina.Context);
|
||||||
break;
|
break;
|
||||||
case WLX_SAS_ACTION_NONE: /* 0x02 */
|
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;
|
break;
|
||||||
case WLX_SAS_ACTION_LOCK_WKSTA: /* 0x03 */
|
case WLX_SAS_ACTION_LOCK_WKSTA: /* 0x03 */
|
||||||
if (Session->Gina.Functions.WlxIsLockOk(Session->Gina.Context))
|
if (Session->Gina.Functions.WlxIsLockOk(Session->Gina.Context))
|
||||||
|
@ -919,7 +922,7 @@ DispatchSAS(
|
||||||
case WLX_SAS_TYPE_TIMEOUT: /* 0x00 */
|
case WLX_SAS_TYPE_TIMEOUT: /* 0x00 */
|
||||||
{
|
{
|
||||||
Session->Gina.Functions.WlxDisplaySASNotice(Session->Gina.Context);
|
Session->Gina.Functions.WlxDisplaySASNotice(Session->Gina.Context);
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
|
|
@ -572,6 +572,47 @@ cleanup:
|
||||||
return FALSE;
|
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
|
static BOOL
|
||||||
DoAutoLogon(
|
DoAutoLogon(
|
||||||
IN PGINA_CONTEXT pgContext)
|
IN PGINA_CONTEXT pgContext)
|
||||||
|
@ -685,7 +726,7 @@ WlxDisplaySASNotice(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DoAutoLogon(pgContext))
|
if (CheckAutoAdminLogon(pgContext))
|
||||||
{
|
{
|
||||||
/* Don't display the window, we want to do an automatic logon */
|
/* Don't display the window, we want to do an automatic logon */
|
||||||
pgContext->AutoLogonState = AUTOLOGON_ONCE;
|
pgContext->AutoLogonState = AUTOLOGON_ONCE;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue