//0x58 bytes (sizeof)
struct _KLOCK_ENTRY
{
union
{
union _KLOCK_ENTRY_LOCK_STATE LockState; //0x0
VOID* volatile LockUnsafe; //0x0
struct
{
volatile UCHAR CrossThreadReleasableAndBusyByte; //0x0
UCHAR Reserved[6]; //0x1
volatile UCHAR InTreeByte; //0x7
};
};
union
{
ULONG EntryFlags; //0x8
UCHAR StaticByte; //0x8
struct
{
UCHAR EntryIndex:6; //0x8
UCHAR PreWaiting:1; //0x8
UCHAR UserModeBit:1; //0x8
UCHAR WaitingByte; //0x9
UCHAR AcquiredByte; //0xa
union
{
UCHAR CrossThreadFlags; //0xb
struct
{
UCHAR HeadNodeBit:1; //0xb
UCHAR IoPriorityBit:1; //0xb
UCHAR IoQoSWaiter:1; //0xb
UCHAR Spare1:5; //0xb
};
};
};
struct
{
ULONG StaticState:8; //0x8
ULONG AllFlags:24; //0x8
};
};
ULONG SpareFlags; //0xc
struct _RTL_BALANCED_NODE TreeNode; //0x10
union
{
struct
{
struct _RTL_RB_TREE OwnerTree; //0x28
struct _RTL_RB_TREE WaiterTree; //0x38
};
CHAR CpuPriorityKey; //0x28
};
ULONGLONG EntryLock; //0x48
union _KLOCK_ENTRY_BOOST_BITMAP BoostBitmap; //0x50
};