blob: e3244df32fd94bd484f62b2e58a8d45d95529e94 [file]
/* **********************************************************
* Copyright (c) 2011-2017 Google, Inc. All rights reserved.
* **********************************************************/
/* Dr. Memory: the memory debugger
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License, and no later version.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
/* Need this defined and to the latest to get the latest defines and types */
#define _WIN32_WINNT 0x0601 /* == _WIN32_WINNT_WIN7 */
#define WINVER _WIN32_WINNT
#include "dr_api.h"
#include "drsyscall.h"
#include "drsyscall_os.h"
#include "drsyscall_windows.h"
#include "table_defines.h"
#include "../wininc/ndk_extypes.h" /* required by ntuser.h */
#include "../wininc/ntuser.h"
#include "../wininc/ntuser_win8.h"
/* Secondary system calls for NtUserCall{No, One, Two}Param */
/* FIXME i#1094: the official return type is DWORD_PTR but it would be more useful
* to give the actual types
*/
/* FIXME i#1153: Windows 8 added some syscalls we do not have details for */
/* FIXME i#1360: Windows 8.1 added some syscalls we do not have details for */
/* FIXME i#1750: Windows 10+ added some syscalls we do not have details for */
/* FIXME i#1089: fill in info on all the inlined args for all of
* syscalls in this file.
*/
/* These entries require special handling since related sys numbers are not 0 through N.
* We use special callback routine wingdi_get_secondary_syscall_num to return secondary
* number using syscall name & primary number.
*/
syscall_info_t syscall_UserCallNoParam_info[] = {
{{0,0},"NtUserCallNoParam.CREATEMENU", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.CREATEMENUPOPUP", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.DISABLEPROCWNDGHSTING", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.MSQCLEARWAKEMASK", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.ALLOWFOREGNDACTIVATION", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.CREATESYSTEMTHREADS", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.DESKTOPHASWATERMARK", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.DESTROY_CARET", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.GETDEVICECHANGEINFO", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.GETIMESHOWSTATUS", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.GETINPUTDESKTOP", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.GETMSESSAGEPOS", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.GETREMOTEPROCID", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{WIN8,0},"NtUserCallNoParam.GETUNPREDICTEDMESSAGEPOS", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.HIDECURSORNOCAPTURE", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.LOADCURSANDICOS", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{WIN8,0},"NtUserCallNoParam.ISQUEUEATTACHED", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.PREPAREFORLOGOFF", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.RELEASECAPTURE", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.RESETDBLCLICK", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.ZAPACTIVEANDFOUS", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.REMOTECONSHDWSTOP", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.REMOTEDISCONNECT", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.REMOTELOGOFF", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.REMOTENTSECURITY", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.REMOTESHDWSETUP", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.REMOTESHDWSTOP", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.REMOTEPASSTHRUENABLE", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.REMOTEPASSTHRUDISABLE", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.REMOTECONNECTSTATE", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.UPDATEPERUSERIMMENABLING", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,WIN13},"NtUserCallNoParam.USERPWRCALLOUTWORKER", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.WAKERITFORSHTDWN", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.INIT_MESSAGE_PUMP", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.UNINIT_MESSAGE_PUMP", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{0,0},"NtUserCallNoParam.LOADUSERAPIHOOK", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{WIN81,0},"NtUserCallNoParam.ENABLEMIPSHELLTHREAD", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{WIN81,WIN13},"NtUserCallNoParam.ISMIPSHELLTHREADENABLED", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{WIN8,0},"NtUserCallNoParam.DEFERREDDESKTOPROTATION", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{{WIN10,0},"NtUserCallNoParam.ENABLEPERMONITORMENUSCALING", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
{SECONDARY_TABLE_ENTRY_MAX_NUMBER},
{{0,0},"NtUserCallNoParam.UNKNOWN", OK, DRSYS_TYPE_UNSIGNED_INT, 1, },
};
syscall_info_t syscall_UserCallOneParam_info[] = {
{{0,0},"NtUserCallOneParam.BEGINDEFERWNDPOS", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*int count. allocates memory but in the kernel*/},
{{0,0},"NtUserCallOneParam.GETSENDMSGRECVR", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,WIN13},"NtUserCallOneParam.WINDOWFROMDC", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*HDC*/},
{{0,0},"NtUserCallOneParam.ALLOWSETFOREGND", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,WIN13},"NtUserCallOneParam.CREATEEMPTYCUROBJECT", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*unused*/},
{{0,0},"NtUserCallOneParam.CREATESYSTEMTHREADS", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*UINT*/},
{{0,0},"NtUserCallOneParam.CSDDEUNINITIALIZE", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.DIRECTEDYIELD", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.ENUMCLIPBOARDFORMATS", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*UINT*/},
{{0,0},"NtUserCallOneParam.GETCURSORPOS", OK, DRSYS_TYPE_UNSIGNED_INT, 2,
{
{0, sizeof(POINTL), W},
}
},
{{WIN10,0},"NtUserCallOneParam.FORCEFOCUSBASEDMOUSEWHEELROUTING", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.GETINPUTEVENT", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*DWORD*/},
{{0,0},"NtUserCallOneParam.GETKEYBOARDLAYOUT", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*DWORD*/},
{{0,0},"NtUserCallOneParam.GETKEYBOARDTYPE", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*DWORD*/},
{{0,0},"NtUserCallOneParam.GETPROCDEFLAYOUT", OK, DRSYS_TYPE_UNSIGNED_INT, 2,
{
{0, sizeof(DWORD), W},
}
},
{{0,0},"NtUserCallOneParam.GETQUEUESTATUS", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*DWORD*/},
{{0,0},"NtUserCallOneParam.GETWINSTAINFO", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.HANDLESYSTHRDCREATFAIL", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.LOCKFOREGNDWINDOW", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.LOADFONTS", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.MAPDEKTOPOBJECT", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.MESSAGEBEEP", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*LPARAM*/},
{{0,0},"NtUserCallOneParam.PLAYEVENTSOUND", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.POSTQUITMESSAGE", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*int exit code*/},
{{0,0},"NtUserCallOneParam.PREPAREFORLOGOFF", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.REALIZEPALETTE", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*HDC*/},
{{0,0},"NtUserCallOneParam.REGISTERLPK", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.REGISTERSYSTEMTHREAD", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.REMOTERECONNECT", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.REMOTETHINWIRESTATUS", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,WIN13},"NtUserCallOneParam.RELEASEDC", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*HDC*/
{
{0,}
}
},
{{0,0},"NtUserCallOneParam.REMOTENOTIFY", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.REPLYMESSAGE", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*LRESULT*/},
{{0,0},"NtUserCallOneParam.SETCARETBLINKTIME", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*UINT*/},
{{0,0},"NtUserCallOneParam.SETDBLCLICKTIME", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.SETIMESHOWSTATUS", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.SETMESSAGEEXTRAINFO", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*LPARAM*/},
{{0,0},"NtUserCallOneParam.SETPROCDEFLAYOUT", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*DWORD for PROCESSINFO.dwLayout*/},
{{0,0},"NtUserCallOneParam.SETWATERMARKSTRINGS", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,WIN13},"NtUserCallOneParam.SHOWCURSOR", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*BOOL*/},
{{0,0},"NtUserCallOneParam.SHOWSTARTGLASS", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.SWAPMOUSEBUTTON", OK, DRSYS_TYPE_UNSIGNED_INT, 2, /*BOOL*/},
{{0,0},"NtUserCallOneParam.WOWMODULEUNLOAD", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{0,0},"NtUserCallOneParam.UNKNOWNA", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{WIN8,0},"NtUserCallOneParam.DWMLOCKSCREENUPDATES", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{WIN8,0},"NtUserCallOneParam.ENABLESESSIONFORMMCSS", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{WIN8,0},"NtUserCallOneParam.UNKNOWNB", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{WIN8,0},"NtUserCallOneParam.ISTHREADMESSAGEQUEUEATTACHED", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{WIN81,0},"NtUserCallOneParam.POSTUIACTIONS", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{WIN12,0},"NtUserCallOneParam.SETINPUTSERVICESTATE", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{WIN14,0},"NtUserCallOneParam.GETDPIDEPENDENTMETRIC", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{{WIN13,0},"NtUserCallOneParam.FORCEENABLENUMPADTRANSLATION", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
{SECONDARY_TABLE_ENTRY_MAX_NUMBER},
{{0,0},"NtUserCallOneParam.UNKNOWN", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 2, },
};
syscall_info_t syscall_UserCallHwnd_info[] = {
{{0,0},"NtUserCallHwnd.DEREGISTERSHELLHOOKWINDOW", OK, SYSARG_TYPE_UINT32, 2, /*HWND*/},
{{0,0},"NtUserCallHwnd.DWP_GETENABLEDPOPUP", UNKNOWN, SYSARG_TYPE_UINT32, 2, },
{{0,0},"NtUserCallHwnd.GETWNDCONTEXTHLPID", OK, SYSARG_TYPE_UINT32, 2, /*HWND*/},
{{0,0},"NtUserCallHwnd.REGISTERSHELLHOOKWINDOW", OK, SYSARG_TYPE_UINT32, 2, /*HWND*/},
{{0,0},"NtUserCallHwnd.UNKNOWNA", UNKNOWN, SYSARG_TYPE_UINT32, 2, },
{{WIN10,0},"NtUserCallHwnd.UNKNOWNB", UNKNOWN, SYSARG_TYPE_UINT32, 2, },
{{WIN12,0},"NtUserCallHwnd.UNKNOWNC", UNKNOWN, SYSARG_TYPE_UINT32, 2, },
{{WIN13,0},"NtUserCallHwnd.UNKNOWND", UNKNOWN, SYSARG_TYPE_UINT32, 2, },
{SECONDARY_TABLE_ENTRY_MAX_NUMBER},
{{0,0},"NtUserCallHwnd.UNKNOWN", UNKNOWN, SYSARG_TYPE_UINT32, 2, },
};
syscall_info_t syscall_UserCallHwndOpt_info[] = {
{{0,0},"NtUserCallHwndOpt.SETPROGMANWINDOW", OK, SYSARG_TYPE_UINT32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndOpt.SETTASKMANWINDOW", OK, SYSARG_TYPE_UINT32, 2, /*HWND*/},
{SECONDARY_TABLE_ENTRY_MAX_NUMBER},
{{0,0},"NtUserCallHwndOpt.UNKNOWN", UNKNOWN, SYSARG_TYPE_UINT32, 2, /*HWND*/},
};
syscall_info_t syscall_UserCallHwndParam_info[] = {
{{0,0},"NtUserCallHwndParam.GETCLASSICOCUR", UNKNOWN, SYSARG_TYPE_UINT32, 3, },
{{0,0},"NtUserCallHwndParam.CLEARWINDOWSTATE", UNKNOWN, SYSARG_TYPE_UINT32, 3, },
{{0,0},"NtUserCallHwndParam.KILLSYSTEMTIMER", OK, SYSARG_TYPE_UINT32, 3, /*HWND, timer id*/},
{{WIN13,0},"NtUserCallHwndParam.NOTIFYOVERLAYWINDOW", OK, SYSARG_TYPE_UINT32, 3,},
{{WIN13,0},"NtUserCallHwndParam.REGISTERKBDCORRECTION", OK, SYSARG_TYPE_UINT32, 3,},
{{0,0},"NtUserCallHwndParam.SETDIALOGPOINTER", OK, SYSARG_TYPE_UINT32, 3, /*HWND, BOOL*/ },
{{0,0},"NtUserCallHwndParam.SETVISIBLE", UNKNOWN, SYSARG_TYPE_UINT32, 3, },
{{0,0},"NtUserCallHwndParam.SETWNDCONTEXTHLPID", OK, SYSARG_TYPE_UINT32, 3, /*HWND, HANDLE*/},
{{WIN81,0},"NtUserCallHwndParam.UNKNOWNA", UNKNOWN, SYSARG_TYPE_UINT32, 3, },
{{0,0},"NtUserCallHwndParam.SETWINDOWSTATE", UNKNOWN, SYSARG_TYPE_UINT32, 3, },
{{WIN10,0},"NtUserCallHwndParam.UNKNOWNB", UNKNOWN, SYSARG_TYPE_UINT32, 3, },
{{WIN10,0},"NtUserCallHwndParam.REGISTERWINDOWARRANGEMENTCALLOUT", UNKNOWN, SYSARG_TYPE_UINT32, 3, },
{{WIN11,0},"NtUserCallHwndParam.ENABLEMODERNAPPWINDOWKBDINTERCEPT", UNKNOWN, SYSARG_TYPE_UINT32, 3, },
{SECONDARY_TABLE_ENTRY_MAX_NUMBER},
{{0,0},"NtUserCallHwndParam.UNKNOWN", UNKNOWN, SYSARG_TYPE_UINT32, 3, },
};
syscall_info_t syscall_UserCallHwndLock_info[] = {
/* XXX: confirm the rest: assuming for now all just take HWND */
{{0,0},"NtUserCallHwndLock.WINDOWHASSHADOW", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.ARRANGEICONICWINDOWS", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.DRAWMENUBAR", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.CHECKIMESHOWSTATUSINTHRD", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.GETSYSMENUHANDLE", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.REDRAWFRAME", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.REDRAWFRAMEANDHOOK", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.SETDLGSYSMENU", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.SETFOREGROUNDWINDOW", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.SETSYSMENU", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.UPDATECKIENTRECT", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.UPDATEWINDOW", OK, SYSARG_TYPE_BOOL32, 2, /*HWND*/},
{{0,0},"NtUserCallHwndLock.SETACTIVEIMMERSIVEWINDOW", UNKNOWN, SYSARG_TYPE_BOOL32, 2, },
{{WIN10,0},"NtUserCallHwndLock.GETWINDOWTRACKINFOASYNC", UNKNOWN, SYSARG_TYPE_BOOL32, 2, },
{SECONDARY_TABLE_ENTRY_MAX_NUMBER},
{{0,0},"NtUserCallHwndLock.UNKNOWN", UNKNOWN, SYSARG_TYPE_BOOL32, 2, },
};
syscall_info_t syscall_UserCallTwoParam_info[] = {
{{WIN81,0},"NtUserCallTwoParam.UNKNOWNA", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallTwoParam.CHANGEWNDMSGFILTER", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallTwoParam.GETCURSORPOS", OK, DRSYS_TYPE_UNSIGNED_INT, 3,
{
{0, sizeof(POINTL), W},}/*other param is hardcoded as 0x1*/},
/* XXX i#996: not 100% sure there's not more nuanced behavior to
* this syscall. First param looks like flags and 3rd looks like
* size of buffer.
*/
{{0,0},"NtUserCallTwoParam.GETHDEVNAME", OK, DRSYS_TYPE_UNSIGNED_INT, 3,
{
{1, -2, W},
}
},
{{0,0},"NtUserCallTwoParam.INITANSIOEM", OK, DRSYS_TYPE_UNSIGNED_INT, 3,
{
{1,0, W|CT, SYSARG_TYPE_CSTRING_WIDE},
}
},
{{0,0},"NtUserCallTwoParam.NLSSENDIMENOTIFY", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallTwoParam.REGISTERGHSTWND", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallTwoParam.REGISTERLOGONPROCESS", OK, DRSYS_TYPE_UNSIGNED_INT, 3, /*HANDLE, BOOL*/},
{{0,0},"NtUserCallTwoParam.REGISTERSYSTEMTHREAD", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallTwoParam.REGISTERSBLFROSTWND", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallTwoParam.REGISTERUSERHUNGAPPHANDLERS", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallTwoParam.SHADOWCLEANUP", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallTwoParam.REMOTESHADOWSTART", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallTwoParam.SETCARETPOS", OK, DRSYS_TYPE_UNSIGNED_INT, 3, /*int, int*/},
{{0,WIN13},"NtUserCallTwoParam.SETCURSORPOS", OK, DRSYS_TYPE_UNSIGNED_INT, 3, /*int, int*/},
{{WIN14,0},"NtUserCallTwoParam.SETTHREADQUEUEMERGESETTING", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallTwoParam.SETPHYSCURSORPOS", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallTwoParam.UNHOOKWINDOWSHOOK", OK, DRSYS_TYPE_UNSIGNED_INT, 3, /*int, HOOKPROC*/},
{{0,0},"NtUserCallTwoParam.WOWCLEANUP", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{WIN10,0},"NtUserCallTwoParam.ENABLESHELLWINDOWMGT", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{WIN11,0},"NtUserCallTwoParam.SCALESYSTEMMETRICFORDPI", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{SECONDARY_TABLE_ENTRY_MAX_NUMBER},
{{0,0},"NtUserCallTwoParam.UNKNOWN", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
};
syscall_info_t syscall_UserCallHwndParamLock_info[] = {
{{WIN8,0},"NtUserCallHwndParamLock.UNKNOWNA", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallHwndParamLock.ENABLEWINDOW", OK, DRSYS_TYPE_UNSIGNED_INT, 3, /*HWND, BOOL*/},
{{WIN10,0},"NtUserCallHwndParamLock.SETMODERNAPPWINDOW", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallHwndParamLock.REDRAWTITLE", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallHwndParamLock.SHOWOWNEDPOPUPS", OK, DRSYS_TYPE_UNSIGNED_INT, 3, /*HWND, BOOL*/},
{{0,0},"NtUserCallHwndParamLock.SWITCHTOTHISWINDOW", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallHwndParamLock.UPDATEWINDOWS", UNKNOWN, DRSYS_TYPE_UNSIGNED_INT, 3, },
{{0,0},"NtUserCallHwndParamLock.VALIDATERGN", OK, SYSARG_TYPE_UINT32, 3, /*HWND, HRGN*/},
{SECONDARY_TABLE_ENTRY_MAX_NUMBER},
{{0,0},"NtUserCallHwndParamLock.UNKNOWN", UNKNOWN, SYSARG_TYPE_UINT32, 3, /*HWND, HRGN*/},
};