[WIN32SS] Fix NtGdiOpenDCW and NtUserChangeDisplaySettings to have the correct amount of parameters by removing two more unused/deprecated/ignored parameters. NtUserEnumDisplayMonitors is the only remaining one now, which needs to do a usermode callback to get rid of its extra parameter.

svn path=/trunk/; revision=69158
This commit is contained in:
Stefan Ginsberg 2015-09-09 19:12:48 +00:00
parent 5650394ec5
commit db9febf4fa
8 changed files with 17 additions and 26 deletions

View file

@ -2162,7 +2162,6 @@ NtGdiOpenDCW(
_In_ ULONG iType, _In_ ULONG iType,
_In_ BOOL bDisplay, _In_ BOOL bDisplay,
_In_opt_ HANDLE hspool, _In_opt_ HANDLE hspool,
_In_opt_ DRIVER_INFO_2W *pDriverInfo2,
_At_((PUMDHPDEV*)pUMdhpdev, _Out_) PVOID pUMdhpdev); _At_((PUMDHPDEV*)pUMdhpdev, _Out_) PVOID pUMdhpdev);
__kernel_entry __kernel_entry

View file

@ -65,7 +65,6 @@ IntCreateDICW(
iType, // DCW 0 and ICW 1. iType, // DCW 0 and ICW 1.
Display, Display,
hspool, hspool,
(PVOID) NULL, // NULL for now.
(PVOID) &UMdhpdev ); (PVOID) &UMdhpdev );
#if 0 #if 0
// Handle something other than a normal dc object. // Handle something other than a normal dc object.

View file

@ -680,7 +680,6 @@ NtGdiOpenDCW(
_In_ ULONG iType, _In_ ULONG iType,
_In_ BOOL bDisplay, _In_ BOOL bDisplay,
_In_opt_ HANDLE hspool, _In_opt_ HANDLE hspool,
_In_opt_ DRIVER_INFO_2W *pDriverInfo2,
_At_((PUMDHPDEV*)pUMdhpdev, _Out_) PVOID pUMdhpdev) _At_((PUMDHPDEV*)pUMdhpdev, _Out_) PVOID pUMdhpdev)
{ {
UNICODE_STRING ustrDevice; UNICODE_STRING ustrDevice;

View file

@ -1696,7 +1696,6 @@ NTAPI
NtUserChangeDisplaySettings( NtUserChangeDisplaySettings(
PUNICODE_STRING lpszDeviceName, PUNICODE_STRING lpszDeviceName,
LPDEVMODEW lpDevMode, LPDEVMODEW lpDevMode,
HWND hwnd,
DWORD dwflags); DWORD dwflags);
BOOL BOOL

View file

@ -655,7 +655,6 @@ APIENTRY
UserChangeDisplaySettings( UserChangeDisplaySettings(
PUNICODE_STRING pustrDevice, PUNICODE_STRING pustrDevice,
LPDEVMODEW pdm, LPDEVMODEW pdm,
HWND hwnd,
DWORD flags, DWORD flags,
LPVOID lParam) LPVOID lParam)
{ {
@ -815,7 +814,6 @@ APIENTRY
NtUserChangeDisplaySettings( NtUserChangeDisplaySettings(
PUNICODE_STRING pustrDevice, PUNICODE_STRING pustrDevice,
LPDEVMODEW lpDevMode, LPDEVMODEW lpDevMode,
HWND hwnd,
DWORD dwflags) DWORD dwflags)
{ {
WCHAR awcDevice[CCHDEVICENAME]; WCHAR awcDevice[CCHDEVICENAME];
@ -824,8 +822,7 @@ NtUserChangeDisplaySettings(
LONG lRet; LONG lRet;
/* Check arguments */ /* Check arguments */
if ((dwflags != CDS_VIDEOPARAMETERS) || if (dwflags != CDS_VIDEOPARAMETERS)
(hwnd != NULL))
{ {
EngSetLastError(ERROR_INVALID_PARAMETER); EngSetLastError(ERROR_INVALID_PARAMETER);
return DISP_CHANGE_BADPARAM; return DISP_CHANGE_BADPARAM;
@ -904,7 +901,7 @@ NtUserChangeDisplaySettings(
UserEnterExclusive(); UserEnterExclusive();
/* Call internal function */ /* Call internal function */
lRet = UserChangeDisplaySettings(pustrDevice, lpDevMode, hwnd, dwflags, NULL); lRet = UserChangeDisplaySettings(pustrDevice, lpDevMode, dwflags, NULL);
/* Release lock */ /* Release lock */
UserLeave(); UserLeave();

View file

@ -457,14 +457,14 @@ ChangeDisplaySettingsExA(
pDevModeW = GdiConvertToDevmodeW(lpDevMode); pDevModeW = GdiConvertToDevmodeW(lpDevMode);
if(pDevModeW) if(pDevModeW)
{ {
rc = NtUserChangeDisplaySettings(pDeviceName, pDevModeW, hwnd, dwflags); rc = NtUserChangeDisplaySettings(pDeviceName, pDevModeW, dwflags);
RtlFreeHeap(GetProcessHeap(), 0, pDevModeW); RtlFreeHeap(GetProcessHeap(), 0, pDevModeW);
} }
else else
rc = DISP_CHANGE_SUCCESSFUL; rc = DISP_CHANGE_SUCCESSFUL;
} }
else else
rc = NtUserChangeDisplaySettings(pDeviceName, NULL, hwnd, dwflags); rc = NtUserChangeDisplaySettings(pDeviceName, NULL, dwflags);
if (lpszDeviceName != NULL) if (lpszDeviceName != NULL)
RtlFreeUnicodeString(&DeviceName); RtlFreeUnicodeString(&DeviceName);
@ -509,7 +509,7 @@ ChangeDisplaySettingsExW(
else else
pDeviceName = NULL; pDeviceName = NULL;
rc = NtUserChangeDisplaySettings(pDeviceName, lpDevMode, hwnd, dwflags); rc = NtUserChangeDisplaySettings(pDeviceName, lpDevMode, dwflags);
return rc; return rc;
} }

View file

@ -1,6 +1,6 @@
# NAME ARG_COUNT # NAME ARG_COUNT
# #
# Funcs order should match Windows XP 5.1.2600 SP2 # Funcs order should match Windows 2003 Service Pack 2
# #
NtGdiAbortDoc 1 NtGdiAbortDoc 1
NtGdiAbortPath 1 NtGdiAbortPath 1
@ -234,7 +234,7 @@ NtGdiMonoBitmap 1
NtGdiMoveTo 4 NtGdiMoveTo 4
NtGdiOffsetClipRgn 3 NtGdiOffsetClipRgn 3
NtGdiOffsetRgn 3 NtGdiOffsetRgn 3
NtGdiOpenDCW 8 #7 NtGdiOpenDCW 7
NtGdiPatBlt 6 NtGdiPatBlt 6
NtGdiPolyPatBlt 5 NtGdiPolyPatBlt 5
NtGdiPathToRegion 1 NtGdiPathToRegion 1
@ -327,7 +327,7 @@ NtUserCallNoParam 1
NtUserCallOneParam 2 NtUserCallOneParam 2
NtUserCallTwoParam 3 NtUserCallTwoParam 3
NtUserChangeClipboardChain 2 NtUserChangeClipboardChain 2
NtUserChangeDisplaySettings 5 #4 NtUserChangeDisplaySettings 4
NtUserCheckImeHotKey 2 NtUserCheckImeHotKey 2
NtUserCheckMenuItem 3 NtUserCheckMenuItem 3
NtUserChildWindowFromPointEx 4 NtUserChildWindowFromPointEx 4
@ -388,7 +388,7 @@ NtUserGetAsyncKeyState 1
NtUserGetAtomName 2 NtUserGetAtomName 2
NtUserGetCaretBlinkTime 0 NtUserGetCaretBlinkTime 0
NtUserGetCaretPos 1 NtUserGetCaretPos 1
NtUserGetClassInfo 5 #Ex? NtUserGetClassInfo 5
NtUserGetClassName 3 NtUserGetClassName 3
NtUserGetClipboardData 2 NtUserGetClipboardData 2
NtUserGetClipboardFormatName 3 NtUserGetClipboardFormatName 3
@ -513,7 +513,7 @@ NtUserSetClipboardViewer 1
NtUserSetConsoleReserveKeys 2 NtUserSetConsoleReserveKeys 2
NtUserSetCursor 1 NtUserSetCursor 1
NtUserSetCursorContents 2 NtUserSetCursorContents 2
NtUserSetCursorIconData 6 #4 NtUserSetCursorIconData 4
NtUserSetFocus 1 NtUserSetFocus 1
NtUserSetImeHotKey 5 NtUserSetImeHotKey 5
NtUserSetImeInfoEx 1 NtUserSetImeInfoEx 1

View file

@ -1,6 +1,6 @@
// SVC_(<NAME>, <ARG_COUNT>) // SVC_(<NAME>, <ARG_COUNT>)
// //
// Funcs order should match Windows XP 5.1.2600 SP2 // Funcs order should match Windows 2003 Service Pack 2
// Note: these MUST be indented for the ARM assembler! // Note: these MUST be indented for the ARM assembler!
// //
SVC_(GdiAbortDoc, 1) SVC_(GdiAbortDoc, 1)
@ -235,7 +235,7 @@
SVC_(GdiMoveTo, 4) SVC_(GdiMoveTo, 4)
SVC_(GdiOffsetClipRgn, 3) SVC_(GdiOffsetClipRgn, 3)
SVC_(GdiOffsetRgn, 3) SVC_(GdiOffsetRgn, 3)
SVC_(GdiOpenDCW, 8) /* FIXME: 7 params on XP/2k3 */ SVC_(GdiOpenDCW, 7)
SVC_(GdiPatBlt, 6) SVC_(GdiPatBlt, 6)
SVC_(GdiPolyPatBlt, 5) SVC_(GdiPolyPatBlt, 5)
SVC_(GdiPathToRegion, 1) SVC_(GdiPathToRegion, 1)
@ -328,7 +328,7 @@
SVC_(UserCallOneParam, 2) SVC_(UserCallOneParam, 2)
SVC_(UserCallTwoParam, 3) SVC_(UserCallTwoParam, 3)
SVC_(UserChangeClipboardChain, 2) SVC_(UserChangeClipboardChain, 2)
SVC_(UserChangeDisplaySettings, 4) SVC_(UserChangeDisplaySettings, 3)
SVC_(UserCheckImeHotKey, 2) SVC_(UserCheckImeHotKey, 2)
SVC_(UserCheckMenuItem, 3) SVC_(UserCheckMenuItem, 3)
SVC_(UserChildWindowFromPointEx, 4) SVC_(UserChildWindowFromPointEx, 4)
@ -490,7 +490,7 @@
SVC_(UserRealWaitMessageEx, 2) SVC_(UserRealWaitMessageEx, 2)
SVC_(UserRedrawWindow, 4) SVC_(UserRedrawWindow, 4)
SVC_(UserRegisterClassExWOW, 7) SVC_(UserRegisterClassExWOW, 7)
SVC_(UserRegisterUserApiHook, 4) /* Note: 2 params on XP, 4 on 2k3 */ SVC_(UserRegisterUserApiHook, 4)
SVC_(UserRegisterHotKey, 4) SVC_(UserRegisterHotKey, 4)
SVC_(UserRegisterRawInputDevices, 3) SVC_(UserRegisterRawInputDevices, 3)
SVC_(UserRegisterTasklist, 1) SVC_(UserRegisterTasklist, 1)
@ -578,7 +578,7 @@
SVC_(UserUnregisterHotKey, 2) SVC_(UserUnregisterHotKey, 2)
SVC_(UserUpdateInputContext, 3) SVC_(UserUpdateInputContext, 3)
SVC_(UserUpdateInstance, 3) SVC_(UserUpdateInstance, 3)
SVC_(UserUpdateLayeredWindow, 10) /* Note: 9 params on XP, 10 on 2k3 */ SVC_(UserUpdateLayeredWindow, 10)
SVC_(UserGetLayeredWindowAttributes, 4) SVC_(UserGetLayeredWindowAttributes, 4)
SVC_(UserSetLayeredWindowAttributes, 4) SVC_(UserSetLayeredWindowAttributes, 4)
SVC_(UserUpdatePerUserSystemParameters, 2) SVC_(UserUpdatePerUserSystemParameters, 2)
@ -674,17 +674,15 @@
SVC_(UserSetDbgTagCount, 1) SVC_(UserSetDbgTagCount, 1)
SVC_(UserSetRipFlags, 1) SVC_(UserSetRipFlags, 1)
#endif //DBG #endif //DBG
//Stray syscalls //Stray syscalls (must be placed here to be correct for both checked/free builds)
SVC_(GdiMakeObjectXferable, 2) SVC_(GdiMakeObjectXferable, 2)
SVC_(DxEngGetRedirectionBitmap, 1) SVC_(DxEngGetRedirectionBitmap, 1)
// ReactOS-specific syscalls (must be at the end to not interfere!)
// ReactOS-specific syscalls)
SVC_(GdiSetViewportOrgEx, 4) SVC_(GdiSetViewportOrgEx, 4)
SVC_(GdiSetWindowOrgEx, 4) SVC_(GdiSetWindowOrgEx, 4)
SVC_(GdiGetFontFamilyInfo, 4) SVC_(GdiGetFontFamilyInfo, 4)
SVC_(GdiOffsetViewportOrgEx, 4) SVC_(GdiOffsetViewportOrgEx, 4)
SVC_(GdiOffsetWindowOrgEx, 4) SVC_(GdiOffsetWindowOrgEx, 4)
SVC_(UserGetMonitorInfo, 2) SVC_(UserGetMonitorInfo, 2)
SVC_(UserMonitorFromPoint, 3) SVC_(UserMonitorFromPoint, 3)
SVC_(UserMonitorFromRect, 2) SVC_(UserMonitorFromRect, 2)