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 SeTrustConstraintMaskPresent : 1;/* 0x3:1 1 */ unsigned char CloseReturnsResults : 1;/* 0x3:2 1 */ unsigned char UseRcuFree : 1;/* 0x3:3 1 */ unsigned char Reserved : 4;/* 0x3:4 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 8 */ long (*OpenProcedure)(enum _OB_OPEN_REASON, char, struct _EPROCESS*, void*, unsigned long*, unsigned long);/* 0x38 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ union { void (*CloseProcedure)(struct _EPROCESS*, void*, unsigned __int64, unsigned __int64);/* 0x40 8 */ void (*CloseProcedure2)(struct _EPROCESS*, void*, unsigned __int64, unsigned __int64, struct _OBJECT_CLOSE_RESULT*);/* 0x40 8 */ };/* 0x40 8 */ void (*DeleteProcedure)(void*);/* 0x48 8 */ union { 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 (*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**);/* 0x50 8 */ };/* 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 */ unsigned long WaitObjectFlagMask;/* 0x70 4 */ unsigned short WaitObjectFlagOffset;/* 0x74 2 */ unsigned short WaitObjectPointerOffset;/* 0x76 2 */};size 120 (0x78)36 members0 holespadding 02 cachelines
Used in (1)