ReactOS 0.4.17-dev-37-g0bfb40d
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)
 
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:187

Referenced by FreeCurIconObject().

◆ UserAssignmentLock()

PVOID FASTCALL UserAssignmentLock ( PVOID ppvObj,
PVOID  pvNew 
)

Definition at line 837 of file object.c.

838{
839 PVOID pvOld = *ppvObj;
840 *ppvObj = pvNew;
841
842 if (pvOld && pvOld == pvNew)
843 return pvOld;
844
845 if (pvNew)
846 UserReferenceObject(pvNew);
847
848 if (pvOld)
849 {
850 if (UserDereferenceObject(pvOld))
851 pvOld = NULL;
852 }
853
854 return pvOld;
855}
#define NULL
Definition: types.h:112
BOOL FASTCALL UserDereferenceObject(PVOID Object)
Definition: object.c:643
VOID FASTCALL UserReferenceObject(PVOID obj)
Definition: object.c:730

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

◆ UserAssignmentUnlock()

PVOID FASTCALL UserAssignmentUnlock ( PVOID ppvObj)

Definition at line 857 of file object.c.

858{
859 PVOID pvOld = *ppvObj;
860 *ppvObj = NULL;
861
862 if (pvOld)
863 {
864 if (UserDereferenceObject(pvOld))
865 pvOld = NULL;
866 }
867
868 return pvOld;
869}

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

◆ UserCreateHandleTable()

BOOL FASTCALL UserCreateHandleTable ( VOID  )

Definition at line 536 of file object.c.

537{
538 PVOID mem;
539 INT HandleCount = 1024 * 4;
540
541 // FIXME: Don't alloc all at once! Must be mapped into umode also...
543 if (!mem)
544 {
545 ERR("Failed creating handle table\n");
546 return FALSE;
547 }
548
550 if (gHandleTable == NULL)
551 {
553 ERR("Failed creating handle table\n");
554 return FALSE;
555 }
556
557 // FIXME: Make auto growable
559
560 return TRUE;
561}
#define ERR(fmt,...)
Definition: precomp.h:57
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
Definition: ntuser.h:17
Definition: mem.c:349
int32_t INT
Definition: typedefs.h:58
static ULONG HandleCount
Definition: uefidisk.c:68
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 716 of file object.c.

717{
719
720 if (!body) return FALSE;
721
722 ASSERT( ((PHEAD)body)->cLockObj >= 1);
723 ASSERT( ((PHEAD)body)->cLockObj < 0x10000);
724
726}
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:180
PVOID UserGetObject(PUSER_HANDLE_TABLE ht, HANDLE handle, HANDLE_TYPE type)
Definition: object.c:495
BOOL FASTCALL UserFreeHandle(PUSER_HANDLE_TABLE ht, HANDLE handle)
Definition: object.c:685

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 643 of file object.c.

644{
645 PHEAD ObjHead = Object;
646
647 ASSERT(ObjHead->cLockObj >= 1);
648 ASSERT(ObjHead->cLockObj < 0x10000);
649
650 if (--ObjHead->cLockObj == 0)
651 {
654
655 entry = handle_to_entry(gHandleTable, ObjHead->h);
656
657 ASSERT(entry != NULL);
658 /* The entry should be marked as in deletion */
660
661 type = entry->type;
664
665 /* We can now get rid of everything */
667
668#if 0
669 /* Call the object destructor */
670 ASSERT(ObjectCallbacks[type].ObjectCleanup != NULL);
671 ObjectCallbacks[type].ObjectCleanup(Object);
672#endif
673
674 /* And free it */
676 ObjectCallbacks[type].ObjectFree(Object);
677
678 return TRUE;
679 }
680 return FALSE;
681}
#define HANDLEENTRY_INDESTROY
Definition: ntuser.h:14
enum _HANDLE_TYPE HANDLE_TYPE
@ TYPE_CTYPES
Definition: ntuser.h:62
uint32_t entry
Definition: isohybrid.c:63
DWORD cLockObj
Definition: ntuser.h:182
HANDLE h
Definition: ntuser.h:181
#define TYPE_FREE
Definition: sunlabel.h:176
static const struct @5548 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 43 of file object.h.

44{
45 PTHREADINFO W32Thread;
46 PSINGLE_LIST_ENTRY ReferenceEntry;
47 PUSER_REFERENCE_ENTRY UserReferenceEntry;
48
49 ASSERT(obj != NULL);
51 ASSERT(W32Thread != NULL);
52 ReferenceEntry = PopEntryList(&W32Thread->ReferencesList);
53 ASSERT(ReferenceEntry != NULL);
54 UserReferenceEntry = CONTAINING_RECORD(ReferenceEntry, USER_REFERENCE_ENTRY, Entry);
55 ASSERT(UserReferenceEntry != NULL);
56
57 ASSERT(obj == UserReferenceEntry->obj);
59#if DBG
60 W32Thread->cRefObjectCo--;
61#endif
62}
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
Definition: thread.c:805
BOOL FASTCALL UserDereferenceObject(PVOID obj)
Definition: object.c:643
Entry
Definition: section.c:5210
Definition: ntbasedef.h:640
SINGLE_LIST_ENTRY ReferencesList
Definition: win32.h:157
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 753 of file object.c.

754{
755 int i;
757 BOOLEAN Ret = TRUE;
758
759 /* Sweep the whole handle table */
760 for (i = 0; i < Table->allocated_handles; i++)
761 {
762 Entry = &Table->handles[i];
763
764 if (Entry->pi != Owner)
765 continue;
766
767 /* Do not destroy if it's already been done */
768 if (Entry->flags & HANDLEENTRY_INDESTROY)
769 continue;
770
771 /* Call destructor */
772 if (!ObjectCallbacks[Entry->type].ObjectDestroy(Entry->ptr))
773 {
774 ERR("Failed destructing object %p, type %u.\n", Entry->ptr, Entry->type);
775 /* Don't return immediately, we must continue destroying the other objects */
776 Ret = FALSE;
777 }
778 }
779
780 return Ret;
781}
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 481 of file object.c.

482{
484
485 ASSERT(ht);
486
487 if (!(entry = handle_to_entry(ht, handle )) || entry->type != type)
488 {
489 return NULL;
490 }
491 return entry->ptr;
492}

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

◆ UserMarkObjectDestroy()

BOOL FASTCALL UserMarkObjectDestroy ( PVOID  Object)

Definition at line 620 of file object.c.

621{
623 PHEAD ObjHead = Object;
624
625 entry = handle_to_entry(gHandleTable, ObjHead->h);
626
627 ASSERT(entry != NULL);
628
629 entry->flags |= HANDLEENTRY_DESTROY;
630
631 if (ObjHead->cLockObj > 1)
632 {
633 entry->flags &= ~HANDLEENTRY_INDESTROY;
634 TRACE("Count %d\n",ObjHead->cLockObj);
635 return FALSE;
636 }
637
638 return TRUE;
639}
#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 702 of file object.c.

703{
705
706 if (!(entry = handle_to_entry( gHandleTable, h )))
707 {
709 return TRUE;
710 }
711 return (entry->flags & HANDLEENTRY_INDESTROY);
712}
#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 740 of file object.c.

741{
743
745 if (object)
746 {
747 UserReferenceObject(object);
748 }
749 return object;
750}

Referenced by UserGetCurIconObject().

◆ UserRefObjectCo()

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

Definition at line 27 of file object.h.

28{
29 PTHREADINFO W32Thread;
30
32 ASSERT(W32Thread != NULL);
33 ASSERT(UserReferenceEntry != NULL);
34 UserReferenceEntry->obj = obj;
36 PushEntryList(&W32Thread->ReferencesList, &UserReferenceEntry->Entry);
37#if DBG
38 W32Thread->cRefObjectCo++;
39#endif
40}
VOID FASTCALL UserReferenceObject(PVOID obj)
Definition: object.c:730
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.