ReactOS  0.4.15-dev-4853-g3a72a52
ntstubs.c File Reference
#include <win32k.h>
Include dependency graph for ntstubs.c:

Go to the source code of this file.

Macros

#define SERVER_TO_CLIENT(ptr)   ((PVOID)((ULONG_PTR)ptr - pUserConnect->siClient.ulSharedDelta))
 

Functions

 DBG_DEFAULT_CHANNEL (UserMisc)
 
BOOL APIENTRY NtUserBitBltSysBmp (HDC hdc, INT nXDest, INT nYDest, INT nWidth, INT nHeight, INT nXSrc, INT nYSrc, DWORD dwRop)
 
DWORD APIENTRY NtUserDragObject (HWND hwnd1, HWND hwnd2, UINT u1, DWORD dw1, HCURSOR hc1)
 
BOOL APIENTRY NtUserDrawAnimatedRects (HWND hwnd, INT idAni, RECT *lprcFrom, RECT *lprcTo)
 
DWORD APIENTRY NtUserEvent (DWORD Unknown0)
 
BOOL APIENTRY NtUserGetAltTabInfo (HWND hwnd, INT iItem, PALTTABINFO pati, LPWSTR pszItemText, UINT cchItemText, BOOL Ansi)
 
NTSTATUS APIENTRY NtUserInitializeClientPfnArrays (PPFNCLIENT pfnClientA, PPFNCLIENT pfnClientW, PPFNCLIENTWORKER pfnClientWorker, HINSTANCE hmodUser)
 
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 NtUserMNDragLeave (VOID)
 
DWORD APIENTRY NtUserMNDragOver (DWORD Unknown0, DWORD Unknown1)
 
DWORD APIENTRY NtUserModifyUserStartupInfoFlags (DWORD Unknown0, DWORD Unknown1)
 
DWORD APIENTRY NtUserQueryUserCounters (DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4)
 
DWORD APIENTRY NtUserRegisterTasklist (DWORD Unknown0)
 
DWORD APIENTRY NtUserSetConsoleReserveKeys (DWORD Unknown0, DWORD Unknown1)
 
DWORD APIENTRY NtUserSetDbgTag (DWORD Unknown0, DWORD Unknown1)
 
DWORD APIENTRY NtUserSetDbgTagCount (DWORD Unknown0)
 
DWORD APIENTRY NtUserSetRipFlags (DWORD Unknown0)
 
DWORD APIENTRY NtUserDbgWin32HeapFail (DWORD Unknown0, DWORD Unknown1)
 
DWORD APIENTRY NtUserDbgWin32HeapStat (DWORD Unknown0, DWORD Unknown1)
 
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 NtUserUserHandleGrantAccess (IN HANDLE hUserHandle, IN HANDLE hJob, IN BOOL bGrant)
 
DWORD APIENTRY NtUserWaitForMsgAndEvent (DWORD Unknown0)
 
DWORD APIENTRY NtUserWin32PoolAllocationStats (DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4, DWORD Unknown5)
 
DWORD APIENTRY NtUserYieldTask (VOID)
 
DWORD APIENTRY NtUserGetRawInputBuffer (PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader)
 
DWORD APIENTRY NtUserGetRawInputData (HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader)
 
DWORD APIENTRY NtUserGetRawInputDeviceInfo (HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize)
 
DWORD APIENTRY NtUserGetRawInputDeviceList (PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize)
 
DWORD APIENTRY NtUserGetRegisteredRawInputDevices (PRAWINPUTDEVICE pRawInputDevices, PUINT puiNumDevices, UINT cbSize)
 
DWORD APIENTRY NtUserHardErrorControl (DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
 
BOOL NTAPI NtUserNotifyProcessCreate (HANDLE NewProcessId, HANDLE ParentThreadId, ULONG dwUnknown, ULONG CreateFlags)
 
NTSTATUS APIENTRY NtUserProcessConnect (IN HANDLE ProcessHandle, OUT PUSERCONNECT pUserConnect, IN ULONG Size)
 
NTSTATUS APIENTRY NtUserQueryInformationThread (IN HANDLE ThreadHandle, IN USERTHREADINFOCLASS ThreadInformationClass, OUT PVOID ThreadInformation, IN ULONG ThreadInformationLength)
 
BOOL APIENTRY NtUserRealInternalGetMessage (LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg, BOOL bGMSG)
 
BOOL APIENTRY NtUserRealWaitMessageEx (DWORD dwWakeMask, UINT uTimeout)
 
BOOL APIENTRY NtUserRegisterRawInputDevices (IN PCRAWINPUTDEVICE pRawInputDevices, IN UINT uiNumDevices, IN UINT cbSize)
 
DWORD APIENTRY NtUserResolveDesktopForWOW (DWORD Unknown0)
 
DWORD APIENTRY NtUserSetInformationProcess (DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4)
 
HDESK FASTCALL IntGetDesktopObjectHandle (PDESKTOP DesktopObject)
 
NTSTATUS APIENTRY NtUserSetInformationThread (IN HANDLE ThreadHandle, IN USERTHREADINFOCLASS ThreadInformationClass, IN PVOID ThreadInformation, IN ULONG ThreadInformationLength)
 
BOOL APIENTRY NtUserSoundSentry (VOID)
 
DWORD APIENTRY NtUserTestForInteractiveUser (DWORD dwUnknown1)
 
DWORD APIENTRY NtUserRemoteConnect (DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
 
DWORD APIENTRY NtUserRemoteRedrawRectangle (DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4)
 
DWORD APIENTRY NtUserRemoteRedrawScreen (VOID)
 
DWORD APIENTRY NtUserRemoteStopScreenUpdates (VOID)
 
DWORD APIENTRY NtUserCtxDisplayIOCtl (DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
 
BOOL APIENTRY NtUserLockWindowUpdate (HWND hWnd)
 
DWORD APIENTRY NtUserQuerySendMessage (DWORD Unknown0)
 
BOOL APIENTRY NtUserAddClipboardFormatListener (HWND hwnd)
 
BOOL APIENTRY NtUserRemoveClipboardFormatListener (HWND hwnd)
 
BOOL APIENTRY NtUserGetUpdatedClipboardFormats (PUINT lpuiFormats, UINT cFormats, PUINT pcFormatsOut)
 
BOOL APIENTRY NtGdiMakeObjectXferable (_In_ HANDLE hHandle, _In_ DWORD dwProcessId)
 
DWORD APIENTRY NtDxEngGetRedirectionBitmap (DWORD Unknown0)
 

Macro Definition Documentation

◆ SERVER_TO_CLIENT

#define SERVER_TO_CLIENT (   ptr)    ((PVOID)((ULONG_PTR)ptr - pUserConnect->siClient.ulSharedDelta))

Function Documentation

◆ DBG_DEFAULT_CHANNEL()

DBG_DEFAULT_CHANNEL ( UserMisc  )

◆ IntGetDesktopObjectHandle()

HDESK FASTCALL IntGetDesktopObjectHandle ( PDESKTOP  DesktopObject)

Definition at line 1271 of file desktop.c.

1272 {
1273  NTSTATUS Status;
1274  HDESK hDesk;
1275 
1276  ASSERT(DesktopObject);
1277 
1279  DesktopObject,
1281  NULL,
1282  (PHANDLE)&hDesk))
1283  {
1284  Status = ObOpenObjectByPointer(DesktopObject,
1285  0,
1286  NULL,
1287  0,
1289  UserMode,
1290  (PHANDLE)&hDesk);
1291  if (!NT_SUCCESS(Status))
1292  {
1293  /* Unable to create a handle */
1294  ERR("Unable to create a desktop handle\n");
1295  return NULL;
1296  }
1297  }
1298  else
1299  {
1300  TRACE("Got handle: 0x%p\n", hDesk);
1301  }
1302 
1303  return hDesk;
1304 }
BOOLEAN NTAPI ObFindHandleForObject(IN PEPROCESS Process, IN PVOID Object, IN POBJECT_TYPE ObjectType, IN POBJECT_HANDLE_INFORMATION HandleInformation, OUT PHANDLE Handle)
Definition: obhandle.c:2855
LONG NTSTATUS
Definition: precomp.h:26
POBJECT_TYPE ExDesktopObjectType
Definition: win32k.c:22
NTSTATUS NTAPI ObOpenObjectByPointer(IN PVOID Object, IN ULONG HandleAttributes, IN PACCESS_STATE PassedAccessState, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PHANDLE Handle)
Definition: obhandle.c:2741
#define PsGetCurrentProcess
Definition: psfuncs.h:17
Status
Definition: gdiplustypes.h:24
#define TRACE(s)
Definition: solgame.cpp:4
#define ASSERT(a)
Definition: mode.c:44
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
#define ERR(fmt,...)
Definition: debug.h:110
#define NULL
Definition: types.h:112

Referenced by NtUserGetThreadDesktop(), and NtUserSetInformationThread().

◆ NtDxEngGetRedirectionBitmap()

DWORD APIENTRY NtDxEngGetRedirectionBitmap ( DWORD  Unknown0)

Definition at line 965 of file ntstubs.c.

967 {
968  STUB;
969  return 0;
970 }
#define STUB
Definition: kernel32.h:27

◆ NtGdiMakeObjectXferable()

BOOL APIENTRY NtGdiMakeObjectXferable ( _In_ HANDLE  hHandle,
_In_ DWORD  dwProcessId 
)

Definition at line 955 of file ntstubs.c.

958 {
959  STUB;
960  return 0;
961 }
#define STUB
Definition: kernel32.h:27

◆ NtUserAddClipboardFormatListener()

BOOL APIENTRY NtUserAddClipboardFormatListener ( HWND  hwnd)

Definition at line 926 of file ntstubs.c.

929 {
930  STUB;
931  return FALSE;
932 }
#define FALSE
Definition: types.h:117
#define STUB
Definition: kernel32.h:27

◆ NtUserBitBltSysBmp()

BOOL APIENTRY NtUserBitBltSysBmp ( HDC  hdc,
INT  nXDest,
INT  nYDest,
INT  nWidth,
INT  nHeight,
INT  nXSrc,
INT  nYSrc,
DWORD  dwRop 
)

Definition at line 17 of file ntstubs.c.

26 {
27  BOOL Ret = FALSE;
29 
30  Ret = NtGdiBitBlt( hdc,
31  nXDest,
32  nYDest,
33  nWidth,
34  nHeight,
35  hSystemBM,
36  nXSrc,
37  nYSrc,
38  dwRop,
39  0,
40  0);
41 
42  UserLeave();
43  return Ret;
44 }
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
__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)
VOID FASTCALL UserEnterExclusive(VOID)
Definition: ntuser.c:249
HDC hSystemBM
Definition: stockobj.c:52
HDC hdc
Definition: main.c:9
VOID FASTCALL UserLeave(VOID)
Definition: ntuser.c:258

◆ NtUserCtxDisplayIOCtl()

DWORD APIENTRY NtUserCtxDisplayIOCtl ( DWORD  dwUnknown1,
DWORD  dwUnknown2,
DWORD  dwUnknown3 
)

Definition at line 899 of file ntstubs.c.

903 {
904  STUB;
905  return 0;
906 }
#define STUB
Definition: kernel32.h:27

◆ NtUserDbgWin32HeapFail()

DWORD APIENTRY NtUserDbgWin32HeapFail ( DWORD  Unknown0,
DWORD  Unknown1 
)

Definition at line 266 of file ntstubs.c.

269 {
270  STUB
271 
272  return 0;
273 }
#define STUB
Definition: kernel32.h:27

◆ NtUserDbgWin32HeapStat()

DWORD APIENTRY NtUserDbgWin32HeapStat ( DWORD  Unknown0,
DWORD  Unknown1 
)

Definition at line 277 of file ntstubs.c.

280 {
281  STUB
282 
283  return 0;
284 }
#define STUB
Definition: kernel32.h:27

◆ NtUserDragObject()

DWORD APIENTRY NtUserDragObject ( HWND  hwnd1,
HWND  hwnd2,
UINT  u1,
DWORD  dw1,
HCURSOR  hc1 
)

Definition at line 48 of file ntstubs.c.

55 {
56  STUB
57 
58  return 0;
59 }
#define STUB
Definition: kernel32.h:27

Referenced by DragObject().

◆ NtUserDrawAnimatedRects()

BOOL APIENTRY NtUserDrawAnimatedRects ( HWND  hwnd,
INT  idAni,
RECT lprcFrom,
RECT lprcTo 
)

Definition at line 63 of file ntstubs.c.

68 {
69  STUB
70 
71  return 0;
72 }
#define STUB
Definition: kernel32.h:27

Referenced by DrawAnimatedRects().

◆ NtUserEvent()

DWORD APIENTRY NtUserEvent ( DWORD  Unknown0)

Definition at line 76 of file ntstubs.c.

78 {
79  STUB
80 
81  return 0;
82 }
#define STUB
Definition: kernel32.h:27

◆ NtUserGetAltTabInfo()

BOOL APIENTRY NtUserGetAltTabInfo ( HWND  hwnd,
INT  iItem,
PALTTABINFO  pati,
LPWSTR  pszItemText,
UINT  cchItemText,
BOOL  Ansi 
)

Definition at line 86 of file ntstubs.c.

93 {
94  STUB
95 
96  return 0;
97 }
#define STUB
Definition: kernel32.h:27

Referenced by GetAltTabInfoA(), and GetAltTabInfoW().

◆ NtUserGetRawInputBuffer()

DWORD APIENTRY NtUserGetRawInputBuffer ( PRAWINPUT  pData,
PUINT  pcbSize,
UINT  cbSizeHeader 
)

Definition at line 393 of file ntstubs.c.

397 {
398  STUB;
399  return 0;
400 }
#define STUB
Definition: kernel32.h:27

◆ NtUserGetRawInputData()

DWORD APIENTRY NtUserGetRawInputData ( HRAWINPUT  hRawInput,
UINT  uiCommand,
LPVOID  pData,
PUINT  pcbSize,
UINT  cbSizeHeader 
)

Definition at line 404 of file ntstubs.c.

410 {
411  STUB;
412  return 0;
413 }
#define STUB
Definition: kernel32.h:27

◆ NtUserGetRawInputDeviceInfo()

DWORD APIENTRY NtUserGetRawInputDeviceInfo ( HANDLE  hDevice,
UINT  uiCommand,
LPVOID  pData,
PUINT  pcbSize 
)

Definition at line 417 of file ntstubs.c.

423 {
424  STUB;
425  return 0;
426 }
#define STUB
Definition: kernel32.h:27

◆ NtUserGetRawInputDeviceList()

DWORD APIENTRY NtUserGetRawInputDeviceList ( PRAWINPUTDEVICELIST  pRawInputDeviceList,
PUINT  puiNumDevices,
UINT  cbSize 
)

Definition at line 430 of file ntstubs.c.

434 {
435  STUB;
436  return 0;
437 }
#define STUB
Definition: kernel32.h:27

◆ NtUserGetRegisteredRawInputDevices()

DWORD APIENTRY NtUserGetRegisteredRawInputDevices ( PRAWINPUTDEVICE  pRawInputDevices,
PUINT  puiNumDevices,
UINT  cbSize 
)

Definition at line 441 of file ntstubs.c.

445 {
446  STUB;
447  return 0;
448 }
#define STUB
Definition: kernel32.h:27

◆ NtUserGetUpdatedClipboardFormats()

BOOL APIENTRY NtUserGetUpdatedClipboardFormats ( PUINT  lpuiFormats,
UINT  cFormats,
PUINT  pcFormatsOut 
)

Definition at line 942 of file ntstubs.c.

947 {
948  STUB;
949  return FALSE;
950 }
#define FALSE
Definition: types.h:117
#define STUB
Definition: kernel32.h:27

◆ NtUserHardErrorControl()

DWORD APIENTRY NtUserHardErrorControl ( DWORD  dwUnknown1,
DWORD  dwUnknown2,
DWORD  dwUnknown3 
)

Definition at line 452 of file ntstubs.c.

456 {
457  STUB;
458  return 0;
459 }
#define STUB
Definition: kernel32.h:27

◆ NtUserInitializeClientPfnArrays()

NTSTATUS APIENTRY NtUserInitializeClientPfnArrays ( PPFNCLIENT  pfnClientA,
PPFNCLIENT  pfnClientW,
PPFNCLIENTWORKER  pfnClientWorker,
HINSTANCE  hmodUser 
)

Definition at line 101 of file ntstubs.c.

106 {
108  TRACE("Enter NtUserInitializeClientPfnArrays User32 0x%p\n", hmodUser);
109 
110  if (ClientPfnInit) return Status;
111 
113 
114  _SEH2_TRY
115  {
116  ProbeForRead( pfnClientA, sizeof(PFNCLIENT), 1);
117  ProbeForRead( pfnClientW, sizeof(PFNCLIENT), 1);
122 
126 
127  hModClient = hmodUser;
129  }
131  {
133  }
134  _SEH2_END
135 
136  if (!NT_SUCCESS(Status))
137  {
138  ERR("Failed reading Client Pfns from user space.\n");
140  }
141 
142  UserLeave();
143  return Status;
144 }
#define TRUE
Definition: types.h:120
LONG NTSTATUS
Definition: precomp.h:26
PSERVERINFO gpsi
Definition: imm.c:17
BOOL ClientPfnInit
Definition: ntuser.c:26
_SEH2_TRY
Definition: create.c:4226
PFNCLIENT apfnClientW
Definition: ntuser.h:1028
VOID FASTCALL UserEnterExclusive(VOID)
Definition: ntuser.c:249
Status
Definition: gdiplustypes.h:24
#define TRACE(s)
Definition: solgame.cpp:4
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
PFNCLIENT apfnClientA
Definition: ntuser.h:1027
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
Definition: exintrin.c:102
WNDPROC aStoCidPfn[FNID_NUMSERVERPROC]
Definition: ntuser.h:1025
VOID FASTCALL SetLastNtError(NTSTATUS Status)
Definition: error.c:37
static PFNCLIENT pfnClientA
Definition: regcontrol.c:15
#define ERR(fmt,...)
Definition: debug.h:110
VOID FASTCALL UserLeave(VOID)
Definition: ntuser.c:258
_SEH2_END
Definition: create.c:4400
static PFNCLIENTWORKER pfnClientWorker
Definition: regcontrol.c:17
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
static PFNCLIENT pfnClientW
Definition: regcontrol.c:16
HINSTANCE hModClient
Definition: ntuser.c:25
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:40
#define STATUS_SUCCESS
Definition: shellext.h:65
PFNCLIENTWORKER apfnClientWorker
Definition: ntuser.h:1029
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:165

Referenced by RegisterClientPFN().

◆ NtUserInitTask()

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 
)

Definition at line 148 of file ntstubs.c.

161 {
162  STUB
163 
164  return 0;
165 }
#define STUB
Definition: kernel32.h:27

◆ NtUserLockWindowUpdate()

BOOL APIENTRY NtUserLockWindowUpdate ( HWND  hWnd)

Definition at line 912 of file ntstubs.c.

913 {
914  STUB;
915  return FALSE;
916 }
#define FALSE
Definition: types.h:117
#define STUB
Definition: kernel32.h:27

Referenced by LockWindowUpdate().

◆ NtUserMNDragLeave()

DWORD APIENTRY NtUserMNDragLeave ( VOID  )

Definition at line 169 of file ntstubs.c.

170 {
171  STUB
172 
173  return 0;
174 }
#define STUB
Definition: kernel32.h:27

◆ NtUserMNDragOver()

DWORD APIENTRY NtUserMNDragOver ( DWORD  Unknown0,
DWORD  Unknown1 
)

Definition at line 178 of file ntstubs.c.

181 {
182  STUB
183 
184  return 0;
185 }
#define STUB
Definition: kernel32.h:27

◆ NtUserModifyUserStartupInfoFlags()

DWORD APIENTRY NtUserModifyUserStartupInfoFlags ( DWORD  Unknown0,
DWORD  Unknown1 
)

Definition at line 189 of file ntstubs.c.

192 {
193  STUB
194 
195  return 0;
196 }
#define STUB
Definition: kernel32.h:27

◆ NtUserNotifyProcessCreate()

BOOL NTAPI NtUserNotifyProcessCreate ( HANDLE  NewProcessId,
HANDLE  ParentThreadId,
ULONG  dwUnknown,
ULONG  CreateFlags 
)

Definition at line 463 of file ntstubs.c.

468 {
469  // STUB;
470  TRACE("NtUserNotifyProcessCreate is UNIMPLEMENTED\n");
471  return FALSE;
472 }
#define FALSE
Definition: types.h:117
#define TRACE(s)
Definition: solgame.cpp:4

Referenced by CSR_SERVER_DLL_INIT().

◆ NtUserProcessConnect()

NTSTATUS APIENTRY NtUserProcessConnect ( IN HANDLE  ProcessHandle,
OUT PUSERCONNECT  pUserConnect,
IN ULONG  Size 
)

Definition at line 476 of file ntstubs.c.

480 {
483  PPROCESSINFO W32Process;
484 
485  TRACE("NtUserProcessConnect\n");
486 
487  if (pUserConnect == NULL ||
488  Size != sizeof(*pUserConnect))
489  {
490  return STATUS_UNSUCCESSFUL;
491  }
492 
493  /* Get the process object the user handle was referencing */
496  *PsProcessType,
497  UserMode,
498  (PVOID*)&Process,
499  NULL);
500  if (!NT_SUCCESS(Status)) return Status;
501 
502  UserEnterShared();
503 
504  /* Get Win32 process information */
505  W32Process = PsGetProcessWin32Process(Process);
506 
507  _SEH2_TRY
508  {
509  UINT i;
510 
511  // FIXME: Check that pUserConnect->ulVersion == USER_VERSION;
512  // FIXME: Check the value of pUserConnect->dwDispatchCount.
513 
514  ProbeForWrite(pUserConnect, sizeof(*pUserConnect), sizeof(PVOID));
515 
516  // FIXME: Instead of assuming that the mapping of the heap desktop
517  // also holds there, we **MUST** create and map instead the shared
518  // section! Its client base must be stored in W32Process->pClientBase.
519  // What is currently done (ReactOS-specific only), is that within the
520  // IntUserHeapCommitRoutine()/MapGlobalUserHeap() routines we assume
521  // it's going to be also called early, so that we manually add a very
522  // first memory mapping that corresponds to the "global user heap",
523  // and that we use instead of a actual win32 "shared USER section"
524  // (see slide 29 of https://paper.bobylive.com/Meeting_Papers/BlackHat/USA-2011/BH_US_11_Mandt_win32k_Slides.pdf )
525 
526  pUserConnect->siClient.ulSharedDelta =
527  (ULONG_PTR)W32Process->HeapMappings.KernelMapping -
528  (ULONG_PTR)W32Process->HeapMappings.UserMapping;
529 
530 #define SERVER_TO_CLIENT(ptr) \
531  ((PVOID)((ULONG_PTR)ptr - pUserConnect->siClient.ulSharedDelta))
532 
533  ASSERT(gpsi);
535 
536  pUserConnect->siClient.psi = SERVER_TO_CLIENT(gpsi);
537  pUserConnect->siClient.aheList = SERVER_TO_CLIENT(gHandleTable);
538  pUserConnect->siClient.pDispInfo = NULL;
539 
540  // NOTE: kernel server should also have a SHAREDINFO gSharedInfo;
541  // FIXME: These USER window-proc data should be used somehow!
542 
543  pUserConnect->siClient.DefWindowMsgs.maxMsgs = 0;
544  pUserConnect->siClient.DefWindowMsgs.abMsgs = NULL;
545  pUserConnect->siClient.DefWindowSpecMsgs.maxMsgs = 0;
546  pUserConnect->siClient.DefWindowSpecMsgs.abMsgs = NULL;
547 
548  for (i = 0; i < ARRAYSIZE(pUserConnect->siClient.awmControl); ++i)
549  {
550  pUserConnect->siClient.awmControl[i].maxMsgs = 0;
551  pUserConnect->siClient.awmControl[i].abMsgs = NULL;
552  }
553 #undef SERVER_TO_CLIENT
554  }
556  {
558  }
559  _SEH2_END;
560 
561  if (!NT_SUCCESS(Status))
563 
564  UserLeave();
565 
566  /* Dereference the process object */
568 
569  return Status;
570 }
VOID FASTCALL UserEnterShared(VOID)
Definition: ntuser.c:242
PVOID NTAPI PsGetProcessWin32Process(PEPROCESS Process)
Definition: process.c:1193
LONG NTSTATUS
Definition: precomp.h:26
PSERVERINFO gpsi
Definition: imm.c:17
#define SERVER_TO_CLIENT(ptr)
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
Definition: exintrin.c:143
_SEH2_TRY
Definition: create.c:4226
uint32_t ULONG_PTR
Definition: typedefs.h:65
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)
Definition: obref.c:494
W32HEAP_USER_MAPPING HeapMappings
Definition: win32.h:286
Status
Definition: gdiplustypes.h:24
#define TRACE(s)
Definition: solgame.cpp:4
#define ASSERT(a)
Definition: mode.c:44
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
#define ObDereferenceObject
Definition: obfuncs.h:203
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
VOID FASTCALL SetLastNtError(NTSTATUS Status)
Definition: error.c:37
VOID FASTCALL UserLeave(VOID)
Definition: ntuser.c:258
_SEH2_END
Definition: create.c:4400
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
Definition: glfuncs.h:248
unsigned int UINT
Definition: ndis.h:50
#define NULL
Definition: types.h:112
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:219
#define ULONG_PTR
Definition: config.h:101
#define PROCESS_VM_OPERATION
Definition: pstypes.h:160
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:40
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:165
_In_ HANDLE ProcessHandle
Definition: mmfuncs.h:403
PUSER_HANDLE_TABLE gHandleTable
Definition: object.c:13
POBJECT_TYPE PsProcessType
Definition: process.c:20

Referenced by ClientThreadSetupHelper(), Init(), START_TEST(), and UserClientConnect().

◆ NtUserQueryInformationThread()

NTSTATUS APIENTRY NtUserQueryInformationThread ( IN HANDLE  ThreadHandle,
IN USERTHREADINFOCLASS  ThreadInformationClass,
OUT PVOID  ThreadInformation,
IN ULONG  ThreadInformationLength 
)

Definition at line 574 of file ntstubs.c.

578 {
581 
582  /* Allow only CSRSS to perform this operation */
584  return STATUS_ACCESS_DENIED;
585 
587 
588  /* Get the Thread */
589  Status = ObReferenceObjectByHandle(ThreadHandle,
591  *PsThreadType,
592  UserMode,
593  (PVOID)&Thread,
594  NULL);
595  if (!NT_SUCCESS(Status)) goto Quit;
596 
597  switch (ThreadInformationClass)
598  {
599  default:
600  {
601  STUB;
603  break;
604  }
605  }
606 
608 
609 Quit:
610  UserLeave();
611  return Status;
612 }
PEPROCESS gpepCSRSS
Definition: csr.c:15
LONG NTSTATUS
Definition: precomp.h:26
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)
Definition: obref.c:494
_In_ THREADINFOCLASS ThreadInformationClass
Definition: psfuncs.h:832
#define PsGetCurrentProcess
Definition: psfuncs.h:17
VOID FASTCALL UserEnterExclusive(VOID)
Definition: ntuser.c:249
Status
Definition: gdiplustypes.h:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define ObDereferenceObject
Definition: obfuncs.h:203
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2652
#define STATUS_ACCESS_DENIED
Definition: udferr_usr.h:145
POBJECT_TYPE PsThreadType
Definition: thread.c:20
VOID FASTCALL UserLeave(VOID)
Definition: ntuser.c:258
#define STUB
Definition: kernel32.h:27
#define NULL
Definition: types.h:112
#define THREAD_QUERY_INFORMATION
Definition: pstypes.h:149
#define STATUS_SUCCESS
Definition: shellext.h:65

◆ NtUserQuerySendMessage()

DWORD APIENTRY NtUserQuerySendMessage ( DWORD  Unknown0)

Definition at line 919 of file ntstubs.c.

920 {
921  STUB;
922 
923  return 0;
924 }
#define STUB
Definition: kernel32.h:27

◆ NtUserQueryUserCounters()

DWORD APIENTRY NtUserQueryUserCounters ( DWORD  Unknown0,
DWORD  Unknown1,
DWORD  Unknown2,
DWORD  Unknown3,
DWORD  Unknown4 
)

Definition at line 200 of file ntstubs.c.

206 {
207  STUB
208 
209  return 0;
210 }
#define STUB
Definition: kernel32.h:27

◆ NtUserRealInternalGetMessage()

BOOL APIENTRY NtUserRealInternalGetMessage ( LPMSG  lpMsg,
HWND  hWnd,
UINT  wMsgFilterMin,
UINT  wMsgFilterMax,
UINT  wRemoveMsg,
BOOL  bGMSG 
)

Definition at line 616 of file ntstubs.c.

623 {
624  STUB;
625  return 0;
626 }
#define STUB
Definition: kernel32.h:27

Referenced by ResetMessagePumpHook().

◆ NtUserRealWaitMessageEx()

BOOL APIENTRY NtUserRealWaitMessageEx ( DWORD  dwWakeMask,
UINT  uTimeout 
)

Definition at line 630 of file ntstubs.c.

633 {
634  STUB;
635  return 0;
636 }
#define STUB
Definition: kernel32.h:27

Referenced by ResetMessagePumpHook().

◆ NtUserRegisterRawInputDevices()

BOOL APIENTRY NtUserRegisterRawInputDevices ( IN PCRAWINPUTDEVICE  pRawInputDevices,
IN UINT  uiNumDevices,
IN UINT  cbSize 
)

Definition at line 640 of file ntstubs.c.

644 {
645  STUB;
646  return 0;
647 }
#define STUB
Definition: kernel32.h:27

◆ NtUserRegisterTasklist()

DWORD APIENTRY NtUserRegisterTasklist ( DWORD  Unknown0)

Definition at line 214 of file ntstubs.c.

216 {
217  STUB
218 
219  return 0;
220 }
#define STUB
Definition: kernel32.h:27

Referenced by RegisterTasklist().

◆ NtUserRemoteConnect()

DWORD APIENTRY NtUserRemoteConnect ( DWORD  dwUnknown1,
DWORD  dwUnknown2,
DWORD  dwUnknown3 
)

Definition at line 860 of file ntstubs.c.

864 {
865  STUB;
866  return 0;
867 }
#define STUB
Definition: kernel32.h:27

◆ NtUserRemoteRedrawRectangle()

DWORD APIENTRY NtUserRemoteRedrawRectangle ( DWORD  dwUnknown1,
DWORD  dwUnknown2,
DWORD  dwUnknown3,
DWORD  dwUnknown4 
)

Definition at line 871 of file ntstubs.c.

876 {
877  STUB;
878  return 0;
879 }
#define STUB
Definition: kernel32.h:27

◆ NtUserRemoteRedrawScreen()

DWORD APIENTRY NtUserRemoteRedrawScreen ( VOID  )

Definition at line 883 of file ntstubs.c.

884 {
885  STUB;
886  return 0;
887 }
#define STUB
Definition: kernel32.h:27

◆ NtUserRemoteStopScreenUpdates()

DWORD APIENTRY NtUserRemoteStopScreenUpdates ( VOID  )

Definition at line 891 of file ntstubs.c.

892 {
893  STUB;
894  return 0;
895 }
#define STUB
Definition: kernel32.h:27

◆ NtUserRemoveClipboardFormatListener()

BOOL APIENTRY NtUserRemoveClipboardFormatListener ( HWND  hwnd)

Definition at line 934 of file ntstubs.c.

937 {
938  STUB;
939  return FALSE;
940 }
#define FALSE
Definition: types.h:117
#define STUB
Definition: kernel32.h:27

◆ NtUserResolveDesktopForWOW()

DWORD APIENTRY NtUserResolveDesktopForWOW ( DWORD  Unknown0)

Definition at line 650 of file ntstubs.c.

651 {
652  STUB
653  return 0;
654 }
#define STUB
Definition: kernel32.h:27

◆ NtUserSetConsoleReserveKeys()

DWORD APIENTRY NtUserSetConsoleReserveKeys ( DWORD  Unknown0,
DWORD  Unknown1 
)

Definition at line 224 of file ntstubs.c.

227 {
228  STUB
229 
230  return 0;
231 }
#define STUB
Definition: kernel32.h:27

◆ NtUserSetDbgTag()

DWORD APIENTRY NtUserSetDbgTag ( DWORD  Unknown0,
DWORD  Unknown1 
)

Definition at line 235 of file ntstubs.c.

238 {
239  STUB;
240 
241  return 0;
242 }
#define STUB
Definition: kernel32.h:27

◆ NtUserSetDbgTagCount()

DWORD APIENTRY NtUserSetDbgTagCount ( DWORD  Unknown0)

Definition at line 246 of file ntstubs.c.

248 {
249  STUB;
250 
251  return 0;
252 }
#define STUB
Definition: kernel32.h:27

◆ NtUserSetInformationProcess()

DWORD APIENTRY NtUserSetInformationProcess ( DWORD  dwUnknown1,
DWORD  dwUnknown2,
DWORD  dwUnknown3,
DWORD  dwUnknown4 
)

Definition at line 658 of file ntstubs.c.

663 {
664  STUB;
665  return 0;
666 }
#define STUB
Definition: kernel32.h:27

◆ NtUserSetInformationThread()

NTSTATUS APIENTRY NtUserSetInformationThread ( IN HANDLE  ThreadHandle,
IN USERTHREADINFOCLASS  ThreadInformationClass,
IN PVOID  ThreadInformation,
IN ULONG  ThreadInformationLength 
)

Definition at line 673 of file ntstubs.c.

677 {
680 
681  /* Allow only CSRSS to perform this operation */
683  return STATUS_ACCESS_DENIED;
684 
686 
687  /* Get the Thread */
688  Status = ObReferenceObjectByHandle(ThreadHandle,
690  *PsThreadType,
691  UserMode,
692  (PVOID)&Thread,
693  NULL);
694  if (!NT_SUCCESS(Status)) goto Quit;
695 
696  switch (ThreadInformationClass)
697  {
699  {
700  ULONG CapturedFlags = 0;
701 
702  TRACE("Shutdown initiated\n");
703 
704  if (ThreadInformationLength != sizeof(ULONG))
705  {
707  break;
708  }
709 
710  /* Capture the caller value */
712  _SEH2_TRY
713  {
714  ProbeForWrite(ThreadInformation, sizeof(CapturedFlags), sizeof(PVOID));
715  CapturedFlags = *(PULONG)ThreadInformation;
716  }
718  {
720  _SEH2_YIELD(break);
721  }
722  _SEH2_END;
723 
724  Status = UserInitiateShutdown(Thread, &CapturedFlags);
725 
726  /* Return the modified value to the caller */
727  _SEH2_TRY
728  {
729  *(PULONG)ThreadInformation = CapturedFlags;
730  }
732  {
734  }
735  _SEH2_END;
736 
737  break;
738  }
739 
741  {
742  NTSTATUS ShutdownStatus;
743 
744  TRACE("Shutdown ended\n");
745 
746  if (ThreadInformationLength != sizeof(ShutdownStatus))
747  {
749  break;
750  }
751 
752  /* Capture the caller value */
754  _SEH2_TRY
755  {
756  ProbeForRead(ThreadInformation, sizeof(ShutdownStatus), sizeof(PVOID));
757  ShutdownStatus = *(NTSTATUS*)ThreadInformation;
758  }
760  {
762  _SEH2_YIELD(break);
763  }
764  _SEH2_END;
765 
766  Status = UserEndShutdown(Thread, ShutdownStatus);
767  break;
768  }
769 
771  {
772  HANDLE CsrPortHandle;
773 
774 
775  TRACE("Set CSR API Port for Win32k\n");
776  if (ThreadInformationLength != sizeof(CsrPortHandle))
777  {
779  break;
780  }
781 
782  /* Capture the caller value */
784  _SEH2_TRY
785  {
786  ProbeForRead(ThreadInformation, sizeof(CsrPortHandle), sizeof(PVOID));
787  CsrPortHandle = *(PHANDLE)ThreadInformation;
788  }
790  {
792  _SEH2_YIELD(break);
793  }
794  _SEH2_END;
795 
796  Status = InitCsrApiPort(CsrPortHandle);
797  break;
798  }
799 
801  {
802  HDESK hdesk;
803 
804  if (Thread != PsGetCurrentThread())
805  {
807  break;
808  }
809 
811  IntSetThreadDesktop(hdesk, FALSE);
812 
813  break;
814  }
816  {
817  if (Thread != PsGetCurrentThread())
818  {
820  break;
821  }
822 
824  break;
825  }
826  default:
827  {
828  STUB;
830  break;
831  }
832  }
833 
835 
836 Quit:
837  UserLeave();
838  return Status;
839 }
#define STATUS_INFO_LENGTH_MISMATCH
Definition: udferr_usr.h:133
#define PsGetCurrentThread()
Definition: env_spec_w32.h:81
PDESKTOP gpdeskInputDesktop
Definition: desktop.c:35
PEPROCESS gpepCSRSS
Definition: csr.c:15
#define THREAD_SET_INFORMATION
Definition: nt_native.h:1337
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS UserEndShutdown(IN PETHREAD Thread, IN NTSTATUS ShutdownStatus)
Definition: shutdown.c:290
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
Definition: exintrin.c:143
NTSTATUS InitCsrApiPort(IN HANDLE CsrPortHandle)
Definition: csr.c:38
_SEH2_TRY
Definition: create.c:4226
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)
Definition: obref.c:494
HDESK FASTCALL IntGetDesktopObjectHandle(PDESKTOP DesktopObject)
Definition: desktop.c:1271
#define FALSE
Definition: types.h:117
_In_ THREADINFOCLASS ThreadInformationClass
Definition: psfuncs.h:832
#define PsGetCurrentProcess
Definition: psfuncs.h:17
VOID FASTCALL UserEnterExclusive(VOID)
Definition: ntuser.c:249
Status
Definition: gdiplustypes.h:24
#define TRACE(s)
Definition: solgame.cpp:4
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
#define ObDereferenceObject
Definition: obfuncs.h:203
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2652
#define STATUS_ACCESS_DENIED
Definition: udferr_usr.h:145
POBJECT_TYPE PsThreadType
Definition: thread.c:20
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
Definition: exintrin.c:102
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:454
VOID FASTCALL UserLeave(VOID)
Definition: ntuser.c:258
_SEH2_END
Definition: create.c:4400
#define STUB
Definition: kernel32.h:27
_In_ THREADINFOCLASS _In_ ULONG ThreadInformationLength
Definition: psfuncs.h:835
BOOL IntSetThreadDesktop(IN HDESK hDesktop, IN BOOL FreeOnFailure)
Definition: desktop.c:3252
unsigned int * PULONG
Definition: retypes.h:1
#define NULL
Definition: types.h:112
NTSTATUS UserInitiateShutdown(IN PETHREAD Thread, IN OUT PULONG pFlags)
Definition: shutdown.c:166
unsigned int ULONG
Definition: retypes.h:1
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:40
#define STATUS_SUCCESS
Definition: shellext.h:65
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:165
#define _SEH2_YIELD(__stmt)
Definition: pseh2_64.h:168

Referenced by CSR_API(), EndNowThreadProc(), UserClientConnect(), UserExitReactOS(), and UserServerHardError().

◆ NtUserSetRipFlags()

DWORD APIENTRY NtUserSetRipFlags ( DWORD  Unknown0)

Definition at line 256 of file ntstubs.c.

258 {
259  STUB;
260 
261  return 0;
262 }
#define STUB
Definition: kernel32.h:27

◆ NtUserSetSysColors()

BOOL APIENTRY NtUserSetSysColors ( int  cElements,
IN CONST INT lpaElements,
IN CONST COLORREF lpaRgbValues,
FLONG  Flags 
)

Definition at line 288 of file ntstubs.c.

293 {
294  DWORD Ret = TRUE;
295 
296  if (cElements == 0)
297  return TRUE;
298 
299  /* We need this check to prevent overflow later */
300  if ((ULONG)cElements >= 0x40000000)
301  {
303  return FALSE;
304  }
305 
307 
308  _SEH2_TRY
309  {
310  ProbeForRead(lpaElements, cElements * sizeof(INT), 1);
311  ProbeForRead(lpaRgbValues, cElements * sizeof(COLORREF), 1);
312 
313  IntSetSysColors(cElements, lpaElements, lpaRgbValues);
314  }
316  {
318  Ret = FALSE;
319  }
320  _SEH2_END;
321 
322  if (Ret)
323  {
325 
327  }
328 
329  UserLeave();
330  return Ret;
331 }
#define WM_SYSCOLORCHANGE
Definition: winuser.h:1613
#define TRUE
Definition: types.h:120
BOOL FASTCALL UserSendNotifyMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: message.c:2037
int32_t INT
Definition: typedefs.h:58
_SEH2_TRY
Definition: create.c:4226
#define ERROR_NOACCESS
Definition: winerror.h:578
#define FALSE
Definition: types.h:117
VOID FASTCALL UserEnterExclusive(VOID)
Definition: ntuser.c:249
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
DWORD COLORREF
Definition: windef.h:300
unsigned long DWORD
Definition: ntddk_ex.h:95
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
Definition: exintrin.c:102
VOID APIENTRY UserRedrawDesktop(VOID)
Definition: desktop.c:1599
VOID FASTCALL SetLastNtError(NTSTATUS Status)
Definition: error.c:37
VOID FASTCALL UserLeave(VOID)
Definition: ntuser.c:258
_SEH2_END
Definition: create.c:4400
VOID FASTCALL IntSetSysColors(UINT nColors, CONST INT *Elements, CONST COLORREF *Colors)
Definition: stockobj.c:300
unsigned int ULONG
Definition: retypes.h:1
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:40
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:165
#define HWND_BROADCAST
Definition: winuser.h:1194
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
Definition: error.c:28

Referenced by SetSysColors().

◆ NtUserSoundSentry()

BOOL APIENTRY NtUserSoundSentry ( VOID  )

Definition at line 843 of file ntstubs.c.

844 {
845  STUB;
846  return 0;
847 }
#define STUB
Definition: kernel32.h:27

◆ NtUserTestForInteractiveUser()

DWORD APIENTRY NtUserTestForInteractiveUser ( DWORD  dwUnknown1)

Definition at line 851 of file ntstubs.c.

853 {
854  STUB;
855  return 0;
856 }
#define STUB
Definition: kernel32.h:27

◆ NtUserUpdateInstance()

DWORD APIENTRY NtUserUpdateInstance ( DWORD  Unknown0,
DWORD  Unknown1,
DWORD  Unknown2 
)

Definition at line 335 of file ntstubs.c.

339 {
340  STUB
341 
342  return 0;
343 }
#define STUB
Definition: kernel32.h:27

◆ NtUserUserHandleGrantAccess()

BOOL APIENTRY NtUserUserHandleGrantAccess ( IN HANDLE  hUserHandle,
IN HANDLE  hJob,
IN BOOL  bGrant 
)

Definition at line 347 of file ntstubs.c.

351 {
352  STUB
353 
354  return 0;
355 }
#define STUB
Definition: kernel32.h:27

◆ NtUserWaitForMsgAndEvent()

DWORD APIENTRY NtUserWaitForMsgAndEvent ( DWORD  Unknown0)

Definition at line 359 of file ntstubs.c.

361 {
362  STUB
363 
364  return 0;
365 }
#define STUB
Definition: kernel32.h:27

◆ NtUserWin32PoolAllocationStats()

DWORD APIENTRY NtUserWin32PoolAllocationStats ( DWORD  Unknown0,
DWORD  Unknown1,
DWORD  Unknown2,
DWORD  Unknown3,
DWORD  Unknown4,
DWORD  Unknown5 
)

Definition at line 369 of file ntstubs.c.

376 {
377  STUB
378 
379  return 0;
380 }
#define STUB
Definition: kernel32.h:27

◆ NtUserYieldTask()

DWORD APIENTRY NtUserYieldTask ( VOID  )

Definition at line 384 of file ntstubs.c.

385 {
386  STUB
387 
388  return 0;
389 }
#define STUB
Definition: kernel32.h:27