108 TRACE(
"Enter NtUserInitializeClientPfnArrays User32 0x%p\n", hmodUser);
138 ERR(
"Failed reading Client Pfns from user space.\n");
300 if ((
ULONG)cElements >= 0x40000000)
431 PRAWINPUTDEVICELIST pRawInputDeviceList,
442 PRAWINPUTDEVICE pRawInputDevices,
470 TRACE(
"NtUserNotifyProcessCreate is UNIMPLEMENTED\n");
485 TRACE(
"NtUserProcessConnect\n");
487 if (pUserConnect ==
NULL ||
488 Size !=
sizeof(*pUserConnect))
526 pUserConnect->siClient.ulSharedDelta =
530 #define SERVER_TO_CLIENT(ptr) \ 531 ((PVOID)((ULONG_PTR)ptr - pUserConnect->siClient.ulSharedDelta)) 538 pUserConnect->siClient.pDispInfo =
NULL;
543 pUserConnect->siClient.DefWindowMsgs.maxMsgs = 0;
544 pUserConnect->siClient.DefWindowMsgs.abMsgs =
NULL;
545 pUserConnect->siClient.DefWindowSpecMsgs.maxMsgs = 0;
546 pUserConnect->siClient.DefWindowSpecMsgs.abMsgs =
NULL;
548 for (
i = 0;
i <
ARRAYSIZE(pUserConnect->siClient.awmControl); ++
i)
550 pUserConnect->siClient.awmControl[
i].maxMsgs = 0;
551 pUserConnect->siClient.awmControl[
i].abMsgs =
NULL;
553 #undef SERVER_TO_CLIENT 641 IN PCRAWINPUTDEVICE pRawInputDevices,
700 ULONG CapturedFlags = 0;
702 TRACE(
"Shutdown initiated\n");
715 CapturedFlags = *(
PULONG)ThreadInformation;
729 *(
PULONG)ThreadInformation = CapturedFlags;
744 TRACE(
"Shutdown ended\n");
757 ShutdownStatus = *(
NTSTATUS*)ThreadInformation;
775 TRACE(
"Set CSR API Port for Win32k\n");
787 CsrPortHandle = *(
PHANDLE)ThreadInformation;
BOOL APIENTRY NtUserRealWaitMessageEx(DWORD dwWakeMask, UINT uTimeout)
VOID FASTCALL UserEnterShared(VOID)
BOOL APIENTRY NtUserGetAltTabInfo(HWND hwnd, INT iItem, PALTTABINFO pati, LPWSTR pszItemText, UINT cchItemText, BOOL Ansi)
#define WM_SYSCOLORCHANGE
DWORD APIENTRY NtUserRegisterTasklist(DWORD Unknown0)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD Unknown3
BOOL APIENTRY NtUserRemoveClipboardFormatListener(HWND hwnd)
#define STATUS_INFO_LENGTH_MISMATCH
DWORD APIENTRY NtUserQueryUserCounters(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4)
BOOL APIENTRY NtUserLockWindowUpdate(HWND hWnd)
DWORD APIENTRY NtUserModifyUserStartupInfoFlags(DWORD Unknown0, DWORD Unknown1)
#define PsGetCurrentThread()
DWORD APIENTRY NtUserResolveDesktopForWOW(DWORD Unknown0)
PDESKTOP gpdeskInputDesktop
DWORD APIENTRY NtUserGetRegisteredRawInputDevices(PRAWINPUTDEVICE pRawInputDevices, PUINT puiNumDevices, UINT cbSize)
DWORD APIENTRY NtUserEvent(DWORD Unknown0)
NTSTATUS APIENTRY NtUserQueryInformationThread(IN HANDLE ThreadHandle, IN USERTHREADINFOCLASS ThreadInformationClass, OUT PVOID ThreadInformation, IN ULONG ThreadInformationLength)
BOOL APIENTRY NtUserBitBltSysBmp(HDC hdc, INT nXDest, INT nYDest, INT nWidth, INT nHeight, INT nXSrc, INT nYSrc, DWORD dwRop)
PVOID NTAPI PsGetProcessWin32Process(PEPROCESS Process)
#define THREAD_SET_INFORMATION
NTSTATUS UserEndShutdown(IN PETHREAD Thread, IN NTSTATUS ShutdownStatus)
BOOL FASTCALL UserSendNotifyMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
#define SERVER_TO_CLIENT(ptr)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD IN DWORD Unknown6
IN PVOID IN PVOID IN USHORT IN USHORT Size
DWORD APIENTRY NtUserGetRawInputDeviceList(PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize)
BOOL APIENTRY NtUserDrawAnimatedRects(HWND hwnd, INT idAni, RECT *lprcFrom, RECT *lprcTo)
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
NTSTATUS InitCsrApiPort(IN HANDLE CsrPortHandle)
BOOL APIENTRY NtUserSetSysColors(int cElements, IN CONST INT *lpaElements, IN CONST COLORREF *lpaRgbValues, FLONG Flags)
DWORD APIENTRY NtUserSetRipFlags(DWORD Unknown0)
DWORD APIENTRY NtUserRemoteRedrawScreen(VOID)
DWORD APIENTRY NtUserRemoteRedrawRectangle(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4)
NTSTATUS APIENTRY NtUserInitializeClientPfnArrays(PPFNCLIENT pfnClientA, PPFNCLIENT pfnClientW, PPFNCLIENTWORKER pfnClientWorker, HINSTANCE hmodUser)
return STATUS_NOT_IMPLEMENTED
NTSTATUS NTAPI ObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
HDESK FASTCALL IntGetDesktopObjectHandle(PDESKTOP DesktopObject)
PRTL_UNICODE_STRING_BUFFER PULONG PULONG Unknown4
DWORD APIENTRY NtUserWaitForMsgAndEvent(DWORD Unknown0)
DWORD APIENTRY NtUserGetRawInputData(HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader)
DWORD APIENTRY NtUserGetRawInputDeviceInfo(HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize)
_In_ THREADINFOCLASS ThreadInformationClass
DWORD APIENTRY NtUserSetInformationProcess(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4)
#define PsGetCurrentProcess
DWORD APIENTRY NtUserHardErrorControl(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiBitBlt(_In_ HDC hdcDst, _In_ INT x, _In_ INT y, _In_ INT cx, _In_ INT cy, _In_opt_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ DWORD rop4, _In_ DWORD crBackColor, _In_ FLONG fl)
BOOL APIENTRY NtUserSoundSentry(VOID)
W32HEAP_USER_MAPPING HeapMappings
BOOL NTAPI NtUserNotifyProcessCreate(HANDLE NewProcessId, HANDLE ParentThreadId, ULONG dwUnknown, ULONG CreateFlags)
BOOL APIENTRY NtUserUserHandleGrantAccess(IN HANDLE hUserHandle, IN HANDLE hJob, IN BOOL bGrant)
VOID FASTCALL UserEnterExclusive(VOID)
_Must_inspect_result_ _In_ ULONG Flags
BOOL APIENTRY NtUserGetUpdatedClipboardFormats(PUINT lpuiFormats, UINT cFormats, PUINT pcFormatsOut)
#define NT_SUCCESS(StatCode)
#define EXCEPTION_EXECUTE_HANDLER
#define ObDereferenceObject
DWORD APIENTRY NtDxEngGetRedirectionBitmap(DWORD Unknown0)
DWORD APIENTRY NtUserInitTask(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4, DWORD Unknown5, DWORD Unknown6, DWORD Unknown7, DWORD Unknown8, DWORD Unknown9, DWORD Unknown10, DWORD Unknown11)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
#define STATUS_ACCESS_DENIED
NTSTATUS APIENTRY NtUserSetInformationThread(IN HANDLE ThreadHandle, IN USERTHREADINFOCLASS ThreadInformationClass, IN PVOID ThreadInformation, IN ULONG ThreadInformationLength)
#define STATUS_UNSUCCESSFUL
BOOL APIENTRY NtUserAddClipboardFormatListener(HWND hwnd)
POBJECT_TYPE PsThreadType
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
BOOL APIENTRY NtGdiMakeObjectXferable(_In_ HANDLE hHandle, _In_ DWORD dwProcessId)
DWORD APIENTRY NtUserSetConsoleReserveKeys(DWORD Unknown0, DWORD Unknown1)
DWORD APIENTRY NtUserUpdateInstance(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2)
DWORD APIENTRY NtUserDragObject(HWND hwnd1, HWND hwnd2, UINT u1, DWORD dw1, HCURSOR hc1)
DWORD APIENTRY NtUserWin32PoolAllocationStats(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4, DWORD Unknown5)
VOID APIENTRY UserRedrawDesktop(VOID)
DWORD APIENTRY NtUserSetDbgTag(DWORD Unknown0, DWORD Unknown1)
VOID FASTCALL SetLastNtError(NTSTATUS Status)
static PFNCLIENT pfnClientA
DWORD APIENTRY NtUserGetRawInputBuffer(PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader)
DWORD APIENTRY NtUserSetDbgTagCount(DWORD Unknown0)
VOID FASTCALL UserLeave(VOID)
static PFNCLIENTWORKER pfnClientWorker
DWORD APIENTRY NtUserDbgWin32HeapStat(DWORD Unknown0, DWORD Unknown1)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_In_ THREADINFOCLASS _In_ ULONG ThreadInformationLength
BOOL IntSetThreadDesktop(IN HDESK hDesktop, IN BOOL FreeOnFailure)
DBG_DEFAULT_CHANNEL(UserMisc)
DWORD APIENTRY NtUserCtxDisplayIOCtl(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
enum _USERTHREADINFOCLASS USERTHREADINFOCLASS
DWORD APIENTRY NtUserDbgWin32HeapFail(DWORD Unknown0, DWORD Unknown1)
DWORD APIENTRY NtUserTestForInteractiveUser(DWORD dwUnknown1)
NTSTATUS APIENTRY NtUserProcessConnect(IN HANDLE ProcessHandle, OUT PUSERCONNECT pUserConnect, IN ULONG Size)
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
DWORD APIENTRY NtUserMNDragOver(DWORD Unknown0, DWORD Unknown1)
NTSTATUS UserInitiateShutdown(IN PETHREAD Thread, IN OUT PULONG pFlags)
VOID FASTCALL IntSetSysColors(UINT nColors, CONST INT *Elements, CONST COLORREF *Colors)
#define THREAD_QUERY_INFORMATION
#define PROCESS_VM_OPERATION
DWORD APIENTRY NtUserQuerySendMessage(DWORD Unknown0)
#define RtlCopyMemory(Destination, Source, Length)
DWORD APIENTRY NtUserRemoteStopScreenUpdates(VOID)
static PFNCLIENT pfnClientW
#define _SEH2_EXCEPT(...)
#define _SEH2_GetExceptionCode()
#define _SEH2_YIELD(__stmt)
DWORD APIENTRY NtUserYieldTask(VOID)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
_In_ HANDLE ProcessHandle
BOOL APIENTRY NtUserRealInternalGetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg, BOOL bGMSG)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD Unknown5
PUSER_HANDLE_TABLE gHandleTable
POBJECT_TYPE PsProcessType
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
DWORD APIENTRY NtUserRemoteConnect(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
BOOL APIENTRY NtUserRegisterRawInputDevices(IN PCRAWINPUTDEVICE pRawInputDevices, IN UINT uiNumDevices, IN UINT cbSize)
DWORD APIENTRY NtUserMNDragLeave(VOID)