Difference between revisions of "Techwiki:Win32k/BASEOBJECT"
(New page: For Windows XP and Windows 2003 struct _BASEOBJECT { HANDLE hHmgr; // Handle for this object ULONG ulShareCount; LONG cExclusiveLock; // lock with InterlockedIncrement or n...) |
ThePhysicist (talk | contribs) |
||
(15 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | + | The GDI Base Object, which is a header at the top of every GDI Object. | |
− | + | The structure is called BASEOBJECT and is defined as follows for | |
− | + | Windows XP, Windows 2003 and Vista, same for 64 Bit Versions: | |
− | HANDLE hHmgr; // | + | <source lang="c"> |
− | ULONG ulShareCount; | + | typedef struct _BASEOBJECT |
− | + | { | |
− | + | HANDLE hHmgr; // 0x00 | |
− | PW32THREAD Tid; | + | ULONG ulShareCount; // 0x04 |
− | + | USHORT cExclusiveLock; // 0x08 | |
+ | USHORT BaseFlags; // 0x0a | ||
+ | PW32THREAD Tid; // 0x0c | ||
+ | } BASEOBJECT, *POBJ; | ||
+ | |||
+ | typedef struct _BASEOBJECT DD_BASEOBJECT, *PDD_BASEOBJECT; //(correct?) | ||
+ | </source> | ||
+ | |||
+ | ''hHmgr'' | ||
+ | :Gdi handle for the object, if the object is in the handle table. NULL otherwise. | ||
+ | |||
+ | ''ulShareCount'' | ||
+ | :Number of references to the object. | ||
+ | |||
+ | ''cExclusiveLock'' | ||
+ | :Number of exclusive locks held by a thread. These are only held for a short time and only for some of the object types. | ||
+ | |||
+ | ''BaseFlags'' | ||
+ | :0x800 for objects that are allocated from a lookaside list (DC, region, bitmap, palette, font and brush) | ||
+ | |||
+ | == See also == | ||
+ | [[techwiki:win32k/W32THREAD|PW32THREAD]] |
Latest revision as of 13:02, 3 April 2011
The GDI Base Object, which is a header at the top of every GDI Object. The structure is called BASEOBJECT and is defined as follows for Windows XP, Windows 2003 and Vista, same for 64 Bit Versions:
typedef struct _BASEOBJECT
{
HANDLE hHmgr; // 0x00
ULONG ulShareCount; // 0x04
USHORT cExclusiveLock; // 0x08
USHORT BaseFlags; // 0x0a
PW32THREAD Tid; // 0x0c
} BASEOBJECT, *POBJ;
typedef struct _BASEOBJECT DD_BASEOBJECT, *PDD_BASEOBJECT; //(correct?)
hHmgr
- Gdi handle for the object, if the object is in the handle table. NULL otherwise.
ulShareCount
- Number of references to the object.
cExclusiveLock
- Number of exclusive locks held by a thread. These are only held for a short time and only for some of the object types.
BaseFlags
- 0x800 for objects that are allocated from a lookaside list (DC, region, bitmap, palette, font and brush)