mirror of
https://github.com/reactos/reactos.git
synced 2025-07-24 00:33:42 +00:00
[WINLOGON]
Formatting. No code changes. svn path=/trunk/; revision=58406
This commit is contained in:
parent
95e9b1a4a7
commit
65ad79656d
4 changed files with 744 additions and 724 deletions
|
@ -15,9 +15,10 @@ WINE_DEFAULT_DEBUG_CHANNEL(winlogon);
|
|||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
#ifndef USE_GETLASTINPUTINFO
|
||||
static LRESULT CALLBACK
|
||||
KeyboardActivityProc(
|
||||
IN INT nCode,
|
||||
static
|
||||
LRESULT
|
||||
CALLBACK
|
||||
KeyboardActivityProc(IN INT nCode,
|
||||
IN WPARAM wParam,
|
||||
IN LPARAM lParam)
|
||||
{
|
||||
|
@ -25,9 +26,11 @@ KeyboardActivityProc(
|
|||
return CallNextHookEx(NULL, nCode, wParam, lParam);
|
||||
}
|
||||
|
||||
static LRESULT CALLBACK
|
||||
MouseActivityProc(
|
||||
IN INT nCode,
|
||||
|
||||
static
|
||||
LRESULT
|
||||
CALLBACK
|
||||
MouseActivityProc(IN INT nCode,
|
||||
IN WPARAM wParam,
|
||||
IN LPARAM lParam)
|
||||
{
|
||||
|
@ -36,9 +39,10 @@ MouseActivityProc(
|
|||
}
|
||||
#endif
|
||||
|
||||
static VOID
|
||||
LoadScreenSaverParameters(
|
||||
OUT LPDWORD Timeout)
|
||||
|
||||
static
|
||||
VOID
|
||||
LoadScreenSaverParameters(OUT LPDWORD Timeout)
|
||||
{
|
||||
BOOL Enabled;
|
||||
|
||||
|
@ -64,9 +68,11 @@ LoadScreenSaverParameters(
|
|||
}
|
||||
}
|
||||
|
||||
static DWORD WINAPI
|
||||
ScreenSaverThreadMain(
|
||||
IN LPVOID lpParameter)
|
||||
|
||||
static
|
||||
DWORD
|
||||
WINAPI
|
||||
ScreenSaverThreadMain(IN LPVOID lpParameter)
|
||||
{
|
||||
PWLSESSION Session = (PWLSESSION)lpParameter;
|
||||
HANDLE HandleArray[3];
|
||||
|
@ -125,6 +131,7 @@ ScreenSaverThreadMain(
|
|||
TimeToWait = 10; /* Try again in 10 ms */
|
||||
}
|
||||
#endif
|
||||
|
||||
if (TimeToWait > Timeout)
|
||||
{
|
||||
/* GetTickCount() got back to 0 */
|
||||
|
@ -149,6 +156,7 @@ ScreenSaverThreadMain(
|
|||
WARN("GetLastInputInfo() failed with error %lu\n", GetLastError());
|
||||
continue;
|
||||
}
|
||||
|
||||
if (lastInputInfo.dwTime + Timeout > GetTickCount())
|
||||
continue;
|
||||
#endif
|
||||
|
@ -170,22 +178,26 @@ cleanup:
|
|||
RevertToSelf();
|
||||
if (Session->hUserActivity)
|
||||
CloseHandle(Session->hUserActivity);
|
||||
|
||||
if (Session->hEndOfScreenSaver)
|
||||
CloseHandle(Session->hEndOfScreenSaver);
|
||||
|
||||
#ifndef USE_GETLASTINPUTINFO
|
||||
if (Session->KeyboardHook)
|
||||
UnhookWindowsHookEx(Session->KeyboardHook);
|
||||
|
||||
if (Session->MouseHook)
|
||||
UnhookWindowsHookEx(Session->MouseHook);
|
||||
#endif
|
||||
|
||||
CloseHandle(Session->hEndOfScreenSaverThread);
|
||||
CloseHandle(Session->hScreenSaverParametersChanged);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
InitializeScreenSaver(
|
||||
IN OUT PWLSESSION Session)
|
||||
InitializeScreenSaver(IN OUT PWLSESSION Session)
|
||||
{
|
||||
HANDLE ScreenSaverThread;
|
||||
|
||||
|
@ -197,6 +209,7 @@ InitializeScreenSaver(
|
|||
ERR("WL: Unable to register keyboard hook\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
Session->MouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseActivityProc, hAppInstance, 0);
|
||||
if (!Session->MouseHook)
|
||||
{
|
||||
|
@ -211,6 +224,7 @@ InitializeScreenSaver(
|
|||
WARN("WL: Unable to create screen saver event (error %lu)\n", GetLastError());
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Session->hEndOfScreenSaverThread = CreateEventW(NULL, FALSE, FALSE, NULL);
|
||||
if (!Session->hEndOfScreenSaverThread)
|
||||
{
|
||||
|
@ -219,8 +233,7 @@ InitializeScreenSaver(
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
ScreenSaverThread = CreateThread(
|
||||
NULL,
|
||||
ScreenSaverThread = CreateThread(NULL,
|
||||
0,
|
||||
ScreenSaverThreadMain,
|
||||
Session,
|
||||
|
@ -234,9 +247,9 @@ InitializeScreenSaver(
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
StartScreenSaver(
|
||||
IN PWLSESSION Session)
|
||||
StartScreenSaver(IN PWLSESSION Session)
|
||||
{
|
||||
HKEY hKey = NULL, hCurrentUser = NULL;
|
||||
WCHAR szApplicationName[MAX_PATH];
|
||||
|
@ -256,8 +269,7 @@ StartScreenSaver(
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
rc = RegOpenCurrentUser(
|
||||
KEY_READ,
|
||||
rc = RegOpenCurrentUser(KEY_READ,
|
||||
&hCurrentUser);
|
||||
if (rc != ERROR_SUCCESS)
|
||||
{
|
||||
|
@ -265,8 +277,7 @@ StartScreenSaver(
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
rc = RegOpenKeyExW(
|
||||
hCurrentUser,
|
||||
rc = RegOpenKeyExW(hCurrentUser,
|
||||
L"Control Panel\\Desktop",
|
||||
0,
|
||||
KEY_QUERY_VALUE,
|
||||
|
@ -277,8 +288,7 @@ StartScreenSaver(
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
rc = RegQueryValueExW(
|
||||
hKey,
|
||||
rc = RegQueryValueExW(hKey,
|
||||
L"SCRNSAVE.EXE",
|
||||
0,
|
||||
&dwType,
|
||||
|
@ -311,9 +321,9 @@ StartScreenSaver(
|
|||
ZeroMemory(&ProcessInformation, sizeof(PROCESS_INFORMATION));
|
||||
StartupInfo.cb = sizeof(STARTUPINFOW);
|
||||
StartupInfo.dwFlags = STARTF_SCRNSAVER;
|
||||
|
||||
/* FIXME: run the screen saver on the screen saver desktop */
|
||||
ret = CreateProcessW(
|
||||
szApplicationName,
|
||||
ret = CreateProcessW(szApplicationName,
|
||||
szCommandLine,
|
||||
NULL,
|
||||
NULL,
|
||||
|
@ -328,6 +338,7 @@ StartScreenSaver(
|
|||
ERR("WL: Unable to start %S, error %lu\n", szApplicationName, GetLastError());
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
CloseHandle(ProcessInformation.hThread);
|
||||
|
||||
SystemParametersInfoW(SPI_SETSCREENSAVERRUNNING, TRUE, NULL, 0);
|
||||
|
@ -342,6 +353,7 @@ StartScreenSaver(
|
|||
/* Kill the screen saver */
|
||||
TerminateProcess(ProcessInformation.hProcess, 0);
|
||||
}
|
||||
|
||||
SetEvent(Session->hEndOfScreenSaver);
|
||||
|
||||
CloseHandle(ProcessInformation.hProcess);
|
||||
|
@ -350,8 +362,10 @@ cleanup:
|
|||
RevertToSelf();
|
||||
if (hKey)
|
||||
RegCloseKey(hKey);
|
||||
|
||||
if (hCurrentUser)
|
||||
RegCloseKey(hCurrentUser);
|
||||
|
||||
if (!ret)
|
||||
{
|
||||
PostMessageW(Session->SASWindow, WLX_WM_SAS, WLX_SAS_TYPE_SCRNSVR_ACTIVITY, 0);
|
||||
|
|
|
@ -26,8 +26,7 @@ GetSetupType(VOID)
|
|||
TRACE("GetSetupType()\n");
|
||||
|
||||
/* Open key */
|
||||
dwError = RegOpenKeyExW(
|
||||
HKEY_LOCAL_MACHINE,
|
||||
dwError = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||
L"SYSTEM\\Setup",
|
||||
0,
|
||||
KEY_QUERY_VALUE,
|
||||
|
@ -37,8 +36,7 @@ GetSetupType(VOID)
|
|||
|
||||
/* Read key */
|
||||
dwSize = sizeof(DWORD);
|
||||
dwError = RegQueryValueExW(
|
||||
hKey,
|
||||
dwError = RegQueryValueExW(hKey,
|
||||
L"SetupType",
|
||||
NULL,
|
||||
&dwType,
|
||||
|
@ -54,9 +52,11 @@ GetSetupType(VOID)
|
|||
return dwSetupType;
|
||||
}
|
||||
|
||||
static DWORD WINAPI
|
||||
RunSetupThreadProc(
|
||||
IN LPVOID lpParameter)
|
||||
|
||||
static
|
||||
DWORD
|
||||
WINAPI
|
||||
RunSetupThreadProc(IN LPVOID lpParameter)
|
||||
{
|
||||
PROCESS_INFORMATION ProcessInformation;
|
||||
STARTUPINFOW StartupInfo;
|
||||
|
@ -72,8 +72,7 @@ RunSetupThreadProc(
|
|||
TRACE("RunSetup() called\n");
|
||||
|
||||
/* Open key */
|
||||
dwError = RegOpenKeyExW(
|
||||
HKEY_LOCAL_MACHINE,
|
||||
dwError = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
|
||||
L"SYSTEM\\Setup",
|
||||
0,
|
||||
KEY_QUERY_VALUE,
|
||||
|
@ -83,8 +82,7 @@ RunSetupThreadProc(
|
|||
|
||||
/* Read key */
|
||||
dwSize = (sizeof(Shell) / sizeof(Shell[0])) - 1;
|
||||
dwError = RegQueryValueExW(
|
||||
hKey,
|
||||
dwError = RegQueryValueExW(hKey,
|
||||
L"CmdLine",
|
||||
NULL,
|
||||
&dwType,
|
||||
|
@ -115,8 +113,8 @@ RunSetupThreadProc(
|
|||
StartupInfo.dwFlags = 0;
|
||||
StartupInfo.cbReserved2 = 0;
|
||||
StartupInfo.lpReserved2 = 0;
|
||||
Result = CreateProcessW(
|
||||
NULL,
|
||||
|
||||
Result = CreateProcessW(NULL,
|
||||
CommandLine,
|
||||
NULL,
|
||||
NULL,
|
||||
|
@ -146,12 +144,19 @@ RunSetupThreadProc(
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
RunSetup(VOID)
|
||||
{
|
||||
HANDLE hThread;
|
||||
|
||||
hThread = CreateThread(NULL, 0, RunSetupThreadProc, NULL, 0, NULL);
|
||||
hThread = CreateThread(NULL,
|
||||
0,
|
||||
RunSetupThreadProc,
|
||||
NULL,
|
||||
0,
|
||||
NULL);
|
||||
|
||||
return hThread != NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,8 @@ PWLSESSION WLSession = NULL;
|
|||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
static BOOL
|
||||
static
|
||||
BOOL
|
||||
StartServicesManager(VOID)
|
||||
{
|
||||
STARTUPINFOW StartupInfo;
|
||||
|
@ -41,8 +42,7 @@ StartServicesManager(VOID)
|
|||
|
||||
TRACE("WL: Creating new process - %S\n", ServiceString);
|
||||
|
||||
res = CreateProcessW(
|
||||
ServiceString,
|
||||
res = CreateProcessW(ServiceString,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
|
@ -69,7 +69,8 @@ StartServicesManager(VOID)
|
|||
}
|
||||
|
||||
|
||||
static BOOL
|
||||
static
|
||||
BOOL
|
||||
StartLsass(VOID)
|
||||
{
|
||||
STARTUPINFOW StartupInfo;
|
||||
|
@ -89,8 +90,7 @@ StartLsass(VOID)
|
|||
|
||||
TRACE("WL: Creating new process - %S\n", ServiceString);
|
||||
|
||||
res = CreateProcessW(
|
||||
ServiceString,
|
||||
res = CreateProcessW(ServiceString,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
|
@ -110,7 +110,8 @@ StartLsass(VOID)
|
|||
}
|
||||
|
||||
|
||||
static VOID
|
||||
static
|
||||
VOID
|
||||
WaitForLsass(VOID)
|
||||
{
|
||||
HANDLE hEvent;
|
||||
|
@ -146,8 +147,9 @@ WaitForLsass(VOID)
|
|||
}
|
||||
|
||||
|
||||
static BOOL
|
||||
InitKeyboardLayouts()
|
||||
static
|
||||
BOOL
|
||||
InitKeyboardLayouts(VOID)
|
||||
{
|
||||
WCHAR wszKeyName[12], wszKLID[10];
|
||||
DWORD dwSize = sizeof(wszKLID), dwType, i = 1;
|
||||
|
@ -211,8 +213,7 @@ InitKeyboardLayouts()
|
|||
|
||||
|
||||
BOOL
|
||||
DisplayStatusMessage(
|
||||
IN PWLSESSION Session,
|
||||
DisplayStatusMessage(IN PWLSESSION Session,
|
||||
IN HDESK hDesktop,
|
||||
IN UINT ResourceId)
|
||||
{
|
||||
|
@ -230,9 +231,9 @@ DisplayStatusMessage(
|
|||
return Session->Gina.Functions.WlxDisplayStatusMessage(Session->Gina.Context, hDesktop, 0, NULL, StatusMsg);
|
||||
}
|
||||
|
||||
|
||||
BOOL
|
||||
RemoveStatusMessage(
|
||||
IN PWLSESSION Session)
|
||||
RemoveStatusMessage(IN PWLSESSION Session)
|
||||
{
|
||||
if (Session->Gina.Version < WLX_VERSION_1_3)
|
||||
return TRUE;
|
||||
|
@ -240,9 +241,11 @@ RemoveStatusMessage(
|
|||
return Session->Gina.Functions.WlxRemoveStatusMessage(Session->Gina.Context);
|
||||
}
|
||||
|
||||
static INT_PTR CALLBACK
|
||||
GinaLoadFailedWindowProc(
|
||||
IN HWND hwndDlg,
|
||||
|
||||
static
|
||||
INT_PTR
|
||||
CALLBACK
|
||||
GinaLoadFailedWindowProc(IN HWND hwndDlg,
|
||||
IN UINT uMsg,
|
||||
IN WPARAM wParam,
|
||||
IN LPARAM lParam)
|
||||
|
@ -259,6 +262,7 @@ GinaLoadFailedWindowProc(
|
|||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case WM_INITDIALOG:
|
||||
{
|
||||
int len;
|
||||
|
@ -270,9 +274,11 @@ GinaLoadFailedWindowProc(
|
|||
wsprintfW(text, templateText, (LPWSTR)lParam);
|
||||
SetDlgItemTextW(hwndDlg, IDC_GINALOADFAILED, text);
|
||||
}
|
||||
|
||||
SetFocus(GetDlgItem(hwndDlg, IDOK));
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
case WM_CLOSE:
|
||||
{
|
||||
EndDialog(hwndDlg, IDCANCEL);
|
||||
|
@ -283,9 +289,10 @@ GinaLoadFailedWindowProc(
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
int WINAPI
|
||||
WinMain(
|
||||
IN HINSTANCE hInstance,
|
||||
|
||||
int
|
||||
WINAPI
|
||||
WinMain(IN HINSTANCE hInstance,
|
||||
IN HINSTANCE hPrevInstance,
|
||||
IN LPSTR lpCmdLine,
|
||||
IN int nShowCmd)
|
||||
|
@ -321,6 +328,7 @@ WinMain(
|
|||
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, NULL, OptionOk, &HardErrorResponse);
|
||||
ExitProcess(1);
|
||||
}
|
||||
|
||||
ZeroMemory(WLSession, sizeof(WLSESSION));
|
||||
WLSession->DialogTimeout = 120; /* 2 minutes */
|
||||
|
||||
|
@ -330,6 +338,7 @@ WinMain(
|
|||
NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, NULL, OptionOk, &HardErrorResponse);
|
||||
ExitProcess(1);
|
||||
}
|
||||
|
||||
LockWorkstation(WLSession);
|
||||
|
||||
/* Load default keyboard layouts */
|
||||
|
@ -365,7 +374,6 @@ WinMain(
|
|||
|
||||
DisplayStatusMessage(WLSession, WLSession->WinlogonDesktop, IDS_REACTOSISSTARTINGUP);
|
||||
|
||||
|
||||
/* Wait for the LSA server */
|
||||
WaitForLsass();
|
||||
|
||||
|
@ -383,8 +391,10 @@ WinMain(
|
|||
ERR("RtlAdjustPrivilege() failed with error %lu\n", LsaNtStatusToWinError(Status));
|
||||
return 1;
|
||||
}
|
||||
|
||||
Status = LsaRegisterLogonProcess(&ProcessName, &LsaHandle, &Mode);
|
||||
}
|
||||
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
ERR("LsaRegisterLogonProcess() failed with error %lu\n", LsaNtStatusToWinError(Status));
|
||||
|
|
|
@ -262,51 +262,42 @@ CreateUserEnvironment(IN PWLSESSION Session);
|
|||
|
||||
/* sas.c */
|
||||
BOOL
|
||||
SetDefaultLanguage(
|
||||
IN BOOL UserProfile);
|
||||
SetDefaultLanguage(IN BOOL UserProfile);
|
||||
|
||||
BOOL
|
||||
InitializeSAS(
|
||||
IN OUT PWLSESSION Session);
|
||||
InitializeSAS(IN OUT PWLSESSION Session);
|
||||
|
||||
/* screensaver.c */
|
||||
BOOL
|
||||
InitializeScreenSaver(
|
||||
IN OUT PWLSESSION Session);
|
||||
InitializeScreenSaver(IN OUT PWLSESSION Session);
|
||||
|
||||
VOID
|
||||
StartScreenSaver(
|
||||
IN PWLSESSION Session);
|
||||
StartScreenSaver(IN PWLSESSION Session);
|
||||
|
||||
/* winlogon.c */
|
||||
|
||||
BOOL
|
||||
PlaySoundRoutine(
|
||||
IN LPCWSTR FileName,
|
||||
PlaySoundRoutine(IN LPCWSTR FileName,
|
||||
IN UINT Logon,
|
||||
IN UINT Flags);
|
||||
|
||||
BOOL
|
||||
DisplayStatusMessage(
|
||||
IN PWLSESSION Session,
|
||||
DisplayStatusMessage(IN PWLSESSION Session,
|
||||
IN HDESK hDesktop,
|
||||
IN UINT ResourceId);
|
||||
|
||||
BOOL
|
||||
RemoveStatusMessage(
|
||||
IN PWLSESSION Session);
|
||||
RemoveStatusMessage(IN PWLSESSION Session);
|
||||
|
||||
/* wlx.c */
|
||||
BOOL
|
||||
GinaInit(
|
||||
IN OUT PWLSESSION Session);
|
||||
GinaInit(IN OUT PWLSESSION Session);
|
||||
|
||||
BOOL
|
||||
CreateWindowStationAndDesktops(
|
||||
IN OUT PWLSESSION Session);
|
||||
CreateWindowStationAndDesktops(IN OUT PWLSESSION Session);
|
||||
|
||||
NTSTATUS
|
||||
HandleShutdown(
|
||||
IN OUT PWLSESSION Session,
|
||||
HandleShutdown(IN OUT PWLSESSION Session,
|
||||
IN DWORD wlxAction);
|
||||
|
||||
VOID WINAPI WlxUseCtrlAltDel(HANDLE hWlx);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue