struct _OBJECT_TYPE_INITIALIZER { unsigned short Length;/* 0x0 2 */ union { unsigned short ObjectTypeFlags;/* 0x2 2 */ 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 */ unsigned char CacheAligned : 1;/* 0x2:7 1 */ unsigned char UseExtendedParameters : 1;/* 0x3:0 1 */ unsigned char Reserved : 7;/* 0x3:1 1 */ };/* 0x2 2 */ };/* 0x2 2 */ 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 4 */ long (*OpenProcedure)(enum _OB_OPEN_REASON, char, struct _EPROCESS*, void*, unsigned long*, unsigned long);/* 0x34 4 */ void (*CloseProcedure)(struct _EPROCESS*, void*, unsigned long, unsigned long);/* 0x38 4 */ void (*DeleteProcedure)(void*);/* 0x3c 4 */ /* ── cacheline 1 boundary (64 bytes) ── */ union { long (*ParseProcedure)(void*, void*, struct _ACCESS_STATE*, char, unsigned long, struct _UNICODE_STRING*, struct _UNICODE_STRING*, void*, struct _SECURITY_QUALITY_OF_SERVICE*, void**);/* 0x40 4 */ long (*ParseProcedureEx)(void*, void*, struct _ACCESS_STATE*, char, unsigned long, struct _UNICODE_STRING*, struct _UNICODE_STRING*, void*, struct _SECURITY_QUALITY_OF_SERVICE*, struct _OB_EXTENDED_PARSE_PARAMETERS*, void**);/* 0x40 4 */ };/* 0x40 4 */ long (*SecurityProcedure)(void*, enum _SECURITY_OPERATION_CODE, unsigned long*, void*, unsigned long*, void**, enum _POOL_TYPE, struct _GENERIC_MAPPING*, char);/* 0x44 4 */ long (*QueryNameProcedure)(void*, unsigned char, struct _OBJECT_NAME_INFORMATION*, unsigned long, unsigned long*, char);/* 0x48 4 */ unsigned char (*OkayToCloseProcedure)(struct _EPROCESS*, void*, void*, char);/* 0x4c 4 */ unsigned long WaitObjectFlagMask;/* 0x50 4 */ unsigned short WaitObjectFlagOffset;/* 0x54 2 */ unsigned short WaitObjectPointerOffset;/* 0x56 2 */};size 88 (0x58)32 members0 holespadding 02 cachelines
Used in (1)