ReactOS  0.4.14-dev-614-gbfd8a84
ntstubs.c
Go to the documentation of this file.
1 /*
2  * COPYRIGHT: See COPYING in the top level directory
3  * PROJECT: ReactOS Win32k subsystem
4  * PURPOSE: Native User stubs
5  * FILE: win32ss/user/ntuser/ntstubs.c
6  * PROGRAMER: Casper S. Hornstrup (chorns@users.sourceforge.net)
7  */
8 
9 #include <win32k.h>
10 DBG_DEFAULT_CHANNEL(UserMisc);
11 
12 DWORD
15  DWORD dwUnknown1,
16  DWORD dwUnknown2,
17  DWORD dwUnknown3)
18 {
19  STUB
20  return 0;
21 }
22 
23 //
24 // Works like BitBlt, http://msdn.microsoft.com/en-us/library/ms532278(VS.85).aspx
25 //
26 BOOL
29  HDC hdc,
30  INT nXDest,
31  INT nYDest,
32  INT nWidth,
33  INT nHeight,
34  INT nXSrc,
35  INT nYSrc,
36  DWORD dwRop )
37 {
38  BOOL Ret = FALSE;
40 
41  Ret = NtGdiBitBlt( hdc,
42  nXDest,
43  nYDest,
44  nWidth,
45  nHeight,
46  hSystemBM,
47  nXSrc,
48  nYSrc,
49  dwRop,
50  0,
51  0);
52 
53  UserLeave();
54  return Ret;
55 }
56 
57 DWORD
60  DWORD dwUnknown1,
61  DWORD dwUnknown2,
62  DWORD dwUnknown3,
63  DWORD dwUnknown4)
64 {
65  STUB;
66  return 0;
67 }
68 
69 DWORD
72  HWND hwnd1,
73  HWND hwnd2,
74  UINT u1,
75  DWORD dw1,
76  HCURSOR hc1
77 )
78 {
79  STUB
80 
81  return 0;
82 }
83 
84 BOOL
87  HWND hwnd,
88  INT idAni,
89  RECT *lprcFrom,
90  RECT *lprcTo)
91 {
92  STUB
93 
94  return 0;
95 }
96 
97 DWORD
100  DWORD Unknown0)
101 {
102  STUB
103 
104  return 0;
105 }
106 
107 BOOL
108 APIENTRY
110  HWND hwnd,
111  INT iItem,
112  PALTTABINFO pati,
113  LPWSTR pszItemText,
114  UINT cchItemText,
115  BOOL Ansi)
116 {
117  STUB
118 
119  return 0;
120 }
121 
122 NTSTATUS
123 APIENTRY
128  HINSTANCE hmodUser)
129 {
131  TRACE("Enter NtUserInitializeClientPfnArrays User32 0x%p\n", hmodUser);
132 
133  if (ClientPfnInit) return Status;
134 
136 
137  _SEH2_TRY
138  {
139  ProbeForRead( pfnClientA, sizeof(PFNCLIENT), 1);
140  ProbeForRead( pfnClientW, sizeof(PFNCLIENT), 1);
145 
149 
150  hModClient = hmodUser;
152  }
154  {
156  }
157  _SEH2_END
158 
159  if (!NT_SUCCESS(Status))
160  {
161  ERR("Failed reading Client Pfns from user space.\n");
163  }
164 
165  UserLeave();
166  return Status;
167 }
168 
169 DWORD
170 APIENTRY
172  DWORD Unknown0,
173  DWORD Unknown1,
174  DWORD Unknown2,
175  DWORD Unknown3,
176  DWORD Unknown4,
177  DWORD Unknown5,
178  DWORD Unknown6,
179  DWORD Unknown7,
180  DWORD Unknown8,
181  DWORD Unknown9,
183  DWORD Unknown11)
184 {
185  STUB
186 
187  return 0;
188 }
189 
190 DWORD
191 APIENTRY
193 {
194  STUB
195 
196  return 0;
197 }
198 
199 DWORD
200 APIENTRY
202  DWORD Unknown0,
203  DWORD Unknown1)
204 {
205  STUB
206 
207  return 0;
208 }
209 
210 DWORD
211 APIENTRY
213  DWORD Unknown0,
214  DWORD Unknown1)
215 {
216  STUB
217 
218  return 0;
219 }
220 
221 DWORD
222 APIENTRY
224  DWORD Unknown0,
225  DWORD Unknown1,
226  DWORD Unknown2,
227  DWORD Unknown3,
228  DWORD Unknown4)
229 {
230  STUB
231 
232  return 0;
233 }
234 
235 DWORD
236 APIENTRY
238  DWORD Unknown0)
239 {
240  STUB
241 
242  return 0;
243 }
244 
245 DWORD
246 APIENTRY
248  DWORD Unknown0,
249  DWORD Unknown1)
250 {
251  STUB
252 
253  return 0;
254 }
255 
256 DWORD
257 APIENTRY
259  DWORD Unknown0,
260  DWORD Unknown1)
261 {
262  STUB;
263 
264  return 0;
265 }
266 
267 DWORD
268 APIENTRY
270  DWORD Unknown0)
271 {
272  STUB;
273 
274  return 0;
275 }
276 
277 DWORD
278 APIENTRY
280  DWORD Unknown0)
281 {
282  STUB;
283 
284  return 0;
285 }
286 
287 DWORD
288 APIENTRY
290  DWORD Unknown0,
291  DWORD Unknown1)
292 {
293  STUB
294 
295  return 0;
296 }
297 
298 DWORD
299 APIENTRY
301  DWORD Unknown0,
302  DWORD Unknown1)
303 {
304  STUB
305 
306  return 0;
307 }
308 
309 BOOL
310 APIENTRY
312  int cElements,
313  IN CONST INT *lpaElements,
314  IN CONST COLORREF *lpaRgbValues,
315  FLONG Flags)
316 {
317  DWORD Ret = TRUE;
318 
319  if (cElements == 0)
320  return TRUE;
321 
322  /* We need this check to prevent overflow later */
323  if ((ULONG)cElements >= 0x40000000)
324  {
326  return FALSE;
327  }
328 
330 
331  _SEH2_TRY
332  {
333  ProbeForRead(lpaElements, cElements * sizeof(INT), 1);
334  ProbeForRead(lpaRgbValues, cElements * sizeof(COLORREF), 1);
335 
336  IntSetSysColors(cElements, lpaElements, lpaRgbValues);
337  }
339  {
341  Ret = FALSE;
342  }
343  _SEH2_END;
344 
345  if (Ret)
346  {
348 
350  }
351 
352  UserLeave();
353  return Ret;
354 }
355 
356 DWORD
357 APIENTRY
359  DWORD Unknown0,
360  DWORD Unknown1,
361  DWORD Unknown2)
362 {
363  STUB
364 
365  return 0;
366 }
367 
368 DWORD
369 APIENTRY
371  DWORD Unknown0,
372  DWORD Unknown1,
373  DWORD Unknown2)
374 {
375  STUB
376 
377  return 0;
378 }
379 
380 BOOL
381 APIENTRY
383  IN HANDLE hUserHandle,
384  IN HANDLE hJob,
385  IN BOOL bGrant)
386 {
387  STUB
388 
389  return 0;
390 }
391 
392 DWORD
393 APIENTRY
395  DWORD Unknown0)
396 {
397  STUB
398 
399  return 0;
400 }
401 
402 DWORD
403 APIENTRY
405  DWORD Unknown0,
406  DWORD Unknown1,
407  DWORD Unknown2,
408  DWORD Unknown3,
409  DWORD Unknown4,
410  DWORD Unknown5)
411 {
412  STUB
413 
414  return 0;
415 }
416 
417 DWORD
418 APIENTRY
420 {
421  STUB
422 
423  return 0;
424 }
425 
426 DWORD
427 APIENTRY
429  DWORD dwUnknown1)
430 {
431  STUB;
432  return 0;
433 }
434 
435 DWORD
436 APIENTRY
438  DWORD dwUnknown1)
439 {
440  STUB;
441  return 0;
442 }
443 
444 DWORD
445 APIENTRY
447  PRAWINPUT pData,
448  PUINT pcbSize,
449  UINT cbSizeHeader)
450 {
451  STUB;
452  return 0;
453 }
454 
455 DWORD
456 APIENTRY
458  HRAWINPUT hRawInput,
459  UINT uiCommand,
460  LPVOID pData,
461  PUINT pcbSize,
462  UINT cbSizeHeader)
463 {
464  STUB;
465  return 0;
466 }
467 
468 DWORD
469 APIENTRY
471  HANDLE hDevice,
472  UINT uiCommand,
473  LPVOID pData,
474  PUINT pcbSize
475 )
476 {
477  STUB;
478  return 0;
479 }
480 
481 DWORD
482 APIENTRY
484  PRAWINPUTDEVICELIST pRawInputDeviceList,
485  PUINT puiNumDevices,
486  UINT cbSize)
487 {
488  STUB;
489  return 0;
490 }
491 
492 DWORD
493 APIENTRY
495  PRAWINPUTDEVICE pRawInputDevices,
496  PUINT puiNumDevices,
497  UINT cbSize)
498 {
499  STUB;
500  return 0;
501 }
502 
503 DWORD
504 APIENTRY
506  DWORD dwUnknown1,
507  DWORD dwUnknown2,
508  DWORD dwUnknown3)
509 {
510  STUB;
511  return 0;
512 }
513 
514 BOOL
515 NTAPI
517  HANDLE NewProcessId,
518  HANDLE ParentThreadId,
519  ULONG dwUnknown,
520  ULONG CreateFlags)
521 {
522  // STUB;
523  TRACE("NtUserNotifyProcessCreate is UNIMPLEMENTED\n");
524  return FALSE;
525 }
526 
527 NTSTATUS
528 APIENTRY
531  OUT PUSERCONNECT pUserConnect,
532  IN ULONG Size)
533 {
536  PPROCESSINFO W32Process;
537 
538  TRACE("NtUserProcessConnect\n");
539 
540  if ( pUserConnect == NULL ||
541  Size != sizeof(*pUserConnect) )
542  {
543  return STATUS_UNSUCCESSFUL;
544  }
545 
546  /* Get the process object the user handle was referencing */
549  *PsProcessType,
550  UserMode,
551  (PVOID*)&Process,
552  NULL);
553  if (!NT_SUCCESS(Status)) return Status;
554 
555  UserEnterShared();
556 
557  /* Get Win32 process information */
558  W32Process = PsGetProcessWin32Process(Process);
559 
560  _SEH2_TRY
561  {
562  // FIXME: Check that pUserConnect->ulVersion == USER_VERSION;
563 
564  ProbeForWrite(pUserConnect, sizeof(*pUserConnect), sizeof(PVOID));
565  pUserConnect->siClient.psi = gpsi;
566  pUserConnect->siClient.aheList = gHandleTable;
567  pUserConnect->siClient.ulSharedDelta =
568  (ULONG_PTR)W32Process->HeapMappings.KernelMapping -
569  (ULONG_PTR)W32Process->HeapMappings.UserMapping;
570  }
572  {
574  }
575  _SEH2_END;
576 
577  if (!NT_SUCCESS(Status))
579 
580  UserLeave();
581 
582  /* Dereference the process object */
584 
585  return Status;
586 }
587 
588 NTSTATUS
589 APIENTRY
592  OUT PVOID ThreadInformation,
594 {
597 
598  /* Allow only CSRSS to perform this operation */
600  return STATUS_ACCESS_DENIED;
601 
603 
604  /* Get the Thread */
605  Status = ObReferenceObjectByHandle(ThreadHandle,
607  *PsThreadType,
608  UserMode,
609  (PVOID)&Thread,
610  NULL);
611  if (!NT_SUCCESS(Status)) goto Quit;
612 
613  switch (ThreadInformationClass)
614  {
615  default:
616  {
617  STUB;
619  break;
620  }
621  }
622 
624 
625 Quit:
626  UserLeave();
627  return Status;
628 }
629 
630 DWORD
631 APIENTRY
633  DWORD dwUnknown1,
634  DWORD dwUnknown2)
635 {
636  STUB;
637  return 0;
638 }
639 
640 BOOL
641 APIENTRY
643  LPMSG lpMsg,
644  HWND hWnd,
645  UINT wMsgFilterMin,
646  UINT wMsgFilterMax,
647  UINT wRemoveMsg,
648  BOOL bGMSG)
649 {
650  STUB;
651  return 0;
652 }
653 
654 BOOL
655 APIENTRY
657  DWORD dwWakeMask,
658  UINT uTimeout)
659 {
660  STUB;
661  return 0;
662 }
663 
664 BOOL
665 APIENTRY
667  IN PCRAWINPUTDEVICE pRawInputDevices,
668  IN UINT uiNumDevices,
669  IN UINT cbSize)
670 {
671  STUB;
672  return 0;
673 }
674 
677 {
678  STUB
679  return 0;
680 }
681 
682 DWORD
683 APIENTRY
685  DWORD dwUnknown1,
686  DWORD dwUnknown2,
687  DWORD dwUnknown3,
688  DWORD dwUnknown4)
689 {
690  STUB;
691  return 0;
692 }
693 
694 HDESK FASTCALL
695 IntGetDesktopObjectHandle(PDESKTOP DesktopObject);
696 
697 NTSTATUS
698 APIENTRY
701  IN PVOID ThreadInformation,
703 {
706 
707  /* Allow only CSRSS to perform this operation */
709  return STATUS_ACCESS_DENIED;
710 
712 
713  /* Get the Thread */
714  Status = ObReferenceObjectByHandle(ThreadHandle,
716  *PsThreadType,
717  UserMode,
718  (PVOID)&Thread,
719  NULL);
720  if (!NT_SUCCESS(Status)) goto Quit;
721 
722  switch (ThreadInformationClass)
723  {
725  {
726  ULONG CapturedFlags = 0;
727 
728  TRACE("Shutdown initiated\n");
729 
730  if (ThreadInformationLength != sizeof(ULONG))
731  {
733  break;
734  }
735 
736  /* Capture the caller value */
738  _SEH2_TRY
739  {
740  ProbeForWrite(ThreadInformation, sizeof(CapturedFlags), sizeof(PVOID));
741  CapturedFlags = *(PULONG)ThreadInformation;
742  }
744  {
746  _SEH2_YIELD(break);
747  }
748  _SEH2_END;
749 
750  Status = UserInitiateShutdown(Thread, &CapturedFlags);
751 
752  /* Return the modified value to the caller */
753  _SEH2_TRY
754  {
755  *(PULONG)ThreadInformation = CapturedFlags;
756  }
758  {
760  }
761  _SEH2_END;
762 
763  break;
764  }
765 
767  {
768  NTSTATUS ShutdownStatus;
769 
770  TRACE("Shutdown ended\n");
771 
772  if (ThreadInformationLength != sizeof(ShutdownStatus))
773  {
775  break;
776  }
777 
778  /* Capture the caller value */
780  _SEH2_TRY
781  {
782  ProbeForRead(ThreadInformation, sizeof(ShutdownStatus), sizeof(PVOID));
783  ShutdownStatus = *(NTSTATUS*)ThreadInformation;
784  }
786  {
788  _SEH2_YIELD(break);
789  }
790  _SEH2_END;
791 
792  Status = UserEndShutdown(Thread, ShutdownStatus);
793  break;
794  }
795 
797  {
798  HANDLE CsrPortHandle;
799 
800 
801  TRACE("Set CSR API Port for Win32k\n");
802  if (ThreadInformationLength != sizeof(CsrPortHandle))
803  {
805  break;
806  }
807 
808  /* Capture the caller value */
810  _SEH2_TRY
811  {
812  ProbeForRead(ThreadInformation, sizeof(CsrPortHandle), sizeof(PVOID));
813  CsrPortHandle = *(PHANDLE)ThreadInformation;
814  }
816  {
818  _SEH2_YIELD(break);
819  }
820  _SEH2_END;
821 
822  Status = InitCsrApiPort(CsrPortHandle);
823  break;
824  }
825 
827  {
828  HDESK hdesk;
829 
830  if (Thread != PsGetCurrentThread())
831  {
833  break;
834  }
835 
837  IntSetThreadDesktop(hdesk, FALSE);
838 
839  break;
840  }
842  {
843  if (Thread != PsGetCurrentThread())
844  {
846  break;
847  }
848 
850  break;
851  }
852  default:
853  {
854  STUB;
856  break;
857  }
858  }
859 
861 
862 Quit:
863  UserLeave();
864  return Status;
865 }
866 
867 DWORD
868 APIENTRY
870  DWORD dwUnknown1,
871  DWORD dwUnknown2)
872 {
873  STUB;
874  return 0;
875 }
876 
877 BOOL
878 APIENTRY
880 {
881  STUB;
882  return 0;
883 }
884 
885 DWORD
886 APIENTRY
888  DWORD dwUnknown1)
889 {
890  STUB;
891  return 0;
892 }
893 
894 DWORD
895 APIENTRY
897  DWORD dwUnknown1,
898  DWORD dwUnknown2,
899  DWORD dwUnknown3)
900 {
901  STUB;
902  return 0;
903 }
904 
905 DWORD
906 APIENTRY
908  DWORD dwUnknown1,
909  DWORD dwUnknown2,
910  DWORD dwUnknown3,
911  DWORD dwUnknown4)
912 {
913  STUB;
914  return 0;
915 }
916 
917 DWORD
918 APIENTRY
920 {
921  STUB;
922  return 0;
923 }
924 
925 DWORD
926 APIENTRY
928 {
929  STUB;
930  return 0;
931 }
932 
933 DWORD
934 APIENTRY
936  DWORD dwUnknown1,
937  DWORD dwUnknown2,
938  DWORD dwUnknown3)
939 {
940  STUB;
941  return 0;
942 }
943 
944 /*
945  * @unimplemented
946  */
949 {
950  STUB;
951  return FALSE;
952 }
953 
956 {
957  STUB;
958 
959  return 0;
960 }
961 
963  HWND hwnd
964 )
965 {
966  STUB;
967  return FALSE;
968 }
969 
971  HWND hwnd
972 )
973 {
974  STUB;
975  return FALSE;
976 }
977 
979  PUINT lpuiFormats,
980  UINT cFormats,
981  PUINT pcFormatsOut
982 )
983 {
984  STUB;
985  return FALSE;
986 }
987 
988 // Yes, I know, these do not belong here, just tell me where to put them
989 BOOL
990 APIENTRY
992  _In_ HANDLE hHandle,
993  _In_ DWORD dwProcessId)
994 {
995  STUB;
996  return 0;
997 }
998 
999 DWORD
1000 APIENTRY
1002  DWORD Unknown0)
1003 {
1004  STUB;
1005  return 0;
1006 }
1007 
1008 
1009 /* EOF */
BOOL APIENTRY NtUserRealWaitMessageEx(DWORD dwWakeMask, UINT uTimeout)
Definition: ntstubs.c:656
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
VOID FASTCALL UserEnterShared(VOID)
Definition: ntuser.c:241
BOOL APIENTRY NtUserGetAltTabInfo(HWND hwnd, INT iItem, PALTTABINFO pati, LPWSTR pszItemText, UINT cchItemText, BOOL Ansi)
Definition: ntstubs.c:109
#define IN
Definition: typedefs.h:38
#define WM_SYSCOLORCHANGE
Definition: winuser.h:1608
#define TRUE
Definition: types.h:120
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
DWORD APIENTRY NtUserRegisterTasklist(DWORD Unknown0)
Definition: ntstubs.c:237
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD Unknown3
Definition: conport.c:35
BOOL APIENTRY NtUserRemoveClipboardFormatListener(HWND hwnd)
Definition: ntstubs.c:970
#define STATUS_INFO_LENGTH_MISMATCH
Definition: udferr_usr.h:133
DWORD APIENTRY NtUserQueryUserCounters(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4)
Definition: ntstubs.c:223
BOOL APIENTRY NtUserLockWindowUpdate(HWND hWnd)
Definition: ntstubs.c:948
DWORD APIENTRY NtUserModifyUserStartupInfoFlags(DWORD Unknown0, DWORD Unknown1)
Definition: ntstubs.c:212
#define PsGetCurrentThread()
Definition: env_spec_w32.h:81
DWORD APIENTRY NtUserResolveDesktopForWOW(DWORD Unknown0)
Definition: ntstubs.c:676
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:225
PDESKTOP gpdeskInputDesktop
Definition: desktop.c:35
DWORD APIENTRY NtUserGetRegisteredRawInputDevices(PRAWINPUTDEVICE pRawInputDevices, PUINT puiNumDevices, UINT cbSize)
Definition: ntstubs.c:494
DWORD APIENTRY NtUserEvent(DWORD Unknown0)
Definition: ntstubs.c:99
NTSTATUS APIENTRY NtUserQueryInformationThread(IN HANDLE ThreadHandle, IN USERTHREADINFOCLASS ThreadInformationClass, OUT PVOID ThreadInformation, IN ULONG ThreadInformationLength)
Definition: ntstubs.c:590
BOOL APIENTRY NtUserBitBltSysBmp(HDC hdc, INT nXDest, INT nYDest, INT nWidth, INT nHeight, INT nXSrc, INT nYSrc, DWORD dwRop)
Definition: ntstubs.c:28
PVOID NTAPI PsGetProcessWin32Process(PEPROCESS Process)
Definition: process.c:1193
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
BOOL FASTCALL UserSendNotifyMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: message.c:1874
static HDC
Definition: imagelist.c:92
HWND hWnd
Definition: settings.c:17
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD IN DWORD Unknown6
Definition: conport.c:35
VOID NTAPI ObDereferenceObject(IN PVOID Object)
Definition: obref.c:375
HICON HCURSOR
Definition: windef.h:299
GLdouble u1
Definition: glext.h:8308
DWORD APIENTRY NtUserGetRawInputDeviceList(PRAWINPUTDEVICELIST pRawInputDeviceList, PUINT puiNumDevices, UINT cbSize)
Definition: ntstubs.c:483
#define FASTCALL
Definition: nt_native.h:50
BOOL APIENTRY NtUserDrawAnimatedRects(HWND hwnd, INT idAni, RECT *lprcFrom, RECT *lprcTo)
Definition: ntstubs.c:86
PSERVERINFO gpsi
Definition: main.c:27
int32_t INT
Definition: typedefs.h:56
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
Definition: exintrin.c:143
BOOL ClientPfnInit
Definition: ntuser.c:26
NTSTATUS InitCsrApiPort(IN HANDLE CsrPortHandle)
Definition: csr.c:38
BOOL APIENTRY NtUserSetSysColors(int cElements, IN CONST INT *lpaElements, IN CONST COLORREF *lpaRgbValues, FLONG Flags)
Definition: ntstubs.c:311
_SEH2_TRY
Definition: create.c:4250
DWORD APIENTRY NtUserQueryInputContext(DWORD dwUnknown1, DWORD dwUnknown2)
Definition: ntstubs.c:632
DWORD APIENTRY NtUserSetRipFlags(DWORD Unknown0)
Definition: ntstubs.c:279
DWORD APIENTRY NtUserRemoteRedrawScreen(VOID)
Definition: ntstubs.c:919
uint32_t ULONG_PTR
Definition: typedefs.h:63
DWORD APIENTRY NtUserRemoteRedrawRectangle(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4)
Definition: ntstubs.c:907
NTSTATUS APIENTRY NtUserInitializeClientPfnArrays(PPFNCLIENT pfnClientA, PPFNCLIENT pfnClientW, PPFNCLIENTWORKER pfnClientWorker, HINSTANCE hmodUser)
Definition: ntstubs.c:124
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
PFNCLIENT apfnClientW
Definition: ntuser.h:1010
#define ERROR_NOACCESS
Definition: winerror.h:578
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:496
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
HDESK FASTCALL IntGetDesktopObjectHandle(PDESKTOP DesktopObject)
Definition: desktop.c:1235
unsigned int BOOL
Definition: ntddk_ex.h:94
PRTL_UNICODE_STRING_BUFFER PULONG PULONG Unknown4
DWORD APIENTRY NtUserWaitForMsgAndEvent(DWORD Unknown0)
Definition: ntstubs.c:394
DWORD APIENTRY NtUserGetRawInputData(HRAWINPUT hRawInput, UINT uiCommand, LPVOID pData, PUINT pcbSize, UINT cbSizeHeader)
Definition: ntstubs.c:457
DWORD APIENTRY NtUserGetRawInputDeviceInfo(HANDLE hDevice, UINT uiCommand, LPVOID pData, PUINT pcbSize)
Definition: ntstubs.c:470
_In_ THREADINFOCLASS ThreadInformationClass
Definition: psfuncs.h:832
DWORD APIENTRY NtUserSetInformationProcess(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4)
Definition: ntstubs.c:684
#define PsGetCurrentProcess
Definition: psfuncs.h:17
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
DWORD APIENTRY NtUserHardErrorControl(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
Definition: ntstubs.c:505
smooth NULL
Definition: ftsmooth.c:416
__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)
Definition: ntstubs.c:879
W32HEAP_USER_MAPPING HeapMappings
Definition: win32.h:281
BOOL NTAPI NtUserNotifyProcessCreate(HANDLE NewProcessId, HANDLE ParentThreadId, ULONG dwUnknown, ULONG CreateFlags)
Definition: ntstubs.c:516
unsigned long FLONG
Definition: ntbasedef.h:373
BOOL APIENTRY NtUserUserHandleGrantAccess(IN HANDLE hUserHandle, IN HANDLE hJob, IN BOOL bGrant)
Definition: ntstubs.c:382
VOID FASTCALL UserEnterExclusive(VOID)
Definition: ntuser.c:247
#define TRACE(s)
Definition: solgame.cpp:4
#define _SEH2_YIELD(STMT_)
Definition: pseh2_64.h:8
BOOL APIENTRY NtUserGetUpdatedClipboardFormats(PUINT lpuiFormats, UINT cFormats, PUINT pcFormatsOut)
Definition: ntstubs.c:978
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
HDC hSystemBM
Definition: stockobj.c:52
DWORD COLORREF
Definition: windef.h:300
DWORD APIENTRY NtDxEngGetRedirectionBitmap(DWORD Unknown0)
Definition: ntstubs.c:1001
unsigned long DWORD
Definition: ntddk_ex.h:95
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: ntstubs.c:171
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
Definition: fltkernel.h:2653
#define STATUS_ACCESS_DENIED
Definition: udferr_usr.h:145
NTSTATUS APIENTRY NtUserSetInformationThread(IN HANDLE ThreadHandle, IN USERTHREADINFOCLASS ThreadInformationClass, IN PVOID ThreadInformation, IN ULONG ThreadInformationLength)
Definition: ntstubs.c:699
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132
PFNCLIENT apfnClientA
Definition: ntuser.h:1009
BOOL APIENTRY NtUserAddClipboardFormatListener(HWND hwnd)
Definition: ntstubs.c:962
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
HDC hdc
Definition: main.c:9
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
DWORD APIENTRY NtUserUpdateInputContext(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2)
Definition: ntstubs.c:358
WNDPROC aStoCidPfn[FNID_NUMSERVERPROC]
Definition: ntuser.h:1007
BOOL APIENTRY NtGdiMakeObjectXferable(_In_ HANDLE hHandle, _In_ DWORD dwProcessId)
Definition: ntstubs.c:991
DWORD APIENTRY NtUserSetConsoleReserveKeys(DWORD Unknown0, DWORD Unknown1)
Definition: ntstubs.c:247
DWORD APIENTRY NtUserUpdateInstance(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2)
Definition: ntstubs.c:370
DWORD APIENTRY NtUserDragObject(HWND hwnd1, HWND hwnd2, UINT u1, DWORD dw1, HCURSOR hc1)
Definition: ntstubs.c:71
DWORD APIENTRY NtUserWin32PoolAllocationStats(DWORD Unknown0, DWORD Unknown1, DWORD Unknown2, DWORD Unknown3, DWORD Unknown4, DWORD Unknown5)
Definition: ntstubs.c:404
VOID APIENTRY UserRedrawDesktop(VOID)
Definition: desktop.c:1561
DWORD APIENTRY NtUserSetDbgTag(DWORD Unknown0, DWORD Unknown1)
Definition: ntstubs.c:258
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:359
VOID FASTCALL SetLastNtError(NTSTATUS Status)
Definition: error.c:36
static PFNCLIENT pfnClientA
Definition: regcontrol.c:15
DWORD APIENTRY NtUserSetThreadLayoutHandles(DWORD dwUnknown1, DWORD dwUnknown2)
Definition: ntstubs.c:869
DWORD APIENTRY NtUserGetRawInputBuffer(PRAWINPUT pData, PUINT pcbSize, UINT cbSizeHeader)
Definition: ntstubs.c:446
DWORD APIENTRY NtUserSetDbgTagCount(DWORD Unknown0)
Definition: ntstubs.c:269
Status
Definition: gdiplustypes.h:24
DWORD APIENTRY NtUserBuildHimcList(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3, DWORD dwUnknown4)
Definition: ntstubs.c:59
#define ERR(fmt,...)
Definition: debug.h:109
#define _In_
Definition: no_sal2.h:204
VOID FASTCALL UserLeave(VOID)
Definition: ntuser.c:255
_SEH2_END
Definition: create.c:4424
static PFNCLIENTWORKER pfnClientWorker
Definition: regcontrol.c:17
DWORD APIENTRY NtUserDbgWin32HeapStat(DWORD Unknown0, DWORD Unknown1)
Definition: ntstubs.c:300
DWORD APIENTRY NtUserAssociateInputContext(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
Definition: ntstubs.c:14
#define STUB
Definition: kernel32.h:27
_In_ THREADINFOCLASS _In_ ULONG ThreadInformationLength
Definition: psfuncs.h:835
DWORD APIENTRY NtUserCreateInputContext(DWORD dwUnknown1)
Definition: ntstubs.c:428
BOOL IntSetThreadDesktop(IN HDESK hDesktop, IN BOOL FreeOnFailure)
Definition: desktop.c:3211
DBG_DEFAULT_CHANNEL(UserMisc)
DWORD APIENTRY NtUserCtxDisplayIOCtl(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
Definition: ntstubs.c:935
unsigned int * PULONG
Definition: retypes.h:1
unsigned int UINT
Definition: ndis.h:50
enum _USERTHREADINFOCLASS USERTHREADINFOCLASS
DWORD APIENTRY NtUserDbgWin32HeapFail(DWORD Unknown0, DWORD Unknown1)
Definition: ntstubs.c:289
DWORD APIENTRY NtUserTestForInteractiveUser(DWORD dwUnknown1)
Definition: ntstubs.c:887
NTSTATUS APIENTRY NtUserProcessConnect(IN HANDLE ProcessHandle, OUT PUSERCONNECT pUserConnect, IN ULONG Size)
Definition: ntstubs.c:529
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:219
DWORD APIENTRY NtUserMNDragOver(DWORD Unknown0, DWORD Unknown1)
Definition: ntstubs.c:201
#define OUT
Definition: typedefs.h:39
NTSTATUS UserInitiateShutdown(IN PETHREAD Thread, IN OUT PULONG pFlags)
Definition: shutdown.c:166
VOID FASTCALL IntSetSysColors(UINT nColors, CONST INT *Elements, CONST COLORREF *Colors)
Definition: stockobj.c:300
#define THREAD_QUERY_INFORMATION
Definition: pstypes.h:141
unsigned int ULONG
Definition: retypes.h:1
DWORD APIENTRY NtUserDestroyInputContext(DWORD dwUnknown1)
Definition: ntstubs.c:437
#define ULONG_PTR
Definition: config.h:101
#define PROCESS_VM_OPERATION
Definition: pstypes.h:152
DWORD APIENTRY NtUserQuerySendMessage(DWORD Unknown0)
Definition: ntstubs.c:955
DWORD APIENTRY NtUserRemoteStopScreenUpdates(VOID)
Definition: ntstubs.c:927
static PFNCLIENT pfnClientW
Definition: regcontrol.c:16
HINSTANCE hModClient
Definition: ntuser.c:25
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:6
PFNCLIENTWORKER apfnClientWorker
Definition: ntuser.h:1011
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:12
DWORD APIENTRY NtUserYieldTask(VOID)
Definition: ntstubs.c:419
WCHAR * LPWSTR
Definition: xmlstorage.h:184
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1827
_In_ HANDLE ProcessHandle
Definition: mmfuncs.h:403
BOOL APIENTRY NtUserRealInternalGetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg, BOOL bGMSG)
Definition: ntstubs.c:642
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES IN DWORD IN DWORD IN DWORD Unknown5
Definition: conport.c:35
return STATUS_SUCCESS
Definition: btrfs.c:2938
PUSER_HANDLE_TABLE gHandleTable
Definition: object.c:13
#define HWND_BROADCAST
Definition: winuser.h:1190
POBJECT_TYPE PsProcessType
Definition: process.c:20
#define CONST
Definition: pedump.c:81
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
Definition: error.c:27
unsigned int * PUINT
Definition: ndis.h:50
#define APIENTRY
Definition: api.h:79
DWORD APIENTRY NtUserRemoteConnect(DWORD dwUnknown1, DWORD dwUnknown2, DWORD dwUnknown3)
Definition: ntstubs.c:896
BOOL APIENTRY NtUserRegisterRawInputDevices(IN PCRAWINPUTDEVICE pRawInputDevices, IN UINT uiNumDevices, IN UINT cbSize)
Definition: ntstubs.c:666
DWORD APIENTRY NtUserMNDragLeave(VOID)
Definition: ntstubs.c:192