1 #ifndef __WIN32K_OBJECT_H
2 #define __WIN32K_OBJECT_H
5 #include <win32k/gdiobj.h>
6 #include <win32k/bitmaps.h>
7 #include <win32k/pen.h>
16 typedef struct _USER_OBJECT_HEADER
18 * Header for user object
21 USER_OBJECT_TYPE Type;
25 } USER_OBJECT_HEADER, *PUSER_OBJECT_HEADER;
27 typedef struct _USER_HANDLE
30 } USER_HANDLE, *PUSER_HANDLE;
32 #define HANDLE_BLOCK_ENTRIES ((PAGE_SIZE-sizeof(LIST_ENTRY))/sizeof(USER_HANDLE))
34 typedef struct _USER_HANDLE_BLOCK
37 USER_HANDLE Handles[HANDLE_BLOCK_ENTRIES];
38 } USER_HANDLE_BLOCK, *PUSER_HANDLE_BLOCK;
40 typedef struct _USER_HANDLE_TABLE
44 } USER_HANDLE_TABLE, *PUSER_HANDLE_TABLE;
64 ObmReferenceObjectByPointer(
66 USER_OBJECT_TYPE ObjectType);
70 PUSER_HANDLE_TABLE HandleTable,
72 USER_OBJECT_TYPE ObjectType,
77 PUSER_HANDLE_TABLE HandleTable,
79 PHANDLE HandleReturn);
82 ObmReferenceObjectByHandle(
83 PUSER_HANDLE_TABLE HandleTable,
85 USER_OBJECT_TYPE ObjectType,
90 PUSER_HANDLE_TABLE HandleTable,
94 ObmInitializeHandleTable(
95 PUSER_HANDLE_TABLE HandleTable);
99 PUSER_HANDLE_TABLE HandleTable);
101 PUSER_HANDLE_TABLE FASTCALL
102 ObmCreateHandleTable(VOID);
104 VOID FASTCALL ObmDestroyHandleTable (PUSER_HANDLE_TABLE HandleTable);
106 ULONG FASTCALL CreateGDIHandle (ULONG InternalSize, ULONG UserSize);
107 VOID FASTCALL FreeGDIHandle (ULONG Handle);
109 PVOID FASTCALL AccessUserObject (ULONG Handle);
110 PVOID FASTCALL AccessInternalObject (ULONG Handle);
112 PVOID FASTCALL AccessInternalObjectFromUserObject (PVOID UserObject);
113 ULONG FASTCALL AccessHandleFromUserObject (PVOID UserObject);
115 VOID FASTCALL InitEngHandleTable (VOID);
116 VOID FASTCALL InitGdiObjectHandleTable (VOID);
118 VOID FASTCALL CreateStockObjects (VOID);
120 BOOL FASTCALL CleanupForProcess (struct _EPROCESS *Process, INT Pid);
122 VOID FASTCALL GDIOBJ_MarkObjectGlobal (HGDIOBJ ObjectHandle);
123 VOID FASTCALL GDIOBJ_UnmarkObjectGlobal (HGDIOBJ ObjectHandle);
124 BOOL FASTCALL GDIOBJ_LockMultipleObj (PGDIMULTILOCK pList, INT nObj);
126 PPOINT FASTCALL GDI_Bezier (const POINT *Points, INT count, PINT nPtsOut);
128 /* objects/objconv.c */
132 PenToBrushObj(BRUSHOBJ *brush, PENOBJ *pen);
136 HPenToBrushObj ( BRUSHOBJ *brush, HPEN hpen );
140 BitmapToSurf ( PBITMAPOBJ BitmapObj );
142 #endif /* __WIN32K_OBJECT_H */