From 21ff1ddb3d21cda29f5e89acaa6da63c71ae7706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Poussineau?= Date: Tue, 26 Sep 2006 19:18:02 +0000 Subject: [PATCH] Fix some warnings in winlogon code Change winlogon registry key to "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" for compatibility reasons, as some programs read it directly svn path=/trunk/; revision=24278 --- reactos/base/system/userinit/userinit.c | 2 +- reactos/base/system/winlogon/sas.c | 15 +++--- reactos/base/system/winlogon/screensaver.c | 32 ++++++------ reactos/base/system/winlogon/setup.c | 2 +- reactos/base/system/winlogon/winlogon.c | 18 +++---- reactos/base/system/winlogon/winlogon.h | 5 +- reactos/base/system/winlogon/wlx.c | 61 +++++++++++++++++++++- reactos/boot/bootdata/hivesft.inf | 16 +++--- reactos/dll/win32/msgina/msgina.c | 4 +- 9 files changed, 106 insertions(+), 49 deletions(-) diff --git a/reactos/base/system/userinit/userinit.c b/reactos/base/system/userinit/userinit.c index 135dba92332..123f7735868 100644 --- a/reactos/base/system/userinit/userinit.c +++ b/reactos/base/system/userinit/userinit.c @@ -118,7 +118,7 @@ BOOL GetShell(WCHAR *CommandLine) BOOL ConsoleShell = IsConsoleShell(); if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, - L"SOFTWARE\\ReactOS\\Windows NT\\CurrentVersion\\Winlogon", + L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS) { Size = MAX_PATH * sizeof(WCHAR); diff --git a/reactos/base/system/winlogon/sas.c b/reactos/base/system/winlogon/sas.c index 31801b5f325..65bc33d958a 100644 --- a/reactos/base/system/winlogon/sas.c +++ b/reactos/base/system/winlogon/sas.c @@ -37,7 +37,7 @@ StartTaskManager( BOOL SetDefaultLanguage( - IN BOOL UserProfile) + IN BOOLEAN UserProfile) { HKEY BaseKey; LPCWSTR SubKey; @@ -114,7 +114,7 @@ SetDefaultLanguage( } /* Convert Value to a Lcid */ - ValueString.Length = ValueString.MaximumLength = dwSize; + ValueString.Length = ValueString.MaximumLength = (USHORT)dwSize; ValueString.Buffer = Value; Status = RtlUnicodeStringToInteger(&ValueString, 16, &Lcid); if (!NT_SUCCESS(Status)) @@ -146,7 +146,7 @@ static BOOL HandleLogon( IN OUT PWLSESSION Session) { - PROFILEINFOW ProfileInfo; + PROFILEINFOW ProfileInfo = { 0 }; LPVOID lpEnvironment = NULL; BOOLEAN Old; @@ -177,7 +177,8 @@ HandleLogon( TRUE)) { ERR("WL: CreateEnvironmentBlock() failed\n"); - UnloadUserProfile(WLSession->UserToken, ProfileInfo.hProfile); + if (!(Session->Options & WLX_LOGON_OPT_NO_PROFILE)) + UnloadUserProfile(WLSession->UserToken, ProfileInfo.hProfile); CloseHandle(Session->UserToken); return FALSE; } @@ -317,13 +318,15 @@ HandleLogoff( return STATUS_SUCCESS; } -static INT_PTR CALLBACK +static BOOL CALLBACK ShutdownComputerWindowProc( IN HWND hwndDlg, IN UINT uMsg, IN WPARAM wParam, IN LPARAM lParam) { + UNREFERENCED_PARAMETER(lParam); + switch (uMsg) { case WM_COMMAND: @@ -689,7 +692,7 @@ SASWindowProc( Session = (PWLSESSION)((LPCREATESTRUCT)lParam)->lpCreateParams; /* Save the Session pointer */ - SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (DWORD_PTR)Session); + SetWindowLongPtrW(hwndDlg, GWLP_USERDATA, (LONG_PTR)Session); return RegisterHotKeys(Session, hwndDlg); } diff --git a/reactos/base/system/winlogon/screensaver.c b/reactos/base/system/winlogon/screensaver.c index 9e56fad9b9d..a1c61a8789e 100644 --- a/reactos/base/system/winlogon/screensaver.c +++ b/reactos/base/system/winlogon/screensaver.c @@ -202,29 +202,31 @@ InitializeScreenSaver( } #endif - if (!(Session->hScreenSaverParametersChanged = CreateEventW(NULL, FALSE, FALSE, NULL))) + Session->hScreenSaverParametersChanged = CreateEventW(NULL, FALSE, FALSE, NULL); + if (!Session->hScreenSaverParametersChanged) { WARN("WL: Unable to create screen saver event (error %lu)\n", GetLastError()); + return TRUE; } - else if (!(Session->hEndOfScreenSaverThread = CreateEventW(NULL, FALSE, FALSE, NULL))) + Session->hEndOfScreenSaverThread = CreateEventW(NULL, FALSE, FALSE, NULL); + if (!Session->hEndOfScreenSaverThread) { WARN("WL: Unable to create screen saver event (error %lu)\n", GetLastError()); CloseHandle(Session->hScreenSaverParametersChanged); + return TRUE; } + + ScreenSaverThread = CreateThread( + NULL, + 0, + ScreenSaverThreadMain, + Session, + 0, + NULL); + if (ScreenSaverThread) + CloseHandle(ScreenSaverThread); else - { - ScreenSaverThread = CreateThread( - NULL, - 0, - ScreenSaverThreadMain, - Session, - 0, - NULL); - if (ScreenSaverThread) - CloseHandle(ScreenSaverThread); - else - WARN("WL: Unable to start screen saver thread\n"); - } + WARN("WL: Unable to start screen saver thread\n"); return TRUE; } diff --git a/reactos/base/system/winlogon/setup.c b/reactos/base/system/winlogon/setup.c index 1421a6a8e33..c5e41b75376 100644 --- a/reactos/base/system/winlogon/setup.c +++ b/reactos/base/system/winlogon/setup.c @@ -109,7 +109,7 @@ RunSetup (VOID) STARTUPINFOW StartupInfo; WCHAR Shell[MAX_PATH]; WCHAR CommandLine[MAX_PATH]; - BOOLEAN Result; + BOOL Result; DWORD dwError; HKEY hKey; DWORD dwType; diff --git a/reactos/base/system/winlogon/winlogon.c b/reactos/base/system/winlogon/winlogon.c index 245720c9227..fbda5936356 100644 --- a/reactos/base/system/winlogon/winlogon.c +++ b/reactos/base/system/winlogon/winlogon.c @@ -24,7 +24,7 @@ PWLSESSION WLSession = NULL; static BOOL StartServicesManager(VOID) { - HANDLE ServicesInitEvent; + HANDLE ServicesInitEvent = NULL; STARTUPINFOW StartupInfo; PROCESS_INFORMATION ProcessInformation; DWORD Count; @@ -154,7 +154,7 @@ OpenRegistryKey( OUT HKEY *WinLogonKey) { return ERROR_SUCCESS == RegOpenKeyEx(HKEY_LOCAL_MACHINE, - L"SOFTWARE\\ReactOS\\Windows NT\\CurrentVersion\\WinLogon", + L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\WinLogon", 0, KEY_QUERY_VALUE, WinLogonKey); @@ -302,7 +302,7 @@ RemoveStatusMessage( return Session->Gina.Functions.WlxRemoveStatusMessage(Session->Gina.Context); } -static INT_PTR CALLBACK +static BOOL CALLBACK GinaLoadFailedWindowProc( IN HWND hwndDlg, IN UINT uMsg, @@ -362,6 +362,10 @@ WinMain( #endif MSG Msg; + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + UNREFERENCED_PARAMETER(nShowCmd); + hAppInstance = hInstance; if (!RegisterLogonProcess(GetCurrentProcessId(), TRUE)) @@ -370,7 +374,6 @@ WinMain( HandleShutdown(NULL, WLX_SAS_ACTION_SHUTDOWN_POWER_OFF); NtShutdownSystem(ShutdownNoReboot); ExitProcess(0); - return 0; } WLSession = (PWLSESSION)HeapAlloc(GetProcessHeap(), 0, sizeof(WLSESSION)); @@ -380,7 +383,6 @@ WinMain( ERR("WL: Could not allocate memory for winlogon instance\n"); NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, 0, 0, 0); ExitProcess(1); - return 1; } WLSession->DialogTimeout = 120; /* 2 minutes */ @@ -389,7 +391,6 @@ WinMain( ERR("WL: Could not create window station and desktops\n"); NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, 0, 0, 0); ExitProcess(1); - return 1; } LockWorkstation(WLSession); @@ -398,7 +399,6 @@ WinMain( ERR("WL: Could not start services.exe\n"); NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, 0, 0, 0); ExitProcess(1); - return 1; } /* Check for pending setup */ @@ -415,7 +415,6 @@ WinMain( HandleShutdown(WLSession, WLX_SAS_ACTION_SHUTDOWN_REBOOT); ExitProcess(0); - return 0; } if (!StartLsass()) @@ -423,7 +422,6 @@ WinMain( DPRINT1("WL: Failed to start lsass.exe service (error %lu)\n", GetLastError()); NtRaiseHardError(STATUS_SYSTEM_PROCESS_TERMINATED, 0, 0, 0, 0, 0); ExitProcess(1); - return 1; } /* Load and initialize gina */ @@ -433,7 +431,6 @@ WinMain( DialogBoxParam(hAppInstance, MAKEINTRESOURCE(IDD_GINALOADFAILED), 0, GinaLoadFailedWindowProc, (LPARAM)L""); HandleShutdown(WLSession, WLX_SAS_ACTION_SHUTDOWN_REBOOT); ExitProcess(1); - return 1; } DisplayStatusMessage(WLSession, WLSession->WinlogonDesktop, IDS_REACTOSISSTARTINGUP); @@ -475,7 +472,6 @@ WinMain( { ERR("WL: Failed to initialize SAS\n"); ExitProcess(2); - return 2; } //DisplayStatusMessage(Session, Session->WinlogonDesktop, IDS_PREPARENETWORKCONNECTIONS); diff --git a/reactos/base/system/winlogon/winlogon.h b/reactos/base/system/winlogon/winlogon.h index ffc9692e04f..5e6b5032e6e 100644 --- a/reactos/base/system/winlogon/winlogon.h +++ b/reactos/base/system/winlogon/winlogon.h @@ -16,8 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id$ - * COPYRIGHT: See COPYING in the top level directory +/* COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS winlogon * FILE: subsys/system/winlogon/winlogon.h * PURPOSE: Winlogon @@ -180,7 +179,7 @@ UpdatePerUserSystemParameters(DWORD dwUnknown, /* sas.c */ BOOL SetDefaultLanguage( - IN BOOL UserProfile); + IN BOOLEAN UserProfile); BOOL InitializeSAS( diff --git a/reactos/base/system/winlogon/wlx.c b/reactos/base/system/winlogon/wlx.c index 5dd0399d192..f81f65f4cea 100644 --- a/reactos/base/system/winlogon/wlx.c +++ b/reactos/base/system/winlogon/wlx.c @@ -18,7 +18,7 @@ static DLGPROC PreviousWindowProc; static UINT_PTR IdTimer; -static INT_PTR CALLBACK +static BOOL CALLBACK DefaultWlxWindowProc( IN HWND hwndDlg, IN UINT uMsg, @@ -120,6 +120,11 @@ WlxAssignShellProtection( HANDLE hProcess, HANDLE hThread) { + UNREFERENCED_PARAMETER(hWlx); + UNREFERENCED_PARAMETER(hToken); + UNREFERENCED_PARAMETER(hProcess); + UNREFERENCED_PARAMETER(hThread); + UNIMPLEMENTED; return 0; } @@ -135,6 +140,8 @@ WlxMessageBox( LPWSTR lpszTitle, UINT fuStyle) { + UNREFERENCED_PARAMETER(hWlx); + TRACE("WlxMessageBox()\n"); /* FIXME: Provide a custom window proc to be able to handle timeout */ return MessageBoxW(hwndOwner, lpszText, lpszTitle, fuStyle); @@ -151,6 +158,8 @@ WlxDialogBox( HWND hwndOwner, DLGPROC dlgprc) { + UNREFERENCED_PARAMETER(hWlx); + TRACE("WlxDialogBox()\n"); if (PreviousWindowProc != NULL) @@ -171,6 +180,8 @@ WlxDialogBoxParam( DLGPROC dlgprc, LPARAM dwInitParam) { + UNREFERENCED_PARAMETER(hWlx); + TRACE("WlxDialogBoxParam()\n"); if (PreviousWindowProc != NULL) @@ -190,6 +201,8 @@ WlxDialogBoxIndirect( HWND hwndOwner, DLGPROC dlgprc) { + UNREFERENCED_PARAMETER(hWlx); + TRACE("WlxDialogBoxIndirect()\n"); if (PreviousWindowProc != NULL) @@ -210,6 +223,8 @@ WlxDialogBoxIndirectParam( DLGPROC dlgprc, LPARAM dwInitParam) { + UNREFERENCED_PARAMETER(hWlx); + TRACE("WlxDialogBoxIndirectParam()\n"); if (PreviousWindowProc != NULL) @@ -255,6 +270,10 @@ WlxChangePasswordNotify( PWLX_MPR_NOTIFY_INFO pMprInfo, DWORD dwChangeInfo) { + UNREFERENCED_PARAMETER(hWlx); + UNREFERENCED_PARAMETER(pMprInfo); + UNREFERENCED_PARAMETER(dwChangeInfo); + UNIMPLEMENTED; return 0; } @@ -267,6 +286,9 @@ WlxGetSourceDesktop( HANDLE hWlx, PWLX_DESKTOP* ppDesktop) { + UNREFERENCED_PARAMETER(hWlx); + UNREFERENCED_PARAMETER(ppDesktop); + UNIMPLEMENTED; return FALSE; } @@ -279,6 +301,9 @@ WlxSetReturnDesktop( HANDLE hWlx, PWLX_DESKTOP pDesktop) { + UNREFERENCED_PARAMETER(hWlx); + UNREFERENCED_PARAMETER(pDesktop); + UNIMPLEMENTED; return FALSE; } @@ -294,6 +319,12 @@ WlxCreateUserDesktop( PWSTR pszDesktopName, PWLX_DESKTOP* ppDesktop) { + UNREFERENCED_PARAMETER(hWlx); + UNREFERENCED_PARAMETER(hToken); + UNREFERENCED_PARAMETER(Flags); + UNREFERENCED_PARAMETER(pszDesktopName); + UNREFERENCED_PARAMETER(ppDesktop); + UNIMPLEMENTED; return FALSE; } @@ -309,6 +340,12 @@ WlxChangePasswordNotifyEx( PWSTR ProviderName, PVOID Reserved) { + UNREFERENCED_PARAMETER(hWlx); + UNREFERENCED_PARAMETER(pMprInfo); + UNREFERENCED_PARAMETER(dwChangeInfo); + UNREFERENCED_PARAMETER(ProviderName); + UNREFERENCED_PARAMETER(Reserved); + UNIMPLEMENTED; return 0; } @@ -322,6 +359,10 @@ WlxCloseUserDesktop( PWLX_DESKTOP pDesktop, HANDLE hToken) { + UNREFERENCED_PARAMETER(hWlx); + UNREFERENCED_PARAMETER(pDesktop); + UNREFERENCED_PARAMETER(hToken); + UNIMPLEMENTED; return FALSE; } @@ -422,6 +463,8 @@ VOID WINAPI WlxWin31Migrate( HANDLE hWlx) { + UNREFERENCED_PARAMETER(hWlx); + UNIMPLEMENTED; } @@ -432,6 +475,8 @@ BOOL WINAPI WlxQueryClientCredentials( PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred) { + UNREFERENCED_PARAMETER(pCred); + UNIMPLEMENTED; return FALSE; } @@ -443,6 +488,8 @@ BOOL WINAPI WlxQueryInetConnectorCredentials( PWLX_CLIENT_CREDENTIALS_INFO_V1_0 pCred) { + UNREFERENCED_PARAMETER(pCred); + UNIMPLEMENTED; return FALSE; } @@ -467,6 +514,11 @@ WlxQueryTerminalServicesData( WCHAR* UserName, WCHAR* Domain) { + UNREFERENCED_PARAMETER(hWlx); + UNREFERENCED_PARAMETER(pTSData); + UNREFERENCED_PARAMETER(UserName); + UNREFERENCED_PARAMETER(Domain); + UNIMPLEMENTED; return 0; } @@ -478,6 +530,8 @@ DWORD WINAPI WlxQueryConsoleSwitchCredentials( PWLX_CONSOLESWITCH_CREDENTIALS_INFO_V1_0 pCred) { + UNREFERENCED_PARAMETER(pCred); + UNIMPLEMENTED; return 0; } @@ -489,6 +543,8 @@ BOOL WINAPI WlxQueryTsLogonCredentials( PWLX_CLIENT_CREDENTIALS_INFO_V2_0 pCred) { + UNREFERENCED_PARAMETER(pCred); + UNIMPLEMENTED; return FALSE; } @@ -588,7 +644,8 @@ LoadGina( /* Terminate string */ GinaDll[MAX_PATH] = '\0'; - if (!(hGina = LoadLibraryW(GinaDll))) + hGina = LoadLibraryW(GinaDll); + if (!hGina) goto cleanup; Functions->WlxNegotiate = (PFWLXNEGOTIATE)GetProcAddress(hGina, "WlxNegotiate"); diff --git a/reactos/boot/bootdata/hivesft.inf b/reactos/boot/bootdata/hivesft.inf index dcbe055c595..ef7a5502222 100644 --- a/reactos/boot/bootdata/hivesft.inf +++ b/reactos/boot/bootdata/hivesft.inf @@ -738,14 +738,14 @@ HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Tonga Standard Tim HKLM,"SOFTWARE\ReactOS\ReactOS\CurrentVersion\IFS","FAT",0x00000000,"ufat.dll" HKLM,"SOFTWARE\ReactOS\ReactOS\CurrentVersion\IFS","FAT32",0x00000000,"ufat.dll" -HKLM,"SOFTWARE\ReactOS\Windows NT\CurrentVersion\Winlogon","ConsoleShell",0x00020000,"%SystemRoot%\system32\cmd.exe" -HKLM,"SOFTWARE\ReactOS\Windows NT\CurrentVersion\Winlogon","Shell",0x00020000,"%SystemRoot%\explorer.exe" -HKLM,"SOFTWARE\ReactOS\Windows NT\CurrentVersion\Winlogon","StartServices",0x00010001,0x00000001 -HKLM,"SOFTWARE\ReactOS\Windows NT\CurrentVersion\Winlogon","StartLsass",0x00010001,0x00000001 -HKLM,"SOFTWARE\ReactOS\Windows NT\CurrentVersion\Winlogon","Userinit",0x00020000,"%SystemRoot%\system32\userinit.exe" -HKLM,"SOFTWARE\ReactOS\Windows NT\CurrentVersion\Winlogon","AutoAdminLogon",0x00000000,"1" -HKLM,"SOFTWARE\ReactOS\Windows NT\CurrentVersion\Winlogon","DefaultUserName",0x00000000,"Administrator" -HKLM,"SOFTWARE\ReactOS\Windows NT\CurrentVersion\Winlogon","DefaultPassword",0x00000000,"Secret" +HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","ConsoleShell",0x00020000,"%SystemRoot%\system32\cmd.exe" +HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","Shell",0x00020000,"%SystemRoot%\explorer.exe" +HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","StartServices",0x00010001,0x00000001 +HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","StartLsass",0x00010001,0x00000001 +HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","Userinit",0x00020000,"%SystemRoot%\system32\userinit.exe" +HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","AutoAdminLogon",0x00000000,"1" +HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","DefaultUserName",0x00000000,"Administrator" +HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon","DefaultPassword",0x00000000,"Secret" ;Time Zone Servers HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime\Servers","1",0x00000000,"pool.ntp.org" diff --git a/reactos/dll/win32/msgina/msgina.c b/reactos/dll/win32/msgina/msgina.c index 9285949a01a..47372109c6a 100644 --- a/reactos/dll/win32/msgina/msgina.c +++ b/reactos/dll/win32/msgina/msgina.c @@ -239,7 +239,7 @@ WlxActivateUserShell( TRACE("WlxActivateUserShell()\n"); /* get the path of userinit */ if(RegOpenKeyExW(HKEY_LOCAL_MACHINE, - L"SOFTWARE\\ReactOS\\Windows NT\\CurrentVersion\\Winlogon", + L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", 0, KEY_QUERY_VALUE, &hKey) != ERROR_SUCCESS) {ERR("GINA: Failed: 1\n"); VirtualFree(pEnvironment, 0, MEM_RELEASE); @@ -419,7 +419,7 @@ DoAutoLogon( rc = RegOpenKeyExW( HKEY_LOCAL_MACHINE, - L"SOFTWARE\\ReactOS\\Windows NT\\CurrentVersion\\WinLogon", + L"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\WinLogon", 0, KEY_QUERY_VALUE, &WinLogonKey);