_KLOCK_ENTRY

//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 };