File: parent\parent\Common\JitInterface\CorInfoImpl_generated.cs
Web Access
Project: ILCompiler.ReadyToRun.csproj (ILCompiler.ReadyToRun)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

// DO NOT EDIT THIS FILE! IT IS AUTOGENERATED
// To regenerate run the gen script in src/coreclr/tools/Common/JitInterface/ThunkGenerator
// and follow the instructions in docs/project/updating-jitinterface.md

using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace Internal.JitInterface
{
    internal unsafe partial class CorInfoImpl
    {
        private struct ICorJitInfoCallbacks
        {
            [FixedAddressValueType]
            internal static readonly ICorJitInfoCallbacks s_callbacks;

            static ICorJitInfoCallbacks()
            {
                s_callbacks.isIntrinsic = &_isIntrinsic;
                s_callbacks.canValueClassInstancePointerEscape = &_canValueClassInstancePointerEscape;
                s_callbacks.notifyMethodInfoUsage = &_notifyMethodInfoUsage;
                s_callbacks.getMethodAttribs = &_getMethodAttribs;
                s_callbacks.setMethodAttribs = &_setMethodAttribs;
                s_callbacks.getMethodSig = &_getMethodSig;
                s_callbacks.getMethodInfo = &_getMethodInfo;
                s_callbacks.haveSameMethodDefinition = &_haveSameMethodDefinition;
                s_callbacks.getTypeDefinition = &_getTypeDefinition;
                s_callbacks.canInline = &_canInline;
                s_callbacks.beginInlining = &_beginInlining;
                s_callbacks.reportInliningDecision = &_reportInliningDecision;
                s_callbacks.canTailCall = &_canTailCall;
                s_callbacks.reportTailCallDecision = &_reportTailCallDecision;
                s_callbacks.getEHinfo = &_getEHinfo;
                s_callbacks.getMethodClass = &_getMethodClass;
                s_callbacks.getMethodVTableOffset = &_getMethodVTableOffset;
                s_callbacks.resolveVirtualMethod = &_resolveVirtualMethod;
                s_callbacks.getAsyncOtherVariant = &_getAsyncOtherVariant;
                s_callbacks.getDefaultComparerClass = &_getDefaultComparerClass;
                s_callbacks.getDefaultEqualityComparerClass = &_getDefaultEqualityComparerClass;
                s_callbacks.getSZArrayHelperEnumeratorClass = &_getSZArrayHelperEnumeratorClass;
                s_callbacks.expandRawHandleIntrinsic = &_expandRawHandleIntrinsic;
                s_callbacks.isIntrinsicType = &_isIntrinsicType;
                s_callbacks.getUnmanagedCallConv = &_getUnmanagedCallConv;
                s_callbacks.pInvokeMarshalingRequired = &_pInvokeMarshalingRequired;
                s_callbacks.satisfiesMethodConstraints = &_satisfiesMethodConstraints;
                s_callbacks.methodMustBeLoadedBeforeCodeIsRun = &_methodMustBeLoadedBeforeCodeIsRun;
                s_callbacks.getGSCookie = &_getGSCookie;
                s_callbacks.setPatchpointInfo = &_setPatchpointInfo;
                s_callbacks.getOSRInfo = &_getOSRInfo;
                s_callbacks.resolveToken = &_resolveToken;
                s_callbacks.findSig = &_findSig;
                s_callbacks.findCallSiteSig = &_findCallSiteSig;
                s_callbacks.getTokenTypeAsHandle = &_getTokenTypeAsHandle;
                s_callbacks.getStringLiteral = &_getStringLiteral;
                s_callbacks.printObjectDescription = &_printObjectDescription;
                s_callbacks.asCorInfoType = &_asCorInfoType;
                s_callbacks.getClassNameFromMetadata = &_getClassNameFromMetadata;
                s_callbacks.getTypeInstantiationArgument = &_getTypeInstantiationArgument;
                s_callbacks.getMethodInstantiationArgument = &_getMethodInstantiationArgument;
                s_callbacks.printClassName = &_printClassName;
                s_callbacks.isValueClass = &_isValueClass;
                s_callbacks.getClassAttribs = &_getClassAttribs;
                s_callbacks.getClassAssemblyName = &_getClassAssemblyName;
                s_callbacks.LongLifetimeMalloc = &_LongLifetimeMalloc;
                s_callbacks.LongLifetimeFree = &_LongLifetimeFree;
                s_callbacks.getIsClassInitedFlagAddress = &_getIsClassInitedFlagAddress;
                s_callbacks.getClassThreadStaticDynamicInfo = &_getClassThreadStaticDynamicInfo;
                s_callbacks.getClassStaticDynamicInfo = &_getClassStaticDynamicInfo;
                s_callbacks.getStaticBaseAddress = &_getStaticBaseAddress;
                s_callbacks.getClassSize = &_getClassSize;
                s_callbacks.getHeapClassSize = &_getHeapClassSize;
                s_callbacks.canAllocateOnStack = &_canAllocateOnStack;
                s_callbacks.getClassAlignmentRequirement = &_getClassAlignmentRequirement;
                s_callbacks.getClassGClayout = &_getClassGClayout;
                s_callbacks.getClassNumInstanceFields = &_getClassNumInstanceFields;
                s_callbacks.getFieldInClass = &_getFieldInClass;
                s_callbacks.getTypeLayout = &_getTypeLayout;
                s_callbacks.checkMethodModifier = &_checkMethodModifier;
                s_callbacks.getNewHelper = &_getNewHelper;
                s_callbacks.getNewArrHelper = &_getNewArrHelper;
                s_callbacks.getCastingHelper = &_getCastingHelper;
                s_callbacks.getSharedCCtorHelper = &_getSharedCCtorHelper;
                s_callbacks.getTypeForBox = &_getTypeForBox;
                s_callbacks.getBoxHelper = &_getBoxHelper;
                s_callbacks.getUnBoxHelper = &_getUnBoxHelper;
                s_callbacks.getRuntimeTypePointer = &_getRuntimeTypePointer;
                s_callbacks.isObjectImmutable = &_isObjectImmutable;
                s_callbacks.getStringChar = &_getStringChar;
                s_callbacks.getObjectType = &_getObjectType;
                s_callbacks.getReadyToRunHelper = &_getReadyToRunHelper;
                s_callbacks.getReadyToRunDelegateCtorHelper = &_getReadyToRunDelegateCtorHelper;
                s_callbacks.initClass = &_initClass;
                s_callbacks.classMustBeLoadedBeforeCodeIsRun = &_classMustBeLoadedBeforeCodeIsRun;
                s_callbacks.getBuiltinClass = &_getBuiltinClass;
                s_callbacks.getTypeForPrimitiveValueClass = &_getTypeForPrimitiveValueClass;
                s_callbacks.getTypeForPrimitiveNumericClass = &_getTypeForPrimitiveNumericClass;
                s_callbacks.canCast = &_canCast;
                s_callbacks.compareTypesForCast = &_compareTypesForCast;
                s_callbacks.compareTypesForEquality = &_compareTypesForEquality;
                s_callbacks.isMoreSpecificType = &_isMoreSpecificType;
                s_callbacks.isExactType = &_isExactType;
                s_callbacks.isGenericType = &_isGenericType;
                s_callbacks.isNullableType = &_isNullableType;
                s_callbacks.isEnum = &_isEnum;
                s_callbacks.getParentType = &_getParentType;
                s_callbacks.getChildType = &_getChildType;
                s_callbacks.isSDArray = &_isSDArray;
                s_callbacks.getArrayRank = &_getArrayRank;
                s_callbacks.getArrayIntrinsicID = &_getArrayIntrinsicID;
                s_callbacks.getArrayInitializationData = &_getArrayInitializationData;
                s_callbacks.canAccessClass = &_canAccessClass;
                s_callbacks.printFieldName = &_printFieldName;
                s_callbacks.getFieldClass = &_getFieldClass;
                s_callbacks.getFieldType = &_getFieldType;
                s_callbacks.getFieldOffset = &_getFieldOffset;
                s_callbacks.getFieldInfo = &_getFieldInfo;
                s_callbacks.getThreadLocalFieldInfo = &_getThreadLocalFieldInfo;
                s_callbacks.getThreadLocalStaticBlocksInfo = &_getThreadLocalStaticBlocksInfo;
                s_callbacks.getThreadLocalStaticInfo_NativeAOT = &_getThreadLocalStaticInfo_NativeAOT;
                s_callbacks.isFieldStatic = &_isFieldStatic;
                s_callbacks.getArrayOrStringLength = &_getArrayOrStringLength;
                s_callbacks.getBoundaries = &_getBoundaries;
                s_callbacks.setBoundaries = &_setBoundaries;
                s_callbacks.getVars = &_getVars;
                s_callbacks.setVars = &_setVars;
                s_callbacks.reportRichMappings = &_reportRichMappings;
                s_callbacks.reportAsyncDebugInfo = &_reportAsyncDebugInfo;
                s_callbacks.reportMetadata = &_reportMetadata;
                s_callbacks.allocateArray = &_allocateArray;
                s_callbacks.freeArray = &_freeArray;
                s_callbacks.getArgNext = &_getArgNext;
                s_callbacks.getArgType = &_getArgType;
                s_callbacks.getExactClasses = &_getExactClasses;
                s_callbacks.getArgClass = &_getArgClass;
                s_callbacks.getHFAType = &_getHFAType;
                s_callbacks.runWithErrorTrap = &_runWithErrorTrap;
                s_callbacks.runWithSPMIErrorTrap = &_runWithSPMIErrorTrap;
                s_callbacks.getEEInfo = &_getEEInfo;
                s_callbacks.getAsyncInfo = &_getAsyncInfo;
                s_callbacks.getAwaitReturnCall = &_getAwaitReturnCall;
                s_callbacks.getAwaitAwaiterInContinuationCall = &_getAwaitAwaiterInContinuationCall;
                s_callbacks.getMethodDefFromMethod = &_getMethodDefFromMethod;
                s_callbacks.printMethodName = &_printMethodName;
                s_callbacks.getMethodNameFromMetadata = &_getMethodNameFromMetadata;
                s_callbacks.getMethodHash = &_getMethodHash;
                s_callbacks.getSystemVAmd64PassStructInRegisterDescriptor = &_getSystemVAmd64PassStructInRegisterDescriptor;
                s_callbacks.getSwiftLowering = &_getSwiftLowering;
                s_callbacks.getFpStructLowering = &_getFpStructLowering;
                s_callbacks.getWasmLowering = &_getWasmLowering;
                s_callbacks.getAddressAlignment = &_getAddressAlignment;
                s_callbacks.getWasmWellKnownGlobals = &_getWasmWellKnownGlobals;
                s_callbacks.getThreadTLSIndex = &_getThreadTLSIndex;
                s_callbacks.getAddrOfCaptureThreadGlobal = &_getAddrOfCaptureThreadGlobal;
                s_callbacks.getHelperFtn = &_getHelperFtn;
                s_callbacks.getFunctionEntryPoint = &_getFunctionEntryPoint;
                s_callbacks.getFunctionFixedEntryPoint = &_getFunctionFixedEntryPoint;
                s_callbacks.embedModuleHandle = &_embedModuleHandle;
                s_callbacks.embedClassHandle = &_embedClassHandle;
                s_callbacks.embedMethodHandle = &_embedMethodHandle;
                s_callbacks.embedFieldHandle = &_embedFieldHandle;
                s_callbacks.embedGenericHandle = &_embedGenericHandle;
                s_callbacks.getLocationOfThisType = &_getLocationOfThisType;
                s_callbacks.getAddressOfPInvokeTarget = &_getAddressOfPInvokeTarget;
                s_callbacks.GetCookieForInterpreterCalliSig = &_GetCookieForInterpreterCalliSig;
                s_callbacks.getJustMyCodeHandle = &_getJustMyCodeHandle;
                s_callbacks.GetProfilingHandle = &_GetProfilingHandle;
                s_callbacks.getCallInfo = &_getCallInfo;
                s_callbacks.getStaticFieldContent = &_getStaticFieldContent;
                s_callbacks.getObjectContent = &_getObjectContent;
                s_callbacks.getStaticFieldCurrentClass = &_getStaticFieldCurrentClass;
                s_callbacks.getVarArgsHandle = &_getVarArgsHandle;
                s_callbacks.constructStringLiteral = &_constructStringLiteral;
                s_callbacks.emptyStringLiteral = &_emptyStringLiteral;
                s_callbacks.getFieldThreadLocalStoreID = &_getFieldThreadLocalStoreID;
                s_callbacks.GetDelegateCtor = &_GetDelegateCtor;
                s_callbacks.MethodCompileComplete = &_MethodCompileComplete;
                s_callbacks.getTailCallHelpers = &_getTailCallHelpers;
                s_callbacks.getContinuationType = &_getContinuationType;
                s_callbacks.getAsyncResumptionStub = &_getAsyncResumptionStub;
                s_callbacks.convertPInvokeCalliToCall = &_convertPInvokeCalliToCall;
                s_callbacks.notifyInstructionSetUsage = &_notifyInstructionSetUsage;
                s_callbacks.updateEntryPointForTailCall = &_updateEntryPointForTailCall;
                s_callbacks.allocMem = &_allocMem;
                s_callbacks.reserveUnwindInfo = &_reserveUnwindInfo;
                s_callbacks.allocUnwindInfo = &_allocUnwindInfo;
                s_callbacks.allocGCInfo = &_allocGCInfo;
                s_callbacks.setEHcount = &_setEHcount;
                s_callbacks.setEHinfo = &_setEHinfo;
                s_callbacks.logMsg = &_logMsg;
                s_callbacks.doAssert = &_doAssert;
                s_callbacks.reportFatalError = &_reportFatalError;
                s_callbacks.getPgoInstrumentationResults = &_getPgoInstrumentationResults;
                s_callbacks.allocPgoInstrumentationBySchema = &_allocPgoInstrumentationBySchema;
                s_callbacks.recordCallSite = &_recordCallSite;
                s_callbacks.recordWasmManagedCallSig = &_recordWasmManagedCallSig;
                s_callbacks.recordRelocation = &_recordRelocation;
                s_callbacks.getRelocTypeHint = &_getRelocTypeHint;
                s_callbacks.getExpectedTargetArchitecture = &_getExpectedTargetArchitecture;
                s_callbacks.getJitFlags = &_getJitFlags;
                s_callbacks.getWasmTypeSymbol = &_getWasmTypeSymbol;
                s_callbacks.getSpecialCopyHelper = &_getSpecialCopyHelper;
            }

            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, byte> isIntrinsic;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, byte> canValueClassInstancePointerEscape;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, byte> notifyMethodInfoUsage;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, uint> getMethodAttribs;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CorInfoMethodRuntimeFlags, void> setMethodAttribs;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_SIG_INFO*, CORINFO_CLASS_STRUCT_*, void> getMethodSig;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_METHOD_INFO*, CORINFO_CONTEXT_STRUCT*, byte> getMethodInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_METHOD_STRUCT_*, byte> haveSameMethodDefinition;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_*> getTypeDefinition;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_METHOD_STRUCT_*, CorInfoInline> canInline;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_METHOD_STRUCT_*, void> beginInlining;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_METHOD_STRUCT_*, CorInfoInline, byte*, void> reportInliningDecision;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_METHOD_STRUCT_*, CORINFO_METHOD_STRUCT_*, byte, byte> canTailCall;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_METHOD_STRUCT_*, byte, CorInfoTailCall, byte*, void> reportTailCallDecision;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, uint, CORINFO_EH_CLAUSE*, void> getEHinfo;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_CLASS_STRUCT_*> getMethodClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, uint*, uint*, bool*, void> getMethodVTableOffset;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_DEVIRTUALIZATION_INFO*, byte> resolveVirtualMethod;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, bool*, CORINFO_METHOD_STRUCT_*> getAsyncOtherVariant;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_*> getDefaultComparerClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_*> getDefaultEqualityComparerClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_*> getSZArrayHelperEnumeratorClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, CORINFO_METHOD_STRUCT_*, CORINFO_GENERICHANDLE_RESULT*, void> expandRawHandleIntrinsic;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, byte> isIntrinsicType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_SIG_INFO*, bool*, CorInfoCallConvExtension> getUnmanagedCallConv;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_SIG_INFO*, byte> pInvokeMarshalingRequired;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_METHOD_STRUCT_*, byte> satisfiesMethodConstraints;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, void> methodMustBeLoadedBeforeCodeIsRun;
            public delegate* unmanaged<IntPtr, IntPtr*, IntPtr*, IntPtr**, void> getGSCookie;
            public delegate* unmanaged<IntPtr, IntPtr*, PatchpointInfo*, void> setPatchpointInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, uint*, PatchpointInfo*> getOSRInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, void> resolveToken;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_MODULE_STRUCT_*, uint, CORINFO_CONTEXT_STRUCT*, CORINFO_SIG_INFO*, void> findSig;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_MODULE_STRUCT_*, uint, CORINFO_CONTEXT_STRUCT*, CORINFO_SIG_INFO*, void> findCallSiteSig;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, CORINFO_CLASS_STRUCT_*> getTokenTypeAsHandle;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_MODULE_STRUCT_*, uint, char*, int, int, int> getStringLiteral;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_OBJECT_STRUCT_*, byte*, nuint, nuint*, nuint> printObjectDescription;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CorInfoType> asCorInfoType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, byte**, byte*> getClassNameFromMetadata;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, uint, CORINFO_CLASS_STRUCT_*> getTypeInstantiationArgument;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, uint, CORINFO_CLASS_STRUCT_*> getMethodInstantiationArgument;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, byte*, nuint, nuint*, nuint> printClassName;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, byte> isValueClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, uint> getClassAttribs;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, byte*> getClassAssemblyName;
            public delegate* unmanaged<IntPtr, IntPtr*, nuint, void*> LongLifetimeMalloc;
            public delegate* unmanaged<IntPtr, IntPtr*, void*, void> LongLifetimeFree;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CONST_LOOKUP*, int*, byte> getIsClassInitedFlagAddress;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, void*> getClassThreadStaticDynamicInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, void*> getClassStaticDynamicInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, byte, CORINFO_CONST_LOOKUP*, byte> getStaticBaseAddress;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, uint> getClassSize;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, uint> getHeapClassSize;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, byte> canAllocateOnStack;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, byte, uint> getClassAlignmentRequirement;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, byte*, uint> getClassGClayout;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, uint> getClassNumInstanceFields;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, int, CORINFO_FIELD_STRUCT_*> getFieldInClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_TYPE_LAYOUT_NODE*, nuint*, GetTypeLayoutResult> getTypeLayout;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, byte*, byte, byte> checkMethodModifier;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, bool*, CorInfoHelpFunc> getNewHelper;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CorInfoHelpFunc> getNewArrHelper;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, byte, CorInfoHelpFunc> getCastingHelper;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CorInfoHelpFunc> getSharedCCtorHelper;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_*> getTypeForBox;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CorInfoHelpFunc> getBoxHelper;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CorInfoHelpFunc> getUnBoxHelper;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_OBJECT_STRUCT_*> getRuntimeTypePointer;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_OBJECT_STRUCT_*, byte> isObjectImmutable;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_OBJECT_STRUCT_*, int, ushort*, byte> getStringChar;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_OBJECT_STRUCT_*, CORINFO_CLASS_STRUCT_*> getObjectType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, CorInfoHelpFunc, CORINFO_METHOD_STRUCT_*, CORINFO_CONST_LOOKUP*, byte> getReadyToRunHelper;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, mdToken, CORINFO_CLASS_STRUCT_*, CORINFO_METHOD_STRUCT_*, CORINFO_LOOKUP*, void> getReadyToRunDelegateCtorHelper;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, CORINFO_METHOD_STRUCT_*, CORINFO_CONTEXT_STRUCT*, CorInfoInitClassResult> initClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, void> classMustBeLoadedBeforeCodeIsRun;
            public delegate* unmanaged<IntPtr, IntPtr*, CorInfoClassId, CORINFO_CLASS_STRUCT_*> getBuiltinClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CorInfoType> getTypeForPrimitiveValueClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CorInfoType> getTypeForPrimitiveNumericClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_*, byte> canCast;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_*, TypeCompareState> compareTypesForCast;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_*, TypeCompareState> compareTypesForEquality;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_*, byte> isMoreSpecificType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, byte> isExactType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, TypeCompareState> isGenericType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, TypeCompareState> isNullableType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_**, TypeCompareState> isEnum;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_*> getParentType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_CLASS_STRUCT_**, CorInfoType> getChildType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, byte> isSDArray;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, uint> getArrayRank;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CorInfoArrayIntrinsic> getArrayIntrinsicID;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, uint, void*> getArrayInitializationData;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, CORINFO_METHOD_STRUCT_*, CORINFO_HELPER_DESC*, CorInfoIsAccessAllowedResult> canAccessClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, byte*, nuint, nuint*, nuint> printFieldName;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, CORINFO_CLASS_STRUCT_*> getFieldClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, CORINFO_CLASS_STRUCT_**, CORINFO_CLASS_STRUCT_*, CorInfoType> getFieldType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, uint> getFieldOffset;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, CORINFO_METHOD_STRUCT_*, CORINFO_ACCESS_FLAGS, CORINFO_FIELD_INFO*, void> getFieldInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, byte, uint> getThreadLocalFieldInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_THREAD_STATIC_BLOCKS_INFO*, void> getThreadLocalStaticBlocksInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_THREAD_STATIC_INFO_NATIVEAOT*, void> getThreadLocalStaticInfo_NativeAOT;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, byte> isFieldStatic;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_OBJECT_STRUCT_*, int> getArrayOrStringLength;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, uint*, uint**, BoundaryTypes*, void> getBoundaries;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, uint, OffsetMapping*, void> setBoundaries;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, uint*, ILVarInfo**, bool*, void> getVars;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, uint, NativeVarInfo*, void> setVars;
            public delegate* unmanaged<IntPtr, IntPtr*, InlineTreeNode*, uint, RichOffsetMapping*, uint, void> reportRichMappings;
            public delegate* unmanaged<IntPtr, IntPtr*, AsyncInfo*, AsyncSuspensionPoint*, AsyncContinuationVarInfo*, uint, void> reportAsyncDebugInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, byte*, void*, nuint, void> reportMetadata;
            public delegate* unmanaged<IntPtr, IntPtr*, nuint, void*> allocateArray;
            public delegate* unmanaged<IntPtr, IntPtr*, void*, void> freeArray;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_ARG_LIST_STRUCT_*, CORINFO_ARG_LIST_STRUCT_*> getArgNext;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_SIG_INFO*, CORINFO_ARG_LIST_STRUCT_*, CORINFO_CLASS_STRUCT_**, CorInfoTypeWithMod> getArgType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, int, CORINFO_CLASS_STRUCT_**, int> getExactClasses;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_SIG_INFO*, CORINFO_ARG_LIST_STRUCT_*, CORINFO_CLASS_STRUCT_*> getArgClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CorInfoHFAElemType> getHFAType;
            public delegate* unmanaged<IntPtr, IntPtr*, void*, void*, byte> runWithErrorTrap;
            public delegate* unmanaged<IntPtr, IntPtr*, void*, void*, byte> runWithSPMIErrorTrap;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_EE_INFO*, void> getEEInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_ASYNC_INFO*, void> getAsyncInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_CONTEXT_STRUCT**, CORINFO_LOOKUP*, CORINFO_METHOD_STRUCT_*> getAwaitReturnCall;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_RESOLVED_TOKEN*, byte, CORINFO_CONTEXT_STRUCT**, CORINFO_LOOKUP*, CORINFO_METHOD_STRUCT_*> getAwaitAwaiterInContinuationCall;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, mdToken> getMethodDefFromMethod;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, byte*, nuint, nuint*, nuint> printMethodName;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, byte**, byte**, byte**, nuint, byte*> getMethodNameFromMetadata;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, uint> getMethodHash;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, SYSTEMV_AMD64_CORINFO_STRUCT_REG_PASSING_DESCRIPTOR*, byte> getSystemVAmd64PassStructInRegisterDescriptor;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_SWIFT_LOWERING*, void> getSwiftLowering;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_FPSTRUCT_LOWERING*, void> getFpStructLowering;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CorInfoWasmType> getWasmLowering;
            public delegate* unmanaged<IntPtr, IntPtr*, void*, uint> getAddressAlignment;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_WASM_WELLKNOWN_GLOBALS*, void> getWasmWellKnownGlobals;
            public delegate* unmanaged<IntPtr, IntPtr*, void**, uint> getThreadTLSIndex;
            public delegate* unmanaged<IntPtr, IntPtr*, void**, int*> getAddrOfCaptureThreadGlobal;
            public delegate* unmanaged<IntPtr, IntPtr*, CorInfoHelpFunc, CORINFO_CONST_LOOKUP*, CORINFO_METHOD_STRUCT_**, void> getHelperFtn;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_CONST_LOOKUP*, CORINFO_ACCESS_FLAGS, void> getFunctionEntryPoint;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, byte, CORINFO_CONST_LOOKUP*, void> getFunctionFixedEntryPoint;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_MODULE_STRUCT_*, void**, CORINFO_MODULE_STRUCT_*> embedModuleHandle;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, void**, CORINFO_CLASS_STRUCT_*> embedClassHandle;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, void**, CORINFO_METHOD_STRUCT_*> embedMethodHandle;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, void**, CORINFO_FIELD_STRUCT_*> embedFieldHandle;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, byte, CORINFO_METHOD_STRUCT_*, CORINFO_GENERICHANDLE_RESULT*, void> embedGenericHandle;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_LOOKUP_KIND*, void> getLocationOfThisType;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_CONST_LOOKUP*, void> getAddressOfPInvokeTarget;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_SIG_INFO*, void*> GetCookieForInterpreterCalliSig;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_JUST_MY_CODE_HANDLE_**, CORINFO_JUST_MY_CODE_HANDLE_*> getJustMyCodeHandle;
            public delegate* unmanaged<IntPtr, IntPtr*, bool*, void**, bool*, void> GetProfilingHandle;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, CORINFO_RESOLVED_TOKEN*, CORINFO_METHOD_STRUCT_*, CORINFO_CALLINFO_FLAGS, CORINFO_CALL_INFO*, void> getCallInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, byte*, int, int, byte, byte> getStaticFieldContent;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_OBJECT_STRUCT_*, byte*, int, int, byte> getObjectContent;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, byte*, CORINFO_CLASS_STRUCT_*> getStaticFieldCurrentClass;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_SIG_INFO*, CORINFO_METHOD_STRUCT_*, void**, IntPtr> getVarArgsHandle;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_MODULE_STRUCT_*, mdToken, void**, InfoAccessType> constructStringLiteral;
            public delegate* unmanaged<IntPtr, IntPtr*, void**, InfoAccessType> emptyStringLiteral;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_FIELD_STRUCT_*, void**, uint> getFieldThreadLocalStoreID;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, CORINFO_CLASS_STRUCT_*, CORINFO_METHOD_STRUCT_*, DelegateCtorArgs*, CORINFO_METHOD_STRUCT_*> GetDelegateCtor;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, void> MethodCompileComplete;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, CORINFO_SIG_INFO*, CORINFO_GET_TAILCALL_HELPERS_FLAGS, CORINFO_TAILCALL_HELPERS*, byte> getTailCallHelpers;
            public delegate* unmanaged<IntPtr, IntPtr*, nuint, bool*, nuint, CORINFO_CLASS_STRUCT_*> getContinuationType;
            public delegate* unmanaged<IntPtr, IntPtr*, void**, CORINFO_METHOD_STRUCT_*> getAsyncResumptionStub;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_RESOLVED_TOKEN*, byte, byte> convertPInvokeCalliToCall;
            public delegate* unmanaged<IntPtr, IntPtr*, InstructionSet, byte, byte, byte> notifyInstructionSetUsage;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CONST_LOOKUP*, void> updateEntryPointForTailCall;
            public delegate* unmanaged<IntPtr, IntPtr*, AllocMemArgs*, void> allocMem;
            public delegate* unmanaged<IntPtr, IntPtr*, byte, byte, uint, void> reserveUnwindInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, byte*, byte*, uint, uint, uint, byte*, CorJitFuncKind, void> allocUnwindInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, nuint, void*> allocGCInfo;
            public delegate* unmanaged<IntPtr, IntPtr*, uint, void> setEHcount;
            public delegate* unmanaged<IntPtr, IntPtr*, uint, CORINFO_EH_CLAUSE*, void> setEHinfo;
            public delegate* unmanaged<IntPtr, IntPtr*, uint, byte*, IntPtr, byte> logMsg;
            public delegate* unmanaged<IntPtr, IntPtr*, byte*, int, byte*, int> doAssert;
            public delegate* unmanaged<IntPtr, IntPtr*, CorJitResult, void> reportFatalError;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, PgoInstrumentationSchema**, uint*, byte**, PgoSource*, bool*, HRESULT> getPgoInstrumentationResults;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_METHOD_STRUCT_*, PgoInstrumentationSchema*, uint, byte**, HRESULT> allocPgoInstrumentationBySchema;
            public delegate* unmanaged<IntPtr, IntPtr*, uint, CORINFO_SIG_INFO*, CORINFO_METHOD_STRUCT_*, void> recordCallSite;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_SIG_INFO*, void> recordWasmManagedCallSig;
            public delegate* unmanaged<IntPtr, IntPtr*, void*, void*, void*, CorInfoReloc, int, void> recordRelocation;
            public delegate* unmanaged<IntPtr, IntPtr*, void*, CorInfoReloc> getRelocTypeHint;
            public delegate* unmanaged<IntPtr, IntPtr*, uint> getExpectedTargetArchitecture;
            public delegate* unmanaged<IntPtr, IntPtr*, CORJIT_FLAGS*, uint, uint> getJitFlags;
            public delegate* unmanaged<IntPtr, IntPtr*, CorInfoWasmType*, nuint, CORINFO_WASM_TYPE_SYMBOL_STRUCT_*> getWasmTypeSymbol;
            public delegate* unmanaged<IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, CORINFO_METHOD_STRUCT_*> getSpecialCopyHelper;
        }

        private static IntPtr GetUnmanagedCallbacks()
        {
            return (IntPtr)Unsafe.AsPointer(ref Unsafe.AsRef(in ICorJitInfoCallbacks.s_callbacks));
        }

        [UnmanagedCallersOnly]
        private static byte _isIntrinsic(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.isIntrinsic(ftn) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _canValueClassInstancePointerEscape(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.canValueClassInstancePointerEscape(ftn) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _notifyMethodInfoUsage(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.notifyMethodInfoUsage(ftn) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getMethodAttribs(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getMethodAttribs(ftn);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _setMethodAttribs(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, CorInfoMethodRuntimeFlags attribs)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.setMethodAttribs(ftn, attribs);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getMethodSig(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, CORINFO_SIG_INFO* sig, CORINFO_CLASS_STRUCT_* memberParent)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getMethodSig(ftn, sig, memberParent);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static byte _getMethodInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, CORINFO_METHOD_INFO* info, CORINFO_CONTEXT_STRUCT* context)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getMethodInfo(ftn, info, context) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _haveSameMethodDefinition(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* meth1Hnd, CORINFO_METHOD_STRUCT_* meth2Hnd)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.haveSameMethodDefinition(meth1Hnd, meth2Hnd) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getTypeDefinition(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* type)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getTypeDefinition(type);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoInline _canInline(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* callerHnd, CORINFO_METHOD_STRUCT_* calleeHnd)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.canInline(callerHnd, calleeHnd);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _beginInlining(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* inlinerHnd, CORINFO_METHOD_STRUCT_* inlineeHnd)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.beginInlining(inlinerHnd, inlineeHnd);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _reportInliningDecision(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* inlinerHnd, CORINFO_METHOD_STRUCT_* inlineeHnd, CorInfoInline inlineResult, byte* reason)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.reportInliningDecision(inlinerHnd, inlineeHnd, inlineResult, reason);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static byte _canTailCall(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* callerHnd, CORINFO_METHOD_STRUCT_* declaredCalleeHnd, CORINFO_METHOD_STRUCT_* exactCalleeHnd, byte fIsTailPrefix)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.canTailCall(callerHnd, declaredCalleeHnd, exactCalleeHnd, fIsTailPrefix != 0) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _reportTailCallDecision(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* callerHnd, CORINFO_METHOD_STRUCT_* calleeHnd, byte fIsTailPrefix, CorInfoTailCall tailCallResult, byte* reason)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.reportTailCallDecision(callerHnd, calleeHnd, fIsTailPrefix != 0, tailCallResult, reason);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getEHinfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, uint EHnumber, CORINFO_EH_CLAUSE* clause)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getEHinfo(ftn, EHnumber, ref *clause);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getMethodClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* method)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getMethodClass(method);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _getMethodVTableOffset(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* method, uint* offsetOfIndirection, uint* offsetAfterIndirection, bool* isRelative)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getMethodVTableOffset(method, ref *offsetOfIndirection, ref *offsetAfterIndirection, ref *isRelative);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static byte _resolveVirtualMethod(IntPtr thisHandle, IntPtr* ppException, CORINFO_DEVIRTUALIZATION_INFO* info)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.resolveVirtualMethod(info) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_METHOD_STRUCT_* _getAsyncOtherVariant(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, bool* variantIsThunk)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getAsyncOtherVariant(ftn, ref *variantIsThunk);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getDefaultComparerClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* elemType)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getDefaultComparerClass(elemType);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getDefaultEqualityComparerClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* elemType)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getDefaultEqualityComparerClass(elemType);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getSZArrayHelperEnumeratorClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* elemType)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getSZArrayHelperEnumeratorClass(elemType);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _expandRawHandleIntrinsic(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_GENERICHANDLE_RESULT* pResult)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.expandRawHandleIntrinsic(ref *pResolvedToken, callerHandle, ref *pResult);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static byte _isIntrinsicType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* classHnd)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.isIntrinsicType(classHnd) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoCallConvExtension _getUnmanagedCallConv(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* method, CORINFO_SIG_INFO* callSiteSig, bool* pSuppressGCTransition)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getUnmanagedCallConv(method, callSiteSig, ref *pSuppressGCTransition);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _pInvokeMarshalingRequired(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* method, CORINFO_SIG_INFO* callSiteSig)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.pInvokeMarshalingRequired(method, callSiteSig) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _satisfiesMethodConstraints(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* parent, CORINFO_METHOD_STRUCT_* method)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.satisfiesMethodConstraints(parent, method) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _methodMustBeLoadedBeforeCodeIsRun(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* method)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.methodMustBeLoadedBeforeCodeIsRun(method);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getGSCookie(IntPtr thisHandle, IntPtr* ppException, IntPtr* pCookieVal, IntPtr** ppCookieVal)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getGSCookie(pCookieVal, ppCookieVal);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _setPatchpointInfo(IntPtr thisHandle, IntPtr* ppException, PatchpointInfo* patchpointInfo)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.setPatchpointInfo(patchpointInfo);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static PatchpointInfo* _getOSRInfo(IntPtr thisHandle, IntPtr* ppException, uint* ilOffset)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getOSRInfo(ref *ilOffset);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _resolveToken(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.resolveToken(ref *pResolvedToken);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _findSig(IntPtr thisHandle, IntPtr* ppException, CORINFO_MODULE_STRUCT_* module, uint sigTOK, CORINFO_CONTEXT_STRUCT* context, CORINFO_SIG_INFO* sig)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.findSig(module, sigTOK, context, sig);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _findCallSiteSig(IntPtr thisHandle, IntPtr* ppException, CORINFO_MODULE_STRUCT_* module, uint methTOK, CORINFO_CONTEXT_STRUCT* context, CORINFO_SIG_INFO* sig)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.findCallSiteSig(module, methTOK, context, sig);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getTokenTypeAsHandle(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getTokenTypeAsHandle(ref *pResolvedToken);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static int _getStringLiteral(IntPtr thisHandle, IntPtr* ppException, CORINFO_MODULE_STRUCT_* module, uint metaTOK, char* buffer, int bufferSize, int startIndex)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getStringLiteral(module, metaTOK, buffer, bufferSize, startIndex);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static nuint _printObjectDescription(IntPtr thisHandle, IntPtr* ppException, CORINFO_OBJECT_STRUCT_* handle, byte* buffer, nuint bufferSize, nuint* pRequiredBufferSize)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.printObjectDescription(handle, buffer, bufferSize, pRequiredBufferSize);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoType _asCorInfoType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.asCorInfoType(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte* _getClassNameFromMetadata(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, byte** namespaceName)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getClassNameFromMetadata(cls, namespaceName);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getTypeInstantiationArgument(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, uint index)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getTypeInstantiationArgument(cls, index);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getMethodInstantiationArgument(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, uint index)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getMethodInstantiationArgument(ftn, index);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static nuint _printClassName(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, byte* buffer, nuint bufferSize, nuint* pRequiredBufferSize)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.printClassName(cls, buffer, bufferSize, pRequiredBufferSize);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _isValueClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.isValueClass(cls) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getClassAttribs(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getClassAttribs(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte* _getClassAssemblyName(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getClassAssemblyName(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void* _LongLifetimeMalloc(IntPtr thisHandle, IntPtr* ppException, nuint sz)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.LongLifetimeMalloc(sz);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _LongLifetimeFree(IntPtr thisHandle, IntPtr* ppException, void* obj)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.LongLifetimeFree(obj);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static byte _getIsClassInitedFlagAddress(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, CORINFO_CONST_LOOKUP* addr, int* offset)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getIsClassInitedFlagAddress(cls, ref *addr, ref *offset) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void* _getClassThreadStaticDynamicInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clr)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getClassThreadStaticDynamicInfo(clr);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void* _getClassStaticDynamicInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clr)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getClassStaticDynamicInfo(clr);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _getStaticBaseAddress(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, byte isGc, CORINFO_CONST_LOOKUP* addr)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getStaticBaseAddress(cls, isGc != 0, ref *addr) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getClassSize(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getClassSize(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getHeapClassSize(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getHeapClassSize(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _canAllocateOnStack(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.canAllocateOnStack(cls) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getClassAlignmentRequirement(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, byte fDoubleAlignHint)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getClassAlignmentRequirement(cls, fDoubleAlignHint != 0);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getClassGClayout(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, byte* gcPtrs)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getClassGClayout(cls, gcPtrs);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getClassNumInstanceFields(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getClassNumInstanceFields(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_FIELD_STRUCT_* _getFieldInClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clsHnd, int num)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getFieldInClass(clsHnd, num);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static GetTypeLayoutResult _getTypeLayout(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* typeHnd, CORINFO_TYPE_LAYOUT_NODE* treeNodes, nuint* numTreeNodes)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getTypeLayout(typeHnd, treeNodes, numTreeNodes);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _checkMethodModifier(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* hMethod, byte* modifier, byte fOptional)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.checkMethodModifier(hMethod, modifier, fOptional != 0) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoHelpFunc _getNewHelper(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* classHandle, bool* pHasSideEffects)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getNewHelper(classHandle, ref *pHasSideEffects);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoHelpFunc _getNewArrHelper(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* arrayCls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getNewArrHelper(arrayCls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoHelpFunc _getCastingHelper(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, byte fThrowing)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getCastingHelper(ref *pResolvedToken, fThrowing != 0);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoHelpFunc _getSharedCCtorHelper(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clsHnd)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getSharedCCtorHelper(clsHnd);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getTypeForBox(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getTypeForBox(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoHelpFunc _getBoxHelper(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getBoxHelper(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoHelpFunc _getUnBoxHelper(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getUnBoxHelper(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_OBJECT_STRUCT_* _getRuntimeTypePointer(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getRuntimeTypePointer(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _isObjectImmutable(IntPtr thisHandle, IntPtr* ppException, CORINFO_OBJECT_STRUCT_* objPtr)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.isObjectImmutable(objPtr) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _getStringChar(IntPtr thisHandle, IntPtr* ppException, CORINFO_OBJECT_STRUCT_* strObj, int index, ushort* value)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getStringChar(strObj, index, value) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getObjectType(IntPtr thisHandle, IntPtr* ppException, CORINFO_OBJECT_STRUCT_* objPtr)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getObjectType(objPtr);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _getReadyToRunHelper(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, CorInfoHelpFunc id, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_CONST_LOOKUP* pLookup)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getReadyToRunHelper(ref *pResolvedToken, id, callerHandle, ref *pLookup) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _getReadyToRunDelegateCtorHelper(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pTargetMethod, mdToken targetConstraint, CORINFO_CLASS_STRUCT_* delegateType, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_LOOKUP* pLookup)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getReadyToRunDelegateCtorHelper(ref *pTargetMethod, targetConstraint, delegateType, callerHandle, ref *pLookup);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoInitClassResult _initClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field, CORINFO_METHOD_STRUCT_* method, CORINFO_CONTEXT_STRUCT* context)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.initClass(field, method, context);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _classMustBeLoadedBeforeCodeIsRun(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.classMustBeLoadedBeforeCodeIsRun(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getBuiltinClass(IntPtr thisHandle, IntPtr* ppException, CorInfoClassId classId)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getBuiltinClass(classId);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoType _getTypeForPrimitiveValueClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getTypeForPrimitiveValueClass(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoType _getTypeForPrimitiveNumericClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getTypeForPrimitiveNumericClass(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _canCast(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* child, CORINFO_CLASS_STRUCT_* parent)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.canCast(child, parent) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static TypeCompareState _compareTypesForCast(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* fromClass, CORINFO_CLASS_STRUCT_* toClass)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.compareTypesForCast(fromClass, toClass);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static TypeCompareState _compareTypesForEquality(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls1, CORINFO_CLASS_STRUCT_* cls2)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.compareTypesForEquality(cls1, cls2);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _isMoreSpecificType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls1, CORINFO_CLASS_STRUCT_* cls2)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.isMoreSpecificType(cls1, cls2) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _isExactType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.isExactType(cls) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static TypeCompareState _isGenericType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.isGenericType(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static TypeCompareState _isNullableType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.isNullableType(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static TypeCompareState _isEnum(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls, CORINFO_CLASS_STRUCT_** underlyingType)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.isEnum(cls, underlyingType);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getParentType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getParentType(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoType _getChildType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* clsHnd, CORINFO_CLASS_STRUCT_** clsRet)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getChildType(clsHnd, clsRet);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _isSDArray(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.isSDArray(cls) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getArrayRank(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* cls)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getArrayRank(cls);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoArrayIntrinsic _getArrayIntrinsicID(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getArrayIntrinsicID(ftn);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void* _getArrayInitializationData(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field, uint size)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getArrayInitializationData(field, size);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoIsAccessAllowedResult _canAccessClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_HELPER_DESC* pAccessHelper)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.canAccessClass(ref *pResolvedToken, callerHandle, ref *pAccessHelper);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static nuint _printFieldName(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field, byte* buffer, nuint bufferSize, nuint* pRequiredBufferSize)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.printFieldName(field, buffer, bufferSize, pRequiredBufferSize);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getFieldClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getFieldClass(field);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoType _getFieldType(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field, CORINFO_CLASS_STRUCT_** structType, CORINFO_CLASS_STRUCT_* fieldOwnerHint)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getFieldType(field, structType, fieldOwnerHint);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getFieldOffset(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getFieldOffset(field);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _getFieldInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_ACCESS_FLAGS flags, CORINFO_FIELD_INFO* pResult)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getFieldInfo(ref *pResolvedToken, callerHandle, flags, pResult);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getThreadLocalFieldInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field, byte isGCtype)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getThreadLocalFieldInfo(field, isGCtype != 0);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _getThreadLocalStaticBlocksInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_THREAD_STATIC_BLOCKS_INFO* pInfo)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getThreadLocalStaticBlocksInfo(pInfo);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getThreadLocalStaticInfo_NativeAOT(IntPtr thisHandle, IntPtr* ppException, CORINFO_THREAD_STATIC_INFO_NATIVEAOT* pInfo)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getThreadLocalStaticInfo_NativeAOT(pInfo);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static byte _isFieldStatic(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* fldHnd)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.isFieldStatic(fldHnd) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static int _getArrayOrStringLength(IntPtr thisHandle, IntPtr* ppException, CORINFO_OBJECT_STRUCT_* objHnd)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getArrayOrStringLength(objHnd);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _getBoundaries(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, uint* cILOffsets, uint** pILOffsets, BoundaryTypes* implicitBoundaries)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getBoundaries(ftn, ref *cILOffsets, ref *pILOffsets, implicitBoundaries);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _setBoundaries(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, uint cMap, OffsetMapping* pMap)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.setBoundaries(ftn, cMap, pMap);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getVars(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, uint* cVars, ILVarInfo** vars, bool* extendOthers)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getVars(ftn, ref *cVars, vars, ref *extendOthers);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _setVars(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, uint cVars, NativeVarInfo* vars)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.setVars(ftn, cVars, vars);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _reportRichMappings(IntPtr thisHandle, IntPtr* ppException, InlineTreeNode* inlineTreeNodes, uint numInlineTreeNodes, RichOffsetMapping* mappings, uint numMappings)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.reportRichMappings(inlineTreeNodes, numInlineTreeNodes, mappings, numMappings);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _reportAsyncDebugInfo(IntPtr thisHandle, IntPtr* ppException, AsyncInfo* asyncInfo, AsyncSuspensionPoint* suspensionPoints, AsyncContinuationVarInfo* vars, uint numVars)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.reportAsyncDebugInfo(asyncInfo, suspensionPoints, vars, numVars);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _reportMetadata(IntPtr thisHandle, IntPtr* ppException, byte* key, void* value, nuint length)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.reportMetadata(key, value, length);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void* _allocateArray(IntPtr thisHandle, IntPtr* ppException, nuint cBytes)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.allocateArray(cBytes);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _freeArray(IntPtr thisHandle, IntPtr* ppException, void* array)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.freeArray(array);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_ARG_LIST_STRUCT_* _getArgNext(IntPtr thisHandle, IntPtr* ppException, CORINFO_ARG_LIST_STRUCT_* args)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getArgNext(args);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoTypeWithMod _getArgType(IntPtr thisHandle, IntPtr* ppException, CORINFO_SIG_INFO* sig, CORINFO_ARG_LIST_STRUCT_* args, CORINFO_CLASS_STRUCT_** vcTypeRet)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getArgType(sig, args, vcTypeRet);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static int _getExactClasses(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* baseType, int maxExactClasses, CORINFO_CLASS_STRUCT_** exactClsRet)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getExactClasses(baseType, maxExactClasses, exactClsRet);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getArgClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_SIG_INFO* sig, CORINFO_ARG_LIST_STRUCT_* args)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getArgClass(sig, args);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoHFAElemType _getHFAType(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* hClass)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getHFAType(hClass);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _runWithErrorTrap(IntPtr thisHandle, IntPtr* ppException, void* function, void* parameter)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.runWithErrorTrap(function, parameter) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _runWithSPMIErrorTrap(IntPtr thisHandle, IntPtr* ppException, void* function, void* parameter)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.runWithSPMIErrorTrap(function, parameter) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _getEEInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_EE_INFO* pEEInfoOut)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getEEInfo(ref *pEEInfoOut);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getAsyncInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_ASYNC_INFO* pAsyncInfoOut)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getAsyncInfo(ref *pAsyncInfoOut);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_METHOD_STRUCT_* _getAwaitReturnCall(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_CONTEXT_STRUCT** contextHandle, CORINFO_LOOKUP* instArg)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getAwaitReturnCall(callerHandle, contextHandle, ref *instArg);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_METHOD_STRUCT_* _getAwaitAwaiterInContinuationCall(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_RESOLVED_TOKEN* pResolvedToken, byte isUnsafe, CORINFO_CONTEXT_STRUCT** contextHandle, CORINFO_LOOKUP* instArg)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getAwaitAwaiterInContinuationCall(callerHandle, ref *pResolvedToken, isUnsafe != 0, contextHandle, ref *instArg);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static mdToken _getMethodDefFromMethod(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* hMethod)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getMethodDefFromMethod(hMethod);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static nuint _printMethodName(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, byte* buffer, nuint bufferSize, nuint* pRequiredBufferSize)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.printMethodName(ftn, buffer, bufferSize, pRequiredBufferSize);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte* _getMethodNameFromMetadata(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, byte** className, byte** namespaceName, byte** enclosingClassNames, nuint maxEnclosingClassNames)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getMethodNameFromMetadata(ftn, className, namespaceName, enclosingClassNames, maxEnclosingClassNames);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getMethodHash(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getMethodHash(ftn);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _getSystemVAmd64PassStructInRegisterDescriptor(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* structHnd, SYSTEMV_AMD64_CORINFO_STRUCT_REG_PASSING_DESCRIPTOR* structPassInRegDescPtr)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getSystemVAmd64PassStructInRegisterDescriptor(structHnd, structPassInRegDescPtr) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _getSwiftLowering(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* structHnd, CORINFO_SWIFT_LOWERING* pLowering)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getSwiftLowering(structHnd, ref *pLowering);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getFpStructLowering(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* structHnd, CORINFO_FPSTRUCT_LOWERING* pLowering)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getFpStructLowering(structHnd, ref *pLowering);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoWasmType _getWasmLowering(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* structHnd)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getWasmLowering(structHnd);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getAddressAlignment(IntPtr thisHandle, IntPtr* ppException, void* address)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getAddressAlignment(address);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _getWasmWellKnownGlobals(IntPtr thisHandle, IntPtr* ppException, CORINFO_WASM_WELLKNOWN_GLOBALS* pWellKnownGlobalsOut)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getWasmWellKnownGlobals(ref *pWellKnownGlobalsOut);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getThreadTLSIndex(IntPtr thisHandle, IntPtr* ppException, void** ppIndirection)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getThreadTLSIndex(ref *ppIndirection);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static int* _getAddrOfCaptureThreadGlobal(IntPtr thisHandle, IntPtr* ppException, void** ppIndirection)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getAddrOfCaptureThreadGlobal(ref *ppIndirection);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _getHelperFtn(IntPtr thisHandle, IntPtr* ppException, CorInfoHelpFunc ftnNum, CORINFO_CONST_LOOKUP* pNativeEntrypoint, CORINFO_METHOD_STRUCT_** pMethod)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getHelperFtn(ftnNum, pNativeEntrypoint, pMethod);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getFunctionEntryPoint(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, CORINFO_CONST_LOOKUP* pResult, CORINFO_ACCESS_FLAGS accessFlags)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getFunctionEntryPoint(ftn, ref *pResult, accessFlags);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getFunctionFixedEntryPoint(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftn, byte isUnsafeFunctionPointer, CORINFO_CONST_LOOKUP* pResult)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getFunctionFixedEntryPoint(ftn, isUnsafeFunctionPointer != 0, ref *pResult);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_MODULE_STRUCT_* _embedModuleHandle(IntPtr thisHandle, IntPtr* ppException, CORINFO_MODULE_STRUCT_* handle, void** ppIndirection)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.embedModuleHandle(handle, ref *ppIndirection);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _embedClassHandle(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* handle, void** ppIndirection)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.embedClassHandle(handle, ref *ppIndirection);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_METHOD_STRUCT_* _embedMethodHandle(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* handle, void** ppIndirection)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.embedMethodHandle(handle, ref *ppIndirection);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_FIELD_STRUCT_* _embedFieldHandle(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* handle, void** ppIndirection)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.embedFieldHandle(handle, ref *ppIndirection);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _embedGenericHandle(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, byte fEmbedParent, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_GENERICHANDLE_RESULT* pResult)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.embedGenericHandle(ref *pResolvedToken, fEmbedParent != 0, callerHandle, ref *pResult);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getLocationOfThisType(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* context, CORINFO_LOOKUP_KIND* pLookupKind)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getLocationOfThisType(context, ref *pLookupKind);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getAddressOfPInvokeTarget(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* method, CORINFO_CONST_LOOKUP* pLookup)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getAddressOfPInvokeTarget(method, ref *pLookup);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void* _GetCookieForInterpreterCalliSig(IntPtr thisHandle, IntPtr* ppException, CORINFO_SIG_INFO* szMetaSig)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.GetCookieForInterpreterCalliSig(szMetaSig);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_JUST_MY_CODE_HANDLE_* _getJustMyCodeHandle(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* method, CORINFO_JUST_MY_CODE_HANDLE_** ppIndirection)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getJustMyCodeHandle(method, ref *ppIndirection);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _GetProfilingHandle(IntPtr thisHandle, IntPtr* ppException, bool* pbHookFunction, void** pProfilerHandle, bool* pbIndirectedHandles)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.GetProfilingHandle(ref *pbHookFunction, ref *pProfilerHandle, ref *pbIndirectedHandles);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _getCallInfo(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, CORINFO_RESOLVED_TOKEN* pConstrainedResolvedToken, CORINFO_METHOD_STRUCT_* callerHandle, CORINFO_CALLINFO_FLAGS flags, CORINFO_CALL_INFO* pResult)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.getCallInfo(ref *pResolvedToken, pConstrainedResolvedToken, callerHandle, flags, pResult);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static byte _getStaticFieldContent(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field, byte* buffer, int bufferSize, int valueOffset, byte ignoreMovableObjects)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getStaticFieldContent(field, buffer, bufferSize, valueOffset, ignoreMovableObjects != 0) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _getObjectContent(IntPtr thisHandle, IntPtr* ppException, CORINFO_OBJECT_STRUCT_* obj, byte* buffer, int bufferSize, int valueOffset)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getObjectContent(obj, buffer, bufferSize, valueOffset) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getStaticFieldCurrentClass(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field, byte* pIsSpeculative)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getStaticFieldCurrentClass(field, pIsSpeculative);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static IntPtr _getVarArgsHandle(IntPtr thisHandle, IntPtr* ppException, CORINFO_SIG_INFO* pSig, CORINFO_METHOD_STRUCT_* methHnd, void** ppIndirection)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getVarArgsHandle(pSig, methHnd, ref *ppIndirection);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static InfoAccessType _constructStringLiteral(IntPtr thisHandle, IntPtr* ppException, CORINFO_MODULE_STRUCT_* module, mdToken metaTok, void** ppValue)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.constructStringLiteral(module, metaTok, ref *ppValue);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static InfoAccessType _emptyStringLiteral(IntPtr thisHandle, IntPtr* ppException, void** ppValue)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.emptyStringLiteral(ref *ppValue);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getFieldThreadLocalStoreID(IntPtr thisHandle, IntPtr* ppException, CORINFO_FIELD_STRUCT_* field, void** ppIndirection)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getFieldThreadLocalStoreID(field, ref *ppIndirection);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_METHOD_STRUCT_* _GetDelegateCtor(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* methHnd, CORINFO_CLASS_STRUCT_* clsHnd, CORINFO_METHOD_STRUCT_* targetMethodHnd, DelegateCtorArgs* pCtorData)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.GetDelegateCtor(methHnd, clsHnd, targetMethodHnd, ref *pCtorData);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _MethodCompileComplete(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* methHnd)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.MethodCompileComplete(methHnd);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static byte _getTailCallHelpers(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* callToken, CORINFO_SIG_INFO* sig, CORINFO_GET_TAILCALL_HELPERS_FLAGS flags, CORINFO_TAILCALL_HELPERS* pResult)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getTailCallHelpers(ref *callToken, sig, flags, ref *pResult) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_CLASS_STRUCT_* _getContinuationType(IntPtr thisHandle, IntPtr* ppException, nuint dataSize, bool* objRefs, nuint objRefsSize)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getContinuationType(dataSize, ref *objRefs, objRefsSize);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_METHOD_STRUCT_* _getAsyncResumptionStub(IntPtr thisHandle, IntPtr* ppException, void** entryPoint)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getAsyncResumptionStub(ref *entryPoint);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _convertPInvokeCalliToCall(IntPtr thisHandle, IntPtr* ppException, CORINFO_RESOLVED_TOKEN* pResolvedToken, byte mustConvert)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.convertPInvokeCalliToCall(ref *pResolvedToken, mustConvert != 0) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static byte _notifyInstructionSetUsage(IntPtr thisHandle, IntPtr* ppException, InstructionSet instructionSet, byte supportEnabled, byte preserveNegativeDependency)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.notifyInstructionSetUsage(instructionSet, supportEnabled != 0, preserveNegativeDependency != 0) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _updateEntryPointForTailCall(IntPtr thisHandle, IntPtr* ppException, CORINFO_CONST_LOOKUP* entryPoint)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.updateEntryPointForTailCall(ref *entryPoint);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _allocMem(IntPtr thisHandle, IntPtr* ppException, AllocMemArgs* pArgs)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.allocMem(ref *pArgs);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _reserveUnwindInfo(IntPtr thisHandle, IntPtr* ppException, byte isFunclet, byte isColdCode, uint unwindSize)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.reserveUnwindInfo(isFunclet != 0, isColdCode != 0, unwindSize);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _allocUnwindInfo(IntPtr thisHandle, IntPtr* ppException, byte* pHotCode, byte* pColdCode, uint startOffset, uint endOffset, uint unwindSize, byte* pUnwindBlock, CorJitFuncKind funcKind)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.allocUnwindInfo(pHotCode, pColdCode, startOffset, endOffset, unwindSize, pUnwindBlock, funcKind);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void* _allocGCInfo(IntPtr thisHandle, IntPtr* ppException, nuint size)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.allocGCInfo(size);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _setEHcount(IntPtr thisHandle, IntPtr* ppException, uint cEH)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.setEHcount(cEH);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _setEHinfo(IntPtr thisHandle, IntPtr* ppException, uint EHnumber, CORINFO_EH_CLAUSE* clause)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.setEHinfo(EHnumber, ref *clause);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static byte _logMsg(IntPtr thisHandle, IntPtr* ppException, uint level, byte* fmt, IntPtr args)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.logMsg(level, fmt, args) ? (byte)1 : (byte)0;
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static int _doAssert(IntPtr thisHandle, IntPtr* ppException, byte* szFile, int iLine, byte* szExpr)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.doAssert(szFile, iLine, szExpr);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _reportFatalError(IntPtr thisHandle, IntPtr* ppException, CorJitResult result)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.reportFatalError(result);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static HRESULT _getPgoInstrumentationResults(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftnHnd, PgoInstrumentationSchema** pSchema, uint* pCountSchemaItems, byte** pInstrumentationData, PgoSource* pPgoSource, bool* pDynamicPgo)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getPgoInstrumentationResults(ftnHnd, ref *pSchema, ref *pCountSchemaItems, pInstrumentationData, ref *pPgoSource, ref *pDynamicPgo);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static HRESULT _allocPgoInstrumentationBySchema(IntPtr thisHandle, IntPtr* ppException, CORINFO_METHOD_STRUCT_* ftnHnd, PgoInstrumentationSchema* pSchema, uint countSchemaItems, byte** pInstrumentationData)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.allocPgoInstrumentationBySchema(ftnHnd, pSchema, countSchemaItems, pInstrumentationData);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static void _recordCallSite(IntPtr thisHandle, IntPtr* ppException, uint instrOffset, CORINFO_SIG_INFO* callSig, CORINFO_METHOD_STRUCT_* methodHandle)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.recordCallSite(instrOffset, callSig, methodHandle);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _recordWasmManagedCallSig(IntPtr thisHandle, IntPtr* ppException, CORINFO_SIG_INFO* callSig)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.recordWasmManagedCallSig(callSig);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static void _recordRelocation(IntPtr thisHandle, IntPtr* ppException, void* location, void* locationRW, void* target, CorInfoReloc fRelocType, int addlDelta)
        {
            var _this = GetThis(thisHandle);
            try
            {
                _this.recordRelocation(location, locationRW, target, fRelocType, addlDelta);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
            }
        }

        [UnmanagedCallersOnly]
        private static CorInfoReloc _getRelocTypeHint(IntPtr thisHandle, IntPtr* ppException, void* target)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getRelocTypeHint(target);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getExpectedTargetArchitecture(IntPtr thisHandle, IntPtr* ppException)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getExpectedTargetArchitecture();
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static uint _getJitFlags(IntPtr thisHandle, IntPtr* ppException, CORJIT_FLAGS* flags, uint sizeInBytes)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getJitFlags(ref *flags, sizeInBytes);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_WASM_TYPE_SYMBOL_STRUCT_* _getWasmTypeSymbol(IntPtr thisHandle, IntPtr* ppException, CorInfoWasmType* types, nuint typesSize)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getWasmTypeSymbol(types, typesSize);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

        [UnmanagedCallersOnly]
        private static CORINFO_METHOD_STRUCT_* _getSpecialCopyHelper(IntPtr thisHandle, IntPtr* ppException, CORINFO_CLASS_STRUCT_* type)
        {
            var _this = GetThis(thisHandle);
            try
            {
                return _this.getSpecialCopyHelper(type);
            }
            catch (Exception ex)
            {
                *ppException = _this.AllocException(ex);
                return default;
            }
        }

    }
}