Defines |
| #define | NDEBUG |
| #define | DBG_INCREASE_LOCK_COUNT(ppi, hobj) |
| #define | DBG_DECREASE_LOCK_COUNT(x, y) |
| #define | ASSERT_SHARED_OBJECT_TYPE(objt) |
| #define | ASSERT_EXCLUSIVE_OBJECT_TYPE(objt) |
| #define | MmMapViewInSessionSpace MmMapViewInSystemSpace |
| #define | GDIOBJ_POOL_TAG(type) ('00hG' + ((objt & 0x1f) << 24)) |
Enumerations |
| enum | {
REF_MASK_REUSE = 0xff000000,
REF_INC_REUSE = 0x01000000,
REF_MASK_VALID = 0x00800000,
REF_MASK_COUNT = 0x007fffff,
REF_MASK_INUSE = 0x00ffffff
} |
Functions |
| static BOOL NTAPI | GDIOBJ_Cleanup (PVOID ObjectBody) |
| static VOID | InitLookasideList (UCHAR objt, ULONG cjSize) |
| INIT_FUNCTION NTSTATUS NTAPI | InitGdiHandleTable (void) |
| FORCEINLINE VOID | IncrementGdiHandleCount (void) |
| FORCEINLINE VOID | DecrementGdiHandleCount (void) |
| static PENTRY | ENTRY_pentPopFreeEntry (VOID) |
| static VOID | ENTRY_vPushFreeEntry (PENTRY pentFree) |
| static PENTRY | ENTRY_ReferenceEntryByHandle (HGDIOBJ hobj, FLONG fl) |
| static HGDIOBJ | ENTRY_hInsertObject (PENTRY pentry, POBJ pobj, UCHAR objt, ULONG ulOwner) |
| POBJ NTAPI | GDIOBJ_AllocateObject (UCHAR objt, ULONG cjSize, FLONG fl) |
| VOID NTAPI | GDIOBJ_vFreeObject (POBJ pobj) |
| VOID NTAPI | GDIOBJ_vDereferenceObject (POBJ pobj) |
| POBJ NTAPI | GDIOBJ_ReferenceObjectByHandle (HGDIOBJ hobj, UCHAR objt) |
| VOID NTAPI | GDIOBJ_vReferenceObjectByPointer (POBJ pobj) |
| PGDIOBJ NTAPI | GDIOBJ_LockObject (HGDIOBJ hobj, UCHAR objt) |
| VOID NTAPI | GDIOBJ_vUnlockObject (POBJ pobj) |
| HGDIOBJ NTAPI | GDIOBJ_hInsertObject (POBJ pobj, ULONG ulOwner) |
| VOID NTAPI | GDIOBJ_vSetObjectOwner (POBJ pobj, ULONG ulOwner) |
| BOOL NTAPI | GDIOBJ_bLockMultipleObjects (IN ULONG ulCount, IN HGDIOBJ *ahObj, OUT PGDIOBJ *apObj, IN UCHAR objt) |
| PVOID NTAPI | GDIOBJ_pvGetObjectAttr (POBJ pobj) |
| VOID NTAPI | GDIOBJ_vSetObjectAttr (POBJ pobj, PVOID pvObjAttr) |
| VOID NTAPI | GDIOBJ_vDeleteObject (POBJ pobj) |
| BOOL NTAPI | GreIsHandleValid (HGDIOBJ hobj) |
| BOOL NTAPI | GreDeleteObject (HGDIOBJ hobj) |
| ULONG NTAPI | GreGetObjectOwner (HGDIOBJ hobj) |
| BOOL NTAPI | GreSetObjectOwner (HGDIOBJ hobj, ULONG ulOwner) |
| INT NTAPI | GreGetObject (IN HGDIOBJ hobj, IN INT cbCount, IN PVOID pvBuffer) |
| W32KAPI INT APIENTRY | NtGdiExtGetObjectW (IN HANDLE hobj, IN INT cbCount, OUT LPVOID lpBuffer) |
| W32KAPI HANDLE APIENTRY | NtGdiCreateClientObj (IN ULONG ulType) |
| W32KAPI BOOL APIENTRY | NtGdiDeleteClientObj (IN HANDLE hobj) |
| PGDIOBJ NTAPI | GDIOBJ_ShareLockObj (HGDIOBJ hObj, DWORD ExpectedType) |
| BOOL NTAPI | GDIOBJ_ConvertToStockObj (HGDIOBJ *phObj) |
| POBJ NTAPI | GDIOBJ_AllocObjWithHandle (ULONG ObjectType, ULONG cjSize) |
| PVOID NTAPI | GDI_MapHandleTable (PEPROCESS pProcess) |
| BOOL NTAPI | GDI_CleanupForProcess (struct _EPROCESS *Process) |
Variables |
| static PVOID | gpvGdiHdlTblSection = NULL |
| static PENTRY | gpentHmgr |
| static PULONG | gpaulRefCount |
| ULONG | gulFirstFree |
| ULONG | gulFirstUnused |
| static PPAGED_LOOKASIDE_LIST | gpaLookasideList |
| static const GDICLEANUPPROC | apfnCleanup [] |
| PGDI_HANDLE_TABLE | GdiHandleTable = NULL |