ReactOS 0.4.17-dev-769-g1500a35
object.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _USER_REFERENCE_ENTRY
 

Typedefs

typedef struct _USER_REFERENCE_ENTRY USER_REFERENCE_ENTRY
 
typedef struct _USER_REFERENCE_ENTRYPUSER_REFERENCE_ENTRY
 

Functions

VOID FASTCALL UserReferenceObject (PVOID obj)
 
PVOID FASTCALL UserReferenceObjectByHandle (HANDLE handle, HANDLE_TYPE type)
 
BOOL FASTCALL UserDereferenceObject (PVOID obj)
 
PVOID FASTCALL UserCreateObject (PUSER_HANDLE_TABLE ht, struct _DESKTOP *pDesktop, PTHREADINFO pti, HANDLE *h, HANDLE_TYPE type, ULONG size)
 
BOOL FASTCALL UserDeleteObject (HANDLE h, HANDLE_TYPE type)
 
PVOID UserGetObject (PUSER_HANDLE_TABLE ht, HANDLE handle, HANDLE_TYPE type)
 
PVOID UserGetObjectNoErr (PUSER_HANDLE_TABLE, HANDLE, HANDLE_TYPE)
 
BOOL FASTCALL UserCreateHandleTable (VOID)
 
BOOL FASTCALL UserObjectInDestroy (HANDLE)
 
BOOL FASTCALL UserMarkHandleGranted (HANDLE)
 
void DbgUserDumpHandleTable ()
 
PVOID FASTCALL ValidateHandle (HANDLE handle, HANDLE_TYPE type)
 
BOOLEAN UserDestroyObjectsForOwner (PUSER_HANDLE_TABLE Table, PVOID Owner)
 
BOOL FASTCALL UserMarkObjectDestroy (PVOID)
 
PVOID FASTCALL UserAssignmentLock (PVOID *ppvObj, PVOID pvNew)
 
PVOID FASTCALL UserAssignmentUnlock (PVOID *ppvObj)
 
static __inline VOID UserRefObjectCo (PVOID obj, PUSER_REFERENCE_ENTRY UserReferenceEntry)
 
static __inline VOID UserDerefObjectCo (PVOID obj)
 
void FreeProcMarkObject (_In_ PVOID Object)
 

Variables

PUSER_HANDLE_TABLE gHandleTable
 

Typedef Documentation

◆ PUSER_REFERENCE_ENTRY

◆ USER_REFERENCE_ENTRY

Function Documentation

◆ DbgUserDumpHandleTable()

void DbgUserDumpHandleTable ( )

◆ FreeProcMarkObject()

void FreeProcMarkObject ( _In_ PVOID  Object)

Definition at line 175 of file object.c.

177{
178 PPROCESSINFO ppi = ((PPROCMARKHEAD)Object)->ppi;
179
181
182 ppi->UserHandleCount--;
184}
struct _PROCMARKHEAD * PPROCMARKHEAD
static __inline BOOL UserHeapFree(PVOID lpMem)
Definition: usrheap.h:44
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
#define IntDereferenceProcessInfo(ppi)
Definition: win32.h:188

Referenced by FreeCurIconObject().

◆ UserAssignmentLock()

PVOID FASTCALL UserAssignmentLock ( PVOID ppvObj,
PVOID  pvNew 
)

Definition at line 861 of file object.c.

862{
863 PVOID pvOld = *ppvObj;
864 *ppvObj = pvNew;
865
866 if (pvOld && pvOld == pvNew)
867 return pvOld;
868
869 if (pvNew)
870 UserReferenceObject(pvNew);
871
872 if (pvOld)
873 {
874 if (UserDereferenceObject(pvOld))
875 pvOld = NULL;
876 }
877
878 return pvOld;
879}
#define NULL
Definition: types.h:112
BOOL FASTCALL UserDereferenceObject(PVOID Object)
Definition: object.c:647
VOID FASTCALL UserReferenceObject(PVOID obj)
Definition: object.c:754

Referenced by co_IntSetKeyboardLayoutForProcess(), co_UserActivateKeyboardLayout(), co_UserCreateWindowEx(), InitThreadCallback(), IntImmActivateLayout(), IntTranslateKbdMessage(), NtUserSetThreadLayoutHandles(), and UserCreateInputContext().

◆ UserAssignmentUnlock()

PVOID FASTCALL UserAssignmentUnlock ( PVOID ppvObj)

Definition at line 881 of file object.c.

882{
883 PVOID pvOld = *ppvObj;
884 *ppvObj = NULL;
885
886 if (pvOld)
887 {
888 if (UserDereferenceObject(pvOld))
889 pvOld = NULL;
890 }
891
892 return pvOld;
893}

Referenced by co_UserFreeWindow(), ExitThreadCallback(), and IntWinStaObjectDelete().

◆ UserCreateHandleTable()

BOOL FASTCALL UserCreateHandleTable ( VOID  )

Definition at line 540 of file object.c.

541{
542 PVOID mem;
543 INT HandleCount = 1024 * 4;
544
545 // FIXME: Don't alloc all at once! Must be mapped into umode also...
547 if (!mem)
548 {
549 ERR("Failed creating handle table\n");
550 return FALSE;
551 }
552
554 if (gHandleTable == NULL)
555 {
557 ERR("Failed creating handle table\n");
558 return FALSE;
559 }
560
561 // FIXME: Make auto growable
563
564 return TRUE;
565}
#define ERR(fmt,...)
Definition: precomp.h:57
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
Definition: ntuser.h:20
Definition: mem.c:349
int32_t INT
Definition: typedefs.h:58
static ULONG HandleCount
Definition: uefidisk.c:67
static __inline PVOID UserHeapAlloc(SIZE_T Bytes)
Definition: usrheap.h:34
PUSER_HANDLE_TABLE gHandleTable
Definition: object.c:13
VOID UserInitHandleTable(PUSER_HANDLE_TABLE ht, PVOID mem, ULONG bytes)
Definition: object.c:407

Referenced by InitUserImpl().

◆ UserCreateObject()

PVOID FASTCALL UserCreateObject ( PUSER_HANDLE_TABLE  ht,
struct _DESKTOP pDesktop,
PTHREADINFO  pti,
HANDLE h,
HANDLE_TYPE  type,
ULONG  size 
)

◆ UserDeleteObject()

BOOL FASTCALL UserDeleteObject ( HANDLE  h,
HANDLE_TYPE  type 
)

Definition at line 740 of file object.c.

741{
743
744 if (!body) return FALSE;
745
746 ASSERT( ((PHEAD)body)->cLockObj >= 1);
747 ASSERT( ((PHEAD)body)->cLockObj < 0x10000);
748
750}
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLfloat GLfloat GLfloat GLfloat h
Definition: glext.h:7723
#define ASSERT(a)
Definition: mode.c:44
static const void * body(MD5_CTX *ctx, const void *data, unsigned long size)
Definition: md5.c:100
Definition: ntuser.h:183
PVOID UserGetObject(PUSER_HANDLE_TABLE ht, HANDLE handle, HANDLE_TYPE type)
Definition: object.c:499
BOOL FASTCALL UserFreeHandle(PUSER_HANDLE_TABLE ht, HANDLE handle)
Definition: object.c:689

Referenced by co_UserFreeWindow(), co_UserLoadKbdLayout(), DestroyCallProc(), IntDestroyCurIconObject(), IntDestroyInputContext(), IntDestroyMenuObject(), IntDestroyMonitorObject(), IntEndDeferWindowPosEx(), IntFreeElementData(), IntFreeHook(), IntRemoveEvent(), NtUserCallOneParam(), NtUserConvertMemHandle(), NtUserCreateAcceleratorTable(), RemoveTimer(), UnloadKbdFile(), UserDestroyAccelTable(), UserDestroyInputContext(), UserLoadKbdFile(), and UserUnloadKbl().

◆ UserDereferenceObject()

BOOL FASTCALL UserDereferenceObject ( PVOID  obj)

Definition at line 647 of file object.c.

648{
649 PHEAD ObjHead = Object;
650
651 ASSERT(ObjHead->cLockObj >= 1);
652 ASSERT(ObjHead->cLockObj < 0x10000);
653
654 if (--ObjHead->cLockObj == 0)
655 {
658
659 entry = handle_to_entry(gHandleTable, ObjHead->h);
660
661 ASSERT(entry != NULL);
662 /* The entry should be marked as in deletion */
664
665 type = entry->type;
668
669 /* We can now get rid of everything */
671
672#if 0
673 /* Call the object destructor */
674 ASSERT(ObjectCallbacks[type].ObjectCleanup != NULL);
675 ObjectCallbacks[type].ObjectCleanup(Object);
676#endif
677
678 /* And free it */
680 ObjectCallbacks[type].ObjectFree(Object);
681
682 return TRUE;
683 }
684 return FALSE;
685}
#define HANDLEENTRY_INDESTROY
Definition: ntuser.h:14
enum _HANDLE_TYPE HANDLE_TYPE
@ TYPE_CTYPES
Definition: ntuser.h:65
uint32_t entry
Definition: isohybrid.c:63
DWORD cLockObj
Definition: ntuser.h:185
HANDLE h
Definition: ntuser.h:184
#define TYPE_FREE
Definition: sunlabel.h:176
static const struct @5771 ObjectCallbacks[TYPE_CTYPES]
void(* ObjectFree)(PVOID)
Definition: object.c:253
static __inline void * free_user_entry(PUSER_HANDLE_TABLE ht, PUSER_HANDLE_ENTRY entry)
Definition: object.c:417
PUSER_HANDLE_ENTRY handle_to_entry(PUSER_HANDLE_TABLE ht, HANDLE handle)
Definition: object.c:341

Referenced by _Success_(), co_UserCreateWindowEx(), co_UserFreeWindow(), co_UserLoadKbdLayout(), co_UserSetParent(), co_WinPosSearchChildren(), CreateCallProc(), DefWndDoSizeMove(), DesktopWindowProc(), ExitThreadCallback(), FreeCurIconObject(), IntAddSynthesizedFormats(), IntCleanupCurIconCache(), IntCreateCurIconHandle(), IntCreateWindow(), IntDefWindowProc(), IntDestroyClass(), IntDestroyMonitorObject(), IntEndDeferWindowPosEx(), IntRemoveCursorFromList(), IntSetAconData(), IntSetOwner(), IntSynthesizeDib(), IntSystemSetCursor(), MENU_DrawBitmapItem(), MsqCleanupMessageQueue(), NtUserConvertMemHandle(), NtUserCreateAcceleratorTable(), NtUserDestroyCursor(), NtUserDrawIconEx(), NtUserGetCursorFrameInfo(), NtUserGetIconSize(), NtUserSetCursor(), NtUserSetWindowsHookEx(), NtUserSetWinEventHook(), NtUserUnhookWindowsHookEx(), RemoveTimer(), ReplaceWndPtr(), UserAssignmentLock(), UserAssignmentUnlock(), UserAttachThreadInput(), UserCreateInputContext(), UserCreateMenu(), UserDerefObjectCo(), UserDrawCaption(), UserDrawSysMenuButton(), UserFreeHandle(), UserLoadKbdFile(), UserSetClassLongPtr(), and UserSetCursorIconData().

◆ UserDerefObjectCo()

static __inline VOID UserDerefObjectCo ( PVOID  obj)
static

Definition at line 44 of file object.h.

45{
46 PTHREADINFO W32Thread;
47 PSINGLE_LIST_ENTRY ReferenceEntry;
48 PUSER_REFERENCE_ENTRY UserReferenceEntry;
49
50 ASSERT(obj != NULL);
52 ASSERT(W32Thread != NULL);
53 ReferenceEntry = PopEntryList(&W32Thread->ReferencesList);
54 ASSERT(ReferenceEntry != NULL);
55 UserReferenceEntry = CONTAINING_RECORD(ReferenceEntry, USER_REFERENCE_ENTRY, Entry);
56 ASSERT(UserReferenceEntry != NULL);
57
58 ASSERT(obj == UserReferenceEntry->obj);
60#if DBG
61 W32Thread->cRefObjectCo--;
62#endif
63}
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
Definition: thread.c:805
BOOL FASTCALL UserDereferenceObject(PVOID obj)
Definition: object.c:647
Entry
Definition: section.c:5216
Definition: ntbasedef.h:640
SINGLE_LIST_ENTRY ReferencesList
Definition: win32.h:158
Definition: object.h:4
PVOID obj
Definition: object.h:6
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
FORCEINLINE PSINGLE_LIST_ENTRY PopEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead)
Definition: rtlfuncs.h:243

Referenced by ActivateOtherWindowMin(), co_HOOK_CallHooks(), co_IntCreateDefaultImeWindow(), co_IntPaintWindows(), co_IntProcessKeyboardMessage(), co_IntSendActivateMessages(), co_IntSendDeactivateMessages(), co_IntSendMessageTimeoutSingle(), co_IntSendMessageWithCallBack(), co_IntSnapWindow(), co_IntUnloadKeyboardLayoutEx(), co_IntUpdateWindows(), co_UserActivateKeyboardLayout(), co_UserCreateWindowEx(), co_UserFreeWindow(), co_UserGetUpdateRect(), co_UserGetUpdateRgn(), co_UserSetParent(), co_UserTrackSystemMenu(), co_VIS_WindowLayoutChanged(), co_WinPosActivateOtherWindow(), co_WinPosArrangeIconicWindows(), co_WinPosWindowFromPoint(), DefWndHandleSetCursor(), DefWndHandleSysCommand(), IntActivateWindow(), IntCheckImeShowStatus(), IntDeactivateWindow(), IntDefWindowProc(), IntDestroyOwnedWindows(), IntEndDeferWindowPosEx(), IntFocusSetInputContext(), IntImeWindowPosChanged(), IntImmActivateLayout(), IntNotifyWinEvent(), IntScrollWindowEx(), IntSendChildNCPaint(), IntSendFocusMessages(), IntSendMessageToUI(), IntSendOpenStatusNotify(), IntSendParentNotify(), MENU_EnsureMenuItemVisible(), MENU_ShowPopup(), NtGdiUpdateColors(), NtUserBeginPaint(), NtUserCallHwndLock(), NtUserCallHwndParam(), NtUserCallHwndParamLock(), NtUserDestroyWindow(), NtUserEnableScrollBar(), NtUserEndPaint(), NtUserFillWindow(), NtUserGetMenuBarInfo(), NtUserGetScrollBarInfo(), NtUserHideCaret(), NtUserMessageCall(), NtUserNotifyWinEvent(), NtUserRedrawWindow(), NtUserSBGetParms(), NtUserScrollWindowEx(), NtUserSetActiveWindow(), NtUserSetFocus(), NtUserSetInternalWindowPos(), NtUserSetMenu(), NtUserSetScrollBarInfo(), NtUserSetScrollInfo(), NtUserSetShellWindowEx(), NtUserSetWindowPlacement(), NtUserSetWindowPos(), NtUserShowCaret(), NtUserShowScrollBar(), NtUserShowWindow(), NtUserShowWindowAsync(), NtUserTrackPopupMenuEx(), NtUserTranslateAccelerator(), NtUserWindowFromPoint(), SpiNotifyNCMetricsChanged(), and WinPosDoOwnedPopups().

◆ UserDestroyObjectsForOwner()

BOOLEAN UserDestroyObjectsForOwner ( PUSER_HANDLE_TABLE  Table,
PVOID  Owner 
)

Definition at line 777 of file object.c.

778{
779 int i;
781 BOOLEAN Ret = TRUE;
782
783 /* Sweep the whole handle table */
784 for (i = 0; i < Table->allocated_handles; i++)
785 {
786 Entry = &Table->handles[i];
787
788 if (Entry->pi != Owner)
789 continue;
790
791 /* Do not destroy if it's already been done */
792 if (Entry->flags & HANDLEENTRY_INDESTROY)
793 continue;
794
795 /* Call destructor */
796 if (!ObjectCallbacks[Entry->type].ObjectDestroy(Entry->ptr))
797 {
798 ERR("Failed destructing object %p, type %u.\n", Entry->ptr, Entry->type);
799 /* Don't return immediately, we must continue destroying the other objects */
800 Ret = FALSE;
801 }
802 }
803
804 return Ret;
805}
unsigned char BOOLEAN
Definition: actypes.h:127
ASMGENDATA Table[]
Definition: genincdata.c:61
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
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID Owner
Definition: rtlfuncs.h:1629

Referenced by ExitThreadCallback(), and UserProcessDestroy().

◆ UserGetObject()

◆ UserGetObjectNoErr()

PVOID UserGetObjectNoErr ( PUSER_HANDLE_TABLE  ht,
HANDLE  handle,
HANDLE_TYPE  type 
)

Definition at line 485 of file object.c.

486{
488
489 ASSERT(ht);
490
491 if (!(entry = handle_to_entry(ht, handle )) || entry->type != type)
492 {
493 return NULL;
494 }
495 return entry->ptr;
496}

Referenced by IntDestroyInputContext(), NC_IconForWindow(), NtUserAssociateInputContext(), NtUserDestroyInputContext(), NtUserSetCursor(), and ValidateHwndNoErr().

◆ UserMarkHandleGranted()

BOOL FASTCALL UserMarkHandleGranted ( HANDLE  h)

Definition at line 726 of file object.c.

727{
729
731 if (entry == NULL)
732 return FALSE;
733
734 entry->flags |= HANDLEENTRY_GRANTED;
735 return TRUE;
736}
#define HANDLEENTRY_GRANTED
Definition: ntuser.h:17

◆ UserMarkObjectDestroy()

BOOL FASTCALL UserMarkObjectDestroy ( PVOID  Object)

Definition at line 624 of file object.c.

625{
627 PHEAD ObjHead = Object;
628
629 entry = handle_to_entry(gHandleTable, ObjHead->h);
630
631 ASSERT(entry != NULL);
632
633 entry->flags |= HANDLEENTRY_DESTROY;
634
635 if (ObjHead->cLockObj > 1)
636 {
637 entry->flags &= ~HANDLEENTRY_INDESTROY;
638 TRACE("Count %d\n",ObjHead->cLockObj);
639 return FALSE;
640 }
641
642 return TRUE;
643}
#define HANDLEENTRY_DESTROY
Definition: ntuser.h:13
#define TRACE(s)
Definition: solgame.cpp:4

Referenced by co_IntUnloadKeyboardLayoutEx(), co_UserFreeWindow(), IntDestroyMenuObject(), and UserDestroyInputContext().

◆ UserObjectInDestroy()

BOOL FASTCALL UserObjectInDestroy ( HANDLE  h)

Definition at line 707 of file object.c.

708{
710
711 if (!(entry = handle_to_entry( gHandleTable, h )))
712 {
714 return TRUE;
715 }
716 return (entry->flags & HANDLEENTRY_INDESTROY);
717}
#define STATUS_INVALID_HANDLE
Definition: d3dkmdt.h:40
VOID FASTCALL SetLastNtError(_In_ NTSTATUS Status)
Definition: error.c:30

Referenced by co_CallHook(), IntDestroyClass(), IntSetMenuItemInfo(), NtUserSetCursor(), UserAttachThreadInput(), UserGetCurIconObject(), VerifyMenu(), and VerifyWnd().

◆ UserReferenceObject()

◆ UserReferenceObjectByHandle()

PVOID FASTCALL UserReferenceObjectByHandle ( HANDLE  handle,
HANDLE_TYPE  type 
)

Definition at line 764 of file object.c.

765{
767
769 if (object)
770 {
771 UserReferenceObject(object);
772 }
773 return object;
774}

Referenced by UserGetCurIconObject().

◆ UserRefObjectCo()

static __inline VOID UserRefObjectCo ( PVOID  obj,
PUSER_REFERENCE_ENTRY  UserReferenceEntry 
)
static

Definition at line 28 of file object.h.

29{
30 PTHREADINFO W32Thread;
31
33 ASSERT(W32Thread != NULL);
34 ASSERT(UserReferenceEntry != NULL);
35 UserReferenceEntry->obj = obj;
37 PushEntryList(&W32Thread->ReferencesList, &UserReferenceEntry->Entry);
38#if DBG
39 W32Thread->cRefObjectCo++;
40#endif
41}
VOID FASTCALL UserReferenceObject(PVOID obj)
Definition: object.c:754
SINGLE_LIST_ENTRY Entry
Definition: object.h:5
FORCEINLINE VOID PushEntryList(_Inout_ PSINGLE_LIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PSINGLE_LIST_ENTRY Entry)
Definition: rtlfuncs.h:256

Referenced by ActivateOtherWindowMin(), co_HOOK_CallHooks(), co_IntCreateDefaultImeWindow(), co_IntPaintWindows(), co_IntProcessKeyboardMessage(), co_IntSendActivateMessages(), co_IntSendDeactivateMessages(), co_IntSendMessageTimeoutSingle(), co_IntSendMessageWithCallBack(), co_IntSnapWindow(), co_IntUnloadKeyboardLayoutEx(), co_IntUpdateWindows(), co_UserActivateKeyboardLayout(), co_UserCreateWindowEx(), co_UserFreeWindow(), co_UserGetUpdateRect(), co_UserGetUpdateRgn(), co_UserSetParent(), co_UserTrackSystemMenu(), co_VIS_WindowLayoutChanged(), co_WinPosActivateOtherWindow(), co_WinPosArrangeIconicWindows(), co_WinPosWindowFromPoint(), DefWndHandleSetCursor(), DefWndHandleSysCommand(), IntActivateWindow(), IntCheckImeShowStatus(), IntDeactivateWindow(), IntDefWindowProc(), IntDestroyOwnedWindows(), IntEndDeferWindowPosEx(), IntFocusSetInputContext(), IntImeWindowPosChanged(), IntImmActivateLayout(), IntNotifyWinEvent(), IntScrollWindowEx(), IntSendChildNCPaint(), IntSendFocusMessages(), IntSendMessageToUI(), IntSendOpenStatusNotify(), IntSendParentNotify(), MENU_EnsureMenuItemVisible(), MENU_ShowPopup(), NtGdiUpdateColors(), NtUserBeginPaint(), NtUserCallHwndLock(), NtUserCallHwndParam(), NtUserCallHwndParamLock(), NtUserDestroyWindow(), NtUserEnableScrollBar(), NtUserEndPaint(), NtUserFillWindow(), NtUserGetMenuBarInfo(), NtUserGetScrollBarInfo(), NtUserHideCaret(), NtUserMessageCall(), NtUserNotifyWinEvent(), NtUserRedrawWindow(), NtUserSBGetParms(), NtUserScrollWindowEx(), NtUserSetActiveWindow(), NtUserSetFocus(), NtUserSetInternalWindowPos(), NtUserSetMenu(), NtUserSetScrollBarInfo(), NtUserSetScrollInfo(), NtUserSetShellWindowEx(), NtUserSetWindowPlacement(), NtUserSetWindowPos(), NtUserShowCaret(), NtUserShowScrollBar(), NtUserShowWindow(), NtUserShowWindowAsync(), NtUserTrackPopupMenuEx(), NtUserTranslateAccelerator(), NtUserWindowFromPoint(), SpiNotifyNCMetricsChanged(), and WinPosDoOwnedPopups().

◆ ValidateHandle()

PVOID FASTCALL ValidateHandle ( HANDLE  handle,
HANDLE_TYPE  type 
)

Variable Documentation

◆ gHandleTable

PUSER_HANDLE_TABLE gHandleTable
extern

Definition at line 13 of file object.c.