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");
714 ProbeForWrite(ThreadInformation,
sizeof(CapturedFlags), __alignof(CapturedFlags));
715 CapturedFlags = *(
PULONG)ThreadInformation;
729 *(
PULONG)ThreadInformation = CapturedFlags;
744 TRACE(
"Shutdown ended\n");
756 ProbeForRead(ThreadInformation,
sizeof(ShutdownStatus), __alignof(ShutdownStatus));
757 ShutdownStatus = *(
NTSTATUS*)ThreadInformation;
775 TRACE(
"Set CSR API Port for Win32k\n");
786 ProbeForRead(ThreadInformation,
sizeof(CsrPortHandle), __alignof(CsrPortHandle));
787 CsrPortHandle = *(
PHANDLE)ThreadInformation;
PRTL_UNICODE_STRING_BUFFER PULONG PULONG Unknown4
#define DBG_DEFAULT_CHANNEL(ch)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD IN DWORD Unknown6
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD Unknown5
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD Unknown3
NTSTATUS InitCsrApiPort(IN HANDLE CsrPortHandle)
#define STATUS_NOT_IMPLEMENTED
#define NT_SUCCESS(StatCode)
#define PsGetCurrentThread()
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
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
#define THREAD_QUERY_INFORMATION
#define PROCESS_VM_OPERATION
enum _USERTHREADINFOCLASS USERTHREADINFOCLASS
@ UserThreadRestoreDesktop
@ UserThreadInitiateShutdown
@ UserThreadUseActiveDesktop
#define EXCEPTION_EXECUTE_HANDLER
VOID FASTCALL IntSetSysColors(UINT nColors, CONST INT *Elements, CONST COLORREF *Colors)
_In_ HANDLE ProcessHandle
_In_ THREADINFOCLASS _In_ ULONG ThreadInformationLength
_In_ THREADINFOCLASS ThreadInformationClass
#define THREAD_SET_INFORMATION
__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)
PVOID NTAPI PsGetProcessWin32Process(PEPROCESS Process)
POBJECT_TYPE PsProcessType
POBJECT_TYPE PsThreadType
DWORD APIENTRY NtUserSetRipFlags(DWORD Unknown0)
DWORD APIENTRY NtUserYieldTask(VOID)
#define SERVER_TO_CLIENT(ptr)
DWORD APIENTRY NtUserGetRawInputBuffer(PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader)
DWORD APIENTRY NtUserRemoteRedrawRectangle(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4)
BOOL NTAPI NtUserNotifyProcessCreate(HANDLE NewProcessId, HANDLE ParentThreadId, ULONG dwUnknown, ULONG CreateFlags)
DWORD APIENTRY NtUserDbgWin32HeapStat(DWORD Unknown0, DWORD Unknown1)
BOOL APIENTRY NtUserGetAltTabInfo(HWND hwnd, INT iItem, PALTTABINFO pati, LPWSTR pszItemText, UINT cchItemText, BOOL Ansi)
DWORD APIENTRY NtUserMNDragLeave(VOID)
NTSTATUS APIENTRY NtUserProcessConnect(IN HANDLE ProcessHandle, OUT PUSERCONNECT pUserConnect, IN ULONG Size)
DWORD APIENTRY NtUserMNDragOver(DWORD Unknown0, DWORD Unknown1)
DWORD APIENTRY NtUserCtxDisplayIOCtl(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
BOOL APIENTRY NtUserUserHandleGrantAccess(IN HANDLE hUserHandle, IN HANDLE hJob, IN BOOL bGrant)
BOOL APIENTRY NtUserAddClipboardFormatListener(HWND hwnd)
DWORD APIENTRY NtUserSetDbgTag(DWORD Unknown0, DWORD Unknown1)
DWORD APIENTRY NtUserResolveDesktopForWOW(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)
DWORD APIENTRY NtUserSetDbgTagCount(DWORD Unknown0)
HDESK FASTCALL IntGetDesktopObjectHandle(PDESKTOP DesktopObject)
DWORD APIENTRY NtUserRemoteConnect(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
NTSTATUS APIENTRY NtUserInitializeClientPfnArrays(PPFNCLIENT pfnClientA, PPFNCLIENT pfnClientW, PPFNCLIENTWORKER pfnClientWorker, HINSTANCE hmodUser)
DWORD APIENTRY NtUserDragObject(HWND hwnd1, HWND hwnd2, UINT u1, DWORD dw1, HCURSOR hc1)
BOOL APIENTRY NtGdiMakeObjectXferable(_In_ HANDLE hHandle, _In_ DWORD dwProcessId)
BOOL APIENTRY NtUserDrawAnimatedRects(HWND hwnd, INT idAni, RECT *lprcFrom, RECT *lprcTo)
BOOL APIENTRY NtUserGetUpdatedClipboardFormats(PUINT lpuiFormats, UINT cFormats, PUINT pcFormatsOut)
DWORD APIENTRY NtUserQuerySendMessage(DWORD Unknown0)
BOOL APIENTRY NtUserRemoveClipboardFormatListener(HWND hwnd)
NTSTATUS APIENTRY NtUserQueryInformationThread(IN HANDLE ThreadHandle, IN USERTHREADINFOCLASS ThreadInformationClass, OUT PVOID ThreadInformation, IN ULONG ThreadInformationLength)
BOOL APIENTRY NtUserSetSysColors(int cElements, IN CONST INT *lpaElements, IN CONST COLORREF *lpaRgbValues, FLONG Flags)
DWORD APIENTRY NtUserUpdateInstance(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2)
BOOL APIENTRY NtUserBitBltSysBmp(HDC hdc, INT nXDest, INT nYDest, INT nWidth, INT nHeight, INT nXSrc, INT nYSrc, DWORD dwRop)
DWORD APIENTRY NtUserSetConsoleReserveKeys(DWORD Unknown0, DWORD Unknown1)
BOOL APIENTRY NtUserLockWindowUpdate(HWND hWnd)
NTSTATUS APIENTRY NtUserSetInformationThread(IN HANDLE ThreadHandle, IN USERTHREADINFOCLASS ThreadInformationClass, IN PVOID ThreadInformation, IN ULONG ThreadInformationLength)
DWORD APIENTRY NtUserQueryUserCounters(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4)
BOOL APIENTRY NtUserSoundSentry(VOID)
DWORD APIENTRY NtUserWin32PoolAllocationStats(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4, DWORD Unknown5)
DWORD APIENTRY NtDxEngGetRedirectionBitmap(DWORD Unknown0)
BOOL APIENTRY NtUserRealWaitMessageEx(DWORD dwWakeMask, UINT uTimeout)
DWORD APIENTRY NtUserGetRegisteredRawInputDevices(PRAWINPUTDEVICE pRawInputDevices, PUINT puiNumDevices, UINT cbSize)
DWORD APIENTRY NtUserModifyUserStartupInfoFlags(DWORD Unknown0, DWORD Unknown1)
DWORD APIENTRY NtUserRegisterTasklist(DWORD Unknown0)
DWORD APIENTRY NtUserGetRawInputDeviceInfo(HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize)
DWORD APIENTRY NtUserGetRawInputDeviceList(PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize)
BOOL APIENTRY NtGdiMakeObjectUnXferable(_In_ HANDLE hHandle)
DWORD APIENTRY NtUserGetRawInputData(HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader)
DWORD APIENTRY NtUserRemoteRedrawScreen(VOID)
DWORD APIENTRY NtUserTestForInteractiveUser(DWORD dwUnknown1)
DWORD APIENTRY NtUserDbgWin32HeapFail(DWORD Unknown0, DWORD Unknown1)
DWORD APIENTRY NtUserHardErrorControl(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
DWORD APIENTRY NtUserWaitForMsgAndEvent(DWORD Unknown0)
DWORD APIENTRY NtUserEvent(DWORD Unknown0)
BOOL APIENTRY NtUserRealInternalGetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg, BOOL bGMSG)
DWORD APIENTRY NtUserSetInformationProcess(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4)
DWORD APIENTRY NtUserRemoteStopScreenUpdates(VOID)
BOOL APIENTRY NtUserRegisterRawInputDevices(IN PCRAWINPUTDEVICE pRawInputDevices, IN UINT uiNumDevices, IN UINT cbSize)
VOID FASTCALL UserLeave(VOID)
VOID FASTCALL UserEnterShared(VOID)
VOID FASTCALL UserEnterExclusive(VOID)
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)
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
static PFNCLIENT pfnClientA
static PFNCLIENT pfnClientW
static PFNCLIENTWORKER pfnClientWorker
W32HEAP_USER_MAPPING HeapMappings
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
#define RtlCopyMemory(Destination, Source, Length)
#define STATUS_ACCESS_DENIED
#define STATUS_UNSUCCESSFUL
#define STATUS_INFO_LENGTH_MISMATCH
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
VOID FASTCALL SetLastNtError(_In_ NTSTATUS Status)
VOID APIENTRY UserRedrawDesktop(VOID)
PDESKTOP gpdeskInputDesktop
BOOL IntSetThreadDesktop(IN HDESK hDesktop, IN BOOL FreeOnFailure)
BOOL FASTCALL UserSendNotifyMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
PUSER_HANDLE_TABLE gHandleTable
NTSTATUS UserEndShutdown(IN PETHREAD Thread, IN NTSTATUS ShutdownStatus)
NTSTATUS UserInitiateShutdown(IN PETHREAD Thread, IN OUT PULONG pFlags)
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
#define WM_SYSCOLORCHANGE
_Must_inspect_result_ _In_ ULONG Flags
#define ObDereferenceObject
#define PsGetCurrentProcess