Add version attributes for metadata v16 and v19

This commit is contained in:
Katy Coe
2019-10-27 00:59:42 +02:00
parent 678f17a954
commit e5ccb385cf
2 changed files with 33 additions and 7 deletions

View File

@@ -30,9 +30,9 @@ namespace Il2CppInspector
public ulong marshalingFunctionsCount; public ulong marshalingFunctionsCount;
[Version(Max = 22)] [Version(Max = 22)]
public ulong marshalingFunctions; public ulong marshalingFunctions;
[Version(Max = 22)] [Version(Min = 21, Max = 22)]
public ulong ccwMarshalingFunctionsCount; public ulong ccwMarshalingFunctionsCount;
[Version(Max = 22)] [Version(Min = 21, Max = 22)]
public ulong ccwMarshalingFunctions; public ulong ccwMarshalingFunctions;
public ulong genericMethodPointersCount; public ulong genericMethodPointersCount;
@@ -43,9 +43,9 @@ namespace Il2CppInspector
public ulong customAttributeGenerators; public ulong customAttributeGenerators;
// Removed in metadata v23 // Removed in metadata v23
[Version(Max = 22)] [Version(Min = 21, Max = 22)]
public long guidCount; public long guidCount;
[Version(Max = 22)] [Version(Min = 21, Max = 22)]
public ulong guids; // Il2CppGuid public ulong guids; // Il2CppGuid
// Added in metadata v22 // Added in metadata v22
@@ -96,13 +96,19 @@ namespace Il2CppInspector
public ulong ptypes; public ulong ptypes;
public long methodSpecsCount; public long methodSpecsCount;
public ulong methodSpecs; public ulong methodSpecs;
[Version(Max = 16)]
public long methodReferencesCount;
[Version(Max = 16)]
public ulong methodReferences;
public long fieldOffsetsCount; public long fieldOffsetsCount;
public ulong pfieldOffsets; public ulong pfieldOffsets;
public long typeDefinitionsSizesCount; public long typeDefinitionsSizesCount;
public ulong typeDefinitionsSizes; public ulong typeDefinitionsSizes;
[Version(Min = 19)]
public ulong metadataUsagesCount; public ulong metadataUsagesCount;
[Version(Min = 19)]
public ulong metadataUsages; public ulong metadataUsages;
} }
#pragma warning restore CS0649 #pragma warning restore CS0649

View File

@@ -19,7 +19,6 @@ namespace Il2CppInspector
#pragma warning disable CS0649 #pragma warning disable CS0649
public class Il2CppGlobalMetadataHeader public class Il2CppGlobalMetadataHeader
{ {
// Metadata v21
public uint sanity; public uint sanity;
public int version; public int version;
public int stringLiteralOffset; // string data for managed code public int stringLiteralOffset; // string data for managed code
@@ -72,17 +71,31 @@ namespace Il2CppInspector
public int imagesCount; public int imagesCount;
public int assembliesOffset; // Il2CppAssemblyDefinition public int assembliesOffset; // Il2CppAssemblyDefinition
public int assembliesCount; public int assembliesCount;
[Version(Min = 19)]
public int metadataUsageListsOffset; // Il2CppMetadataUsageList public int metadataUsageListsOffset; // Il2CppMetadataUsageList
[Version(Min = 19)]
public int metadataUsageListsCount; public int metadataUsageListsCount;
[Version(Min = 19)]
public int metadataUsagePairsOffset; // Il2CppMetadataUsagePair public int metadataUsagePairsOffset; // Il2CppMetadataUsagePair
[Version(Min = 19)]
public int metadataUsagePairsCount; public int metadataUsagePairsCount;
[Version(Min = 19)]
public int fieldRefsOffset; // Il2CppFieldRef public int fieldRefsOffset; // Il2CppFieldRef
[Version(Min = 19)]
public int fieldRefsCount; public int fieldRefsCount;
[Version(Min = 19)]
public int referencedAssembliesOffset; // int public int referencedAssembliesOffset; // int
[Version(Min = 19)]
public int referencedAssembliesCount; public int referencedAssembliesCount;
[Version(Min = 21)]
public int attributesInfoOffset; // Il2CppCustomAttributeTypeRange public int attributesInfoOffset; // Il2CppCustomAttributeTypeRange
[Version(Min = 21)]
public int attributesInfoCount; public int attributesInfoCount;
[Version(Min = 21)]
public int attributeTypesOffset; // TypeIndex public int attributeTypesOffset; // TypeIndex
[Version(Min = 21)]
public int attributeTypesCount; public int attributeTypesCount;
// Added in metadata v22 // Added in metadata v22
@@ -122,6 +135,8 @@ namespace Il2CppInspector
public uint exportedTypeCount; public uint exportedTypeCount;
public int entryPointIndex; public int entryPointIndex;
[Version(Min = 19)]
public uint token; public uint token;
[Version(Min = 24.1)] [Version(Min = 24.1)]
@@ -159,9 +174,9 @@ namespace Il2CppInspector
public int delegateWrapperFromManagedToNativeIndex; // (was renamed to reversePInvokeWrapperIndex in v22) public int delegateWrapperFromManagedToNativeIndex; // (was renamed to reversePInvokeWrapperIndex in v22)
[Version(Max = 22)] [Version(Max = 22)]
public int marshalingFunctionsIndex; public int marshalingFunctionsIndex;
[Version(Max = 22)] [Version(Min = 21, Max = 22)]
public int ccwFunctionIndex; public int ccwFunctionIndex;
[Version(Max = 22)] [Version(Min = 21, Max = 22)]
public int guidIndex; public int guidIndex;
public uint flags; public uint flags;
@@ -193,6 +208,8 @@ namespace Il2CppInspector
// 06 - is_import; (from v22: is_import_or_windows_runtime) // 06 - is_import; (from v22: is_import_or_windows_runtime)
// 07-10 - One of nine possible PackingSize values (0, 1, 2, 4, 8, 16, 32, 64, or 128) // 07-10 - One of nine possible PackingSize values (0, 1, 2, 4, 8, 16, 32, 64, or 128)
public uint bitfield; public uint bitfield;
[Version(Min = 19)]
public uint token; public uint token;
} }
@@ -245,6 +262,7 @@ namespace Il2CppInspector
[Version(Max = 24.0)] [Version(Max = 24.0)]
public int customAttributeIndex; public int customAttributeIndex;
[Version(Min = 19)]
public uint token; public uint token;
} }
@@ -265,6 +283,7 @@ namespace Il2CppInspector
[Version(Max = 24.0)] [Version(Max = 24.0)]
public int customAttributeIndex; public int customAttributeIndex;
[Version(Min = 19)]
public uint token; public uint token;
} }
@@ -279,6 +298,7 @@ namespace Il2CppInspector
[Version(Max = 24.0)] [Version(Max = 24.0)]
public int customAttributeIndex; public int customAttributeIndex;
[Version(Min = 19)]
public uint token; public uint token;
} }
} }