struct _OBJECT_TYPE_INITIALIZER { unsigned short Length;/* 0x0 2 */ union { unsigned char ObjectTypeFlags;/* 0x2 1 */ struct { unsigned char CaseInsensitive : 1;/* 0x2:0 1 */ unsigned char UnnamedObjectsOnly : 1;/* 0x2:1 1 */ unsigned char UseDefaultObject : 1;/* 0x2:2 1 */ unsigned char SecurityRequired : 1;/* 0x2:3 1 */ unsigned char MaintainHandleCount : 1;/* 0x2:4 1 */ unsigned char MaintainTypeList : 1;/* 0x2:5 1 */ unsigned char SupportsObjectCallbacks : 1;/* 0x2:6 1 */ };/* 0x2 1 */ };/* 0x2 1 */ /* 1 byte padding */ unsigned long ObjectTypeCode;/* 0x4 4 */ unsigned long InvalidAttributes;/* 0x8 4 */ struct _GENERIC_MAPPING GenericMapping;/* 0xc 16 */ unsigned long ValidAccessMask;/* 0x1c 4 */ unsigned long RetainAccess;/* 0x20 4 */ enum _POOL_TYPE PoolType;/* 0x24 4 */ unsigned long DefaultPagedPoolCharge;/* 0x28 4 */ unsigned long DefaultNonPagedPoolCharge;/* 0x2c 4 */ void (*DumpProcedure)(void*, struct _OBJECT_DUMP_CONTROL*);/* 0x30 8 */ long (*OpenProcedure)(enum _OB_OPEN_REASON, char, struct _EPROCESS*, void*, unsigned long*, unsigned long);/* 0x38 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ void (*CloseProcedure)(struct _EPROCESS*, void*, unsigned long, unsigned __int64, unsigned __int64);/* 0x40 8 */ void (*DeleteProcedure)(void*);/* 0x48 8 */ long (*ParseProcedure)(void*, void*, struct _ACCESS_STATE*, char, unsigned long, struct _UNICODE_STRING*, struct _UNICODE_STRING*, void*, struct _SECURITY_QUALITY_OF_SERVICE*, void**);/* 0x50 8 */ long (*SecurityProcedure)(void*, enum _SECURITY_OPERATION_CODE, unsigned long*, void*, unsigned long*, void**, enum _POOL_TYPE, struct _GENERIC_MAPPING*, char);/* 0x58 8 */ long (*QueryNameProcedure)(void*, unsigned char, struct _OBJECT_NAME_INFORMATION*, unsigned long, unsigned long*, char);/* 0x60 8 */ unsigned char (*OkayToCloseProcedure)(struct _EPROCESS*, void*, void*, char);/* 0x68 8 */};size 112 (0x70)25 members1 hole (1 bytes)padding 02 cachelines
Used in (1)