[WINLOGON]

Formatting. No code changes.

svn path=/trunk/; revision=58406
This commit is contained in:
Eric Kohl 2013-03-02 20:30:36 +00:00
parent 95e9b1a4a7
commit 65ad79656d
4 changed files with 744 additions and 724 deletions

View file

@ -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);

View file

@ -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;
}

View file

@ -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));

View file

@ -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);