From c20976ef8ccc97a7ed1c81e97f144e5063c41ec1 Mon Sep 17 00:00:00 2001 From: Stefan Ginsberg Date: Wed, 9 Sep 2015 19:56:22 +0000 Subject: [PATCH] [WIN32SS] Fix the fix by removing the correct parameter. The NtUserChangeDisplaySettings syscall is expected to make use of the lParam pointer (which must be NULL unless the CDS_VIDEOPARAMETERS flag is set). svn path=/trunk/; revision=69161 --- reactos/win32ss/include/ntuser.h | 4 ++-- reactos/win32ss/user/ntuser/display.c | 7 +++---- reactos/win32ss/user/user32/misc/display.c | 6 +++--- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/reactos/win32ss/include/ntuser.h b/reactos/win32ss/include/ntuser.h index 6946969e40d..22cdea82840 100644 --- a/reactos/win32ss/include/ntuser.h +++ b/reactos/win32ss/include/ntuser.h @@ -1696,8 +1696,8 @@ NTAPI NtUserChangeDisplaySettings( PUNICODE_STRING lpszDeviceName, LPDEVMODEW lpDevMode, - HWND hwnd, - DWORD dwflags); + DWORD dwflags, + LPVOID lParam); BOOL NTAPI diff --git a/reactos/win32ss/user/ntuser/display.c b/reactos/win32ss/user/ntuser/display.c index a6a1d0735d1..a635150090c 100644 --- a/reactos/win32ss/user/ntuser/display.c +++ b/reactos/win32ss/user/ntuser/display.c @@ -814,8 +814,8 @@ APIENTRY NtUserChangeDisplaySettings( PUNICODE_STRING pustrDevice, LPDEVMODEW lpDevMode, - HWND hWnd, - DWORD dwflags) + DWORD dwflags, + LPVOID lParam) { WCHAR awcDevice[CCHDEVICENAME]; UNICODE_STRING ustrDevice; @@ -823,8 +823,7 @@ NtUserChangeDisplaySettings( LONG lRet; /* Check arguments */ - if ((dwflags != CDS_VIDEOPARAMETERS) || - (hWnd != NULL)) + if ((dwflags != CDS_VIDEOPARAMETERS) && (lParam != NULL)) { EngSetLastError(ERROR_INVALID_PARAMETER); return DISP_CHANGE_BADPARAM; diff --git a/reactos/win32ss/user/user32/misc/display.c b/reactos/win32ss/user/user32/misc/display.c index 0990d531a4a..2a05672c7a5 100644 --- a/reactos/win32ss/user/user32/misc/display.c +++ b/reactos/win32ss/user/user32/misc/display.c @@ -457,14 +457,14 @@ ChangeDisplaySettingsExA( pDevModeW = GdiConvertToDevmodeW(lpDevMode); if(pDevModeW) { - rc = NtUserChangeDisplaySettings(pDeviceName, pDevModeW, hwnd, dwflags); + rc = NtUserChangeDisplaySettings(pDeviceName, pDevModeW, dwflags, lParam); RtlFreeHeap(GetProcessHeap(), 0, pDevModeW); } else rc = DISP_CHANGE_SUCCESSFUL; } else - rc = NtUserChangeDisplaySettings(pDeviceName, NULL, hwnd, dwflags); + rc = NtUserChangeDisplaySettings(pDeviceName, NULL, dwflags, lParam); if (lpszDeviceName != NULL) RtlFreeUnicodeString(&DeviceName); @@ -509,7 +509,7 @@ ChangeDisplaySettingsExW( else pDeviceName = NULL; - rc = NtUserChangeDisplaySettings(pDeviceName, lpDevMode, hwnd, dwflags); + rc = NtUserChangeDisplaySettings(pDeviceName, lpDevMode, dwflags, lParam); return rc; }