[CMAKE]
[reactos.git] / subsystems / win32 / win32k / include / driverobj.h
1 #pragma once
2
3 #include "gdiobj.h"
4
5 /* Object structure */
6 typedef struct _EDRIVEROBJ
7 {
8 BASEOBJECT baseobj;
9 DRIVEROBJ drvobj;
10 PVOID reserved;
11 } EDRIVEROBJ, *PEDRIVEROBJ;
12
13 /* Cleanup function */
14 BOOL INTERNAL_CALL DRIVEROBJ_Cleanup(PVOID pObject);
15
16
17 #define DRIVEROBJ_AllocObjectWithHandle() ((PEDRIVEROBJ)GDIOBJ_AllocObjWithHandle(GDI_OBJECT_TYPE_DRIVEROBJ, sizeof(DRIVEROBJ)))
18 #define DRIVEROBJ_FreeObjectByHandle(hdo) GDIOBJ_FreeObjByHandle((HGDIOBJ)hdo, GDI_OBJECT_TYPE_DRIVEROBJ)
19 #define DRIVEROBJ_UnlockObject(pdo) GDIOBJ_vUnlockObject((POBJ)pdo)
20
21 FORCEINLINE
22 PEDRIVEROBJ
23 DRIVEROBJ_LockObject(HDRVOBJ hdo)
24 {
25 return GDIOBJ_LockObject(hdo, GDIObjType_DRVOBJ_TYPE);
26 }