As Timo pointed out, I made a typo. Here are the final structures (the ones I wrote were pseudo-code to enduce your own thinking/ideas):
lkd> dt win32k!_ENTRY -r
+0x000 einfo : _EINFO
+0x000 pobj : Ptr32 _BASEOBJECT
+0x000 hHmgr : Ptr32 Void
+0x004 ulShareCount : Uint4B
+0x008 cExclusiveLock : Uint2B
+0x00a BaseFlags : Uint2B
+0x00c Tid : Ptr32 _W32THREAD
+0x000 hFree : Ptr32 HOBJ__
+0x000 unused : Int4B
+0x004 ObjectOwner : _OBJECTOWNER
+0x000 Share : _OBJECTOWNER_S
+0x000 Lock : Pos 0, 1 Bit
+0x000 Pid_Shifted : Pos 1, 31 Bits
+0x000 ulObj : Uint4B
+0x008 FullUnique : Uint2B
+0x00a Objt : UChar
+0x00b Flags : UChar
+0x00c pUser : Ptr32 Void
lkd> dt win32k!_BASEOBJECT -r
+0x000 hHmgr : Ptr32 Void
+0x004 ulShareCount : Uint4B
+0x008 cExclusiveLock : Uint2B
+0x00a BaseFlags : Uint2B
+0x00c Tid : Ptr32 _W32THREAD
+0x000 pEThread : Ptr32 _ETHREAD
+0x004 RefCount : Uint4B
+0x008 ptlW32 : Ptr32 _TL
+0x000 next : Ptr32 _TL
+0x004 pobj : Ptr32 Void
+0x008 pfnFree : Ptr32 void
+0x00c pgdiDcattr : Ptr32 Void
+0x010 pgdiBrushAttr : Ptr32 Void
+0x014 pUMPDObjs : Ptr32 Void
+0x018 pUMPDHeap : Ptr32 Void
+0x01c pUMPDObj : Ptr32 Void
+0x020 GdiTmpTgoList : _LIST_ENTRY
+0x000 Flink : Ptr32 _LIST_ENTRY
+0x004 Blink : Ptr32 _LIST_ENTRY
lkd> dt GDIHandleBitFields
win32k!GDIHandleBitFields
+0x000 Index : Pos 0, 16 Bits
+0x000 Type : Pos 16, 5 Bits
+0x000 AltType : Pos 21, 2 Bits
+0x000 Stock : Pos 23, 1 Bit
+0x000 Unique : Pos 24, 8 Bits
lkd> dt GDIObjType
win32k!GDIObjType
GDIObjType_DEF_TYPE = 0
GDIObjType_DC_TYPE = 1
GDIObjType_UNUSED1_TYPE = 2
GDIObjType_UNUSED2_TYPE = 3
GDIObjType_RGN_TYPE = 4
GDIObjType_SURF_TYPE = 5
GDIObjType_CLIENTOBJ_TYPE = 6
GDIObjType_PATH_TYPE = 7
GDIObjType_PAL_TYPE = 8
GDIObjType_ICMLCS_TYPE = 9
GDIObjType_LFONT_TYPE = 10
GDIObjType_RFONT_TYPE = 11
GDIObjType_PFE_TYPE = 12
GDIObjType_PFT_TYPE = 13
GDIObjType_ICMCXF_TYPE = 14
GDIObjType_SPRITE_TYPE = 15
GDIObjType_BRUSH_TYPE = 16
GDIObjType_UMPD_TYPE = 17
GDIObjType_UNUSED4_TYPE = 18
GDIObjType_SPACE_TYPE = 19
GDIObjType_UNUSED5_TYPE = 20
GDIObjType_META_TYPE = 21
GDIObjType_EFSTATE_TYPE = 22
GDIObjType_BMFD_TYPE = 23
GDIObjType_VTFD_TYPE = 24
GDIObjType_TTFD_TYPE = 25
GDIObjType_RC_TYPE = 26
GDIObjType_TEMP_TYPE = 27
GDIObjType_DRVOBJ_TYPE = 28
GDIObjType_DCIOBJ_TYPE = 29
GDIObjType_SPOOL_TYPE = 30
GDIObjType_MAX_TYPE = 30
GDIObjTypeTotal = 31
lkd> dt GDILoObjType
win32k!GDILoObjType
GDILoObjType_LO_BRUSH_TYPE = 0x100000
GDILoObjType_LO_DC_TYPE = 0x10000
GDILoObjType_LO_BITMAP_TYPE = 0x50000
GDILoObjType_LO_PALETTE_TYPE = 0x80000
GDILoObjType_LO_FONT_TYPE = 0xa0000
GDILoObjType_LO_REGION_TYPE = 0x40000
GDILoObjType_LO_ICMLCS_TYPE = 0x90000
GDILoObjType_LO_CLIENTOBJ_TYPE = 0x60000
GDILoObjType_LO_ALTDC_TYPE = 0x210000
GDILoObjType_LO_PEN_TYPE = 0x300000
GDILoObjType_LO_EXTPEN_TYPE = 0x500000
GDILoObjType_LO_DIBSECTION_TYPE = 0x250000
GDILoObjType_LO_METAFILE16_TYPE = 0x260000
GDILoObjType_LO_METAFILE_TYPE = 0x460000
GDILoObjType_LO_METADC16_TYPE = 0x660000
(PS. Why do you have "Teams" and "Reversers" when you can just use WinDBG?)