struct _KLOCK_ENTRY { union { struct _RTL_BALANCED_NODE TreeNode;/* 0x0 12 */ struct _SINGLE_LIST_ENTRY FreeListEntry;/* 0x0 4 */ };/* 0x0 12 */ union { unsigned long EntryFlags;/* 0xc 4 */ struct { unsigned char EntryOffset;/* 0xc 1 */ union { unsigned char ThreadLocalFlags;/* 0xd 1 */ struct { unsigned char WaitingBit : 1;/* 0xd:0 1 */ unsigned char Spare0 : 7;/* 0xd:1 1 */ };/* 0xd 1 */ };/* 0xd 1 */ union { unsigned char AcquiredByte;/* 0xe 1 */ unsigned char AcquiredBit : 1;/* 0xe:0 1 */ };/* 0xe 1 */ union { unsigned char CrossThreadFlags;/* 0xf 1 */ struct { unsigned char HeadNodeBit : 1;/* 0xf:0 1 */ unsigned char IoPriorityBit : 1;/* 0xf:1 1 */ unsigned char IoQoSWaiter : 1;/* 0xf:2 1 */ unsigned char Spare1 : 5;/* 0xf:3 1 */ };/* 0xf 1 */ };/* 0xf 1 */ };/* 0xc 4 */ struct { unsigned long StaticState : 8;/* 0xc:0 4 */ unsigned long AllFlags : 24;/* 0xc:8 4 */ };/* 0xc 4 */ };/* 0xc 4 */ union { struct _KLOCK_ENTRY_LOCK_STATE LockState;/* 0x10 8 */ void* LockUnsafe;/* 0x10 4 */ struct { volatile unsigned char CrossThreadReleasableAndBusyByte;/* 0x10 1 */ unsigned char Reserved[2];/* 0x11 2 */ volatile unsigned char InTreeByte;/* 0x13 1 */ union { void* SessionState;/* 0x14 4 */ unsigned long SessionId;/* 0x14 4 */ };/* 0x14 4 */ };/* 0x10 8 */ };/* 0x10 8 */ union { struct { struct _RTL_RB_TREE OwnerTree;/* 0x18 8 */ struct _RTL_RB_TREE WaiterTree;/* 0x20 8 */ };/* 0x18 16 */ char CpuPriorityKey;/* 0x18 1 */ };/* 0x18 16 */ unsigned long EntryLock;/* 0x28 4 */ union _KLOCK_ENTRY_BOOST_BITMAP BoostBitmap;/* 0x2c 4 */};size 48 (0x30)28 members0 holespadding 01 cacheline
Used in (2)