From c16e49da67de276ef7d58956de511e4066bf5853 Mon Sep 17 00:00:00 2001 From: Zach Montoya Date: Mon, 28 Oct 2019 12:43:09 -0700 Subject: [PATCH] Update CoreCLR headers from dotnet/coreclr:release/3.0 (#524) Additionally, update il_rewriter.cpp to fix a Linux build break with the `_countof` definition. --- lib/coreclr/src/inc/CMakeLists.txt | 6 +- lib/coreclr/src/inc/CrstTypeTool.cs | 6 +- lib/coreclr/src/inc/CrstTypes.def | 152 +- lib/coreclr/src/inc/MSCOREE.IDL | 786 +-- lib/coreclr/src/inc/OpCodeGen.pl | 8 +- lib/coreclr/src/inc/appxutil.h | 1 - lib/coreclr/src/inc/arraylist.h | 9 - lib/coreclr/src/inc/check.h | 10 +- lib/coreclr/src/inc/clr_std/string | 16 +- lib/coreclr/src/inc/clrconfigvalues.h | 114 +- lib/coreclr/src/inc/clrhost.h | 253 +- lib/coreclr/src/inc/clrnt.h | 4 +- lib/coreclr/src/inc/clrprivbinderutil.h | 42 +- lib/coreclr/src/inc/clrprivbinding.idl | 41 +- lib/coreclr/src/inc/clrtypes.h | 11 - lib/coreclr/src/inc/configuration.h | 6 + lib/coreclr/src/inc/contract.h | 254 +- lib/coreclr/src/inc/contract.inl | 110 +- lib/coreclr/src/inc/cor.h | 88 +- lib/coreclr/src/inc/corbbtprof.h | 6 +- lib/coreclr/src/inc/corcompile.h | 52 +- lib/coreclr/src/inc/cordebug.idl | 479 +- lib/coreclr/src/inc/cordebuginfo.h | 198 +- lib/coreclr/src/inc/coregen.h | 2 + lib/coreclr/src/inc/corerror.xml | 6254 +++-------------- lib/coreclr/src/inc/corexcep.h | 6 - lib/coreclr/src/inc/corhdr.h | 137 +- lib/coreclr/src/inc/corhlprpriv.h | 6 +- lib/coreclr/src/inc/corhost.h | 207 +- lib/coreclr/src/inc/corinfo.h | 144 +- lib/coreclr/src/inc/corjit.h | 48 +- lib/coreclr/src/inc/corjithost.h | 26 +- lib/coreclr/src/inc/corpriv.h | 78 +- lib/coreclr/src/inc/corprof.idl | 103 +- lib/coreclr/src/inc/cortpoolhdr.h | 50 - lib/coreclr/src/inc/cortypeinfo.h | 8 + lib/coreclr/src/inc/crosscomp.h | 17 +- lib/coreclr/src/inc/crsttypes.h | 641 +- lib/coreclr/src/inc/crtwrap.h | 10 +- lib/coreclr/src/inc/daccess.h | 16 +- lib/coreclr/src/inc/dacprivate.h | 38 +- lib/coreclr/src/inc/dacvars.h | 21 +- lib/coreclr/src/inc/debugmacros.h | 3 +- lib/coreclr/src/inc/debugreturn.h | 4 - lib/coreclr/src/inc/declsec.h | 255 - lib/coreclr/src/inc/entrypoints.h | 53 +- lib/coreclr/src/inc/eventtracebase.h | 483 +- lib/coreclr/src/inc/ex.h | 93 +- lib/coreclr/src/inc/fixuppointer.h | 67 +- lib/coreclr/src/inc/formattype.cpp | 8 +- lib/coreclr/src/inc/fusionsetup.h | 63 - lib/coreclr/src/inc/gcdecoder.cpp | 5 + lib/coreclr/src/inc/gchost.idl | 55 - lib/coreclr/src/inc/gcinfo.h | 5 + lib/coreclr/src/inc/gcinfodecoder.h | 10 +- lib/coreclr/src/inc/gcinfodumper.h | 5 + lib/coreclr/src/inc/gcinfoencoder.h | 1 - lib/coreclr/src/inc/gcinfotypes.h | 28 +- lib/coreclr/src/inc/genericstackprobe.h | 610 -- lib/coreclr/src/inc/genericstackprobe.inl | 15 - lib/coreclr/src/inc/genheaders.cs | 13 +- lib/coreclr/src/inc/holder.h | 137 +- lib/coreclr/src/inc/iappdomainsetup.h | 612 -- lib/coreclr/src/inc/iceefilegen.h | 5 +- lib/coreclr/src/inc/il_kywd.h | 3 +- lib/coreclr/src/inc/ipcfunccall.h | 117 - lib/coreclr/src/inc/ipcmanagerinterface.h | 204 - lib/coreclr/src/inc/iterator.h | 8 +- lib/coreclr/src/inc/jithelpers.h | 25 +- lib/coreclr/src/inc/jithost.h | 28 - .../src/inc/legacyactivationshimutil.h | 1116 --- lib/coreclr/src/inc/loaderheap.h | 4 +- lib/coreclr/src/inc/loglf.h | 2 +- lib/coreclr/src/inc/metadatatracker.h | 15 +- lib/coreclr/src/inc/metahost.idl | 596 -- lib/coreclr/src/inc/mscoreepriv.h | 21 - lib/coreclr/src/inc/mscorsvc.idl | 2 +- lib/coreclr/src/inc/ostype.h | 1 - lib/coreclr/src/inc/outstring.h | 2 +- lib/coreclr/src/inc/palclr.h | 59 +- lib/coreclr/src/inc/palclr_win.h | 17 +- lib/coreclr/src/inc/pedecoder.h | 27 +- lib/coreclr/src/inc/pedecoder.inl | 28 - lib/coreclr/src/inc/peinformation.h | 2 +- lib/coreclr/src/inc/perfcounterdefs.h | 495 -- lib/coreclr/src/inc/perfcounterdefs.inl | 89 - lib/coreclr/src/inc/perfcounters.h | 122 - lib/coreclr/src/inc/predeftlsslot.h | 16 +- lib/coreclr/src/inc/profilepriv.h | 6 + lib/coreclr/src/inc/profilepriv.inl | 89 +- lib/coreclr/src/inc/readytorun.h | 23 +- lib/coreclr/src/inc/readytorunhelpers.h | 14 +- lib/coreclr/src/inc/regdisp.h | 35 +- lib/coreclr/src/inc/registrywrapper.h | 2 +- lib/coreclr/src/inc/safemath.h | 16 +- lib/coreclr/src/inc/sarray.inl | 1 - lib/coreclr/src/inc/sbuffer.inl | 13 - lib/coreclr/src/inc/securitywrapper.h | 14 +- lib/coreclr/src/inc/shash.h | 6 +- lib/coreclr/src/inc/shash.inl | 12 +- lib/coreclr/src/inc/slist.h | 10 +- lib/coreclr/src/inc/sospriv.idl | 10 + lib/coreclr/src/inc/sstring.h | 59 +- lib/coreclr/src/inc/sstring.inl | 57 +- lib/coreclr/src/inc/staticcontract.h | 79 +- lib/coreclr/src/inc/stdmacros.h | 10 +- lib/coreclr/src/inc/stgpool.h | 36 + lib/coreclr/src/inc/stresslog.h | 11 +- lib/coreclr/src/inc/switches.h | 28 - lib/coreclr/src/inc/testhook.h | 159 - lib/coreclr/src/inc/tls.h | 5 +- lib/coreclr/src/inc/unsafe.h | 102 - lib/coreclr/src/inc/utilcode.h | 347 +- lib/coreclr/src/inc/volatile.h | 26 - lib/coreclr/src/inc/vptr_list.h | 2 - lib/coreclr/src/inc/warningcontrol.h | 65 +- lib/coreclr/src/inc/winrt/paraminstanceapi.h | 4 +- lib/coreclr/src/inc/winwrap.h | 23 - lib/coreclr/src/inc/xcordebug.idl | 29 - lib/coreclr/src/inc/zapper.h | 9 +- lib/coreclr/src/pal/inc/mbusafecrt.h | 10 +- lib/coreclr/src/pal/inc/pal.h | 890 +-- lib/coreclr/src/pal/inc/pal_mstypes.h | 13 +- lib/coreclr/src/pal/inc/rt/assert.h | 13 - lib/coreclr/src/pal/inc/rt/common.ver | 33 - lib/coreclr/src/pal/inc/rt/cpp/ccombstr.h | 263 - lib/coreclr/src/pal/inc/rt/cpp/cstring.h | 77 - lib/coreclr/src/pal/inc/rt/emmintrin.h | 5 - lib/coreclr/src/pal/inc/rt/guiddef.h | 2 +- lib/coreclr/src/pal/inc/rt/palrt.h | 121 +- lib/coreclr/src/pal/inc/rt/safecrt.h | 4 + lib/coreclr/src/pal/inc/rt/sal.h | 8 +- lib/coreclr/src/pal/inc/rt/specstrings.h | 3 - lib/coreclr/src/pal/inc/rt/vsassert.h | 10 +- lib/coreclr/src/pal/inc/rt/xmmintrin.h | 116 - lib/coreclr/src/pal/inc/unixasmmacros.inc | 6 +- .../src/pal/inc/unixasmmacrosarm64.inc | 57 +- .../src/pal/prebuilt/inc/clrprivbinding.h | 77 +- lib/coreclr/src/pal/prebuilt/inc/cordebug.h | 514 +- lib/coreclr/src/pal/prebuilt/inc/corerror.h | 853 +-- lib/coreclr/src/pal/prebuilt/inc/corprof.h | 4631 +++++++----- lib/coreclr/src/pal/prebuilt/inc/fxver.h | 12 +- lib/coreclr/src/pal/prebuilt/inc/fxver.rc | 6 - lib/coreclr/src/pal/prebuilt/inc/gchost.h | 166 - lib/coreclr/src/pal/prebuilt/inc/metahost.h | 1066 +-- lib/coreclr/src/pal/prebuilt/inc/mscoree.h | 2983 ++------ lib/coreclr/src/pal/prebuilt/inc/sospriv.h | 80 + lib/coreclr/src/pal/prebuilt/inc/xcordebug.h | 21 +- .../il_rewriter.cpp | 2 +- 149 files changed, 7477 insertions(+), 21860 deletions(-) delete mode 100644 lib/coreclr/src/inc/cortpoolhdr.h delete mode 100644 lib/coreclr/src/inc/declsec.h delete mode 100644 lib/coreclr/src/inc/fusionsetup.h delete mode 100644 lib/coreclr/src/inc/gchost.idl delete mode 100644 lib/coreclr/src/inc/genericstackprobe.h delete mode 100644 lib/coreclr/src/inc/genericstackprobe.inl delete mode 100644 lib/coreclr/src/inc/iappdomainsetup.h delete mode 100644 lib/coreclr/src/inc/ipcfunccall.h delete mode 100644 lib/coreclr/src/inc/ipcmanagerinterface.h delete mode 100644 lib/coreclr/src/inc/jithost.h delete mode 100644 lib/coreclr/src/inc/legacyactivationshimutil.h delete mode 100644 lib/coreclr/src/inc/mscoreepriv.h delete mode 100644 lib/coreclr/src/inc/perfcounterdefs.h delete mode 100644 lib/coreclr/src/inc/perfcounterdefs.inl delete mode 100644 lib/coreclr/src/inc/perfcounters.h delete mode 100644 lib/coreclr/src/inc/testhook.h delete mode 100644 lib/coreclr/src/inc/unsafe.h delete mode 100644 lib/coreclr/src/pal/inc/rt/assert.h delete mode 100644 lib/coreclr/src/pal/inc/rt/common.ver delete mode 100644 lib/coreclr/src/pal/inc/rt/cpp/ccombstr.h delete mode 100644 lib/coreclr/src/pal/inc/rt/cpp/cstring.h delete mode 100644 lib/coreclr/src/pal/inc/rt/emmintrin.h delete mode 100644 lib/coreclr/src/pal/inc/rt/xmmintrin.h delete mode 100644 lib/coreclr/src/pal/prebuilt/inc/gchost.h diff --git a/lib/coreclr/src/inc/CMakeLists.txt b/lib/coreclr/src/inc/CMakeLists.txt index c109c2f3a7ce..c38d59587af2 100644 --- a/lib/coreclr/src/inc/CMakeLists.txt +++ b/lib/coreclr/src/inc/CMakeLists.txt @@ -6,7 +6,6 @@ set( CORGUIDS_IDL_SOURCES xclrdata.idl corprof.idl corpub.idl - gchost.idl mscorsvc.idl clrprivappxhosting.idl clrprivbinding.idl @@ -50,7 +49,12 @@ else() # The prebuilt files contain extra '!_MIDL_USE_GUIDDEF_' after the #endif, but not in the comment. # In order to not to have to modify these prebuilt files, we disable the extra tokens warning. +if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_compile_options(-Wno-extra-tokens) +elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") +add_compile_options(-Wno-endif-labels) +endif() + add_compile_options(-D_MIDL_USE_GUIDDEF_) foreach(IDL_SOURCE IN LISTS CORGUIDS_IDL_SOURCES) get_filename_component(IDLNAME ${IDL_SOURCE} NAME_WE) diff --git a/lib/coreclr/src/inc/CrstTypeTool.cs b/lib/coreclr/src/inc/CrstTypeTool.cs index d6d90e427bfc..0310ec3fb1ce 100644 --- a/lib/coreclr/src/inc/CrstTypeTool.cs +++ b/lib/coreclr/src/inc/CrstTypeTool.cs @@ -173,7 +173,11 @@ void WriteHeaderFile(string fileName) writer.WriteLine("int g_rgCrstLevelMap[] ="); writer.WriteLine("{"); foreach (CrstType crst in crsts) - writer.WriteLine(" " + crst.Level + ",\t\t\t// Crst" + crst.Name); + { + string crstLine = " " + crst.Level + ","; + crstLine = crstLine + new string(' ', 16 - crstLine.Length); + writer.WriteLine(crstLine + "// Crst" + crst.Name); + } writer.WriteLine("};"); writer.WriteLine(); diff --git a/lib/coreclr/src/inc/CrstTypes.def b/lib/coreclr/src/inc/CrstTypes.def index 65810599914f..4dce8f243ade 100644 --- a/lib/coreclr/src/inc/CrstTypes.def +++ b/lib/coreclr/src/inc/CrstTypes.def @@ -69,14 +69,7 @@ // running our test suites). Feel free to add meaningful comments to existing rules if you feel they can // usefully clarify the reasons for particular dependencies. // -// CrstTypeTool is a csScript file at file:..\..\bin\CrstTypeTool.csScript. Simply typing "CrstTypeTool" from a -// clrenv command window prompt should rebuild file:CrstTypes.h from the current CrstTypes.def (again, -// remember to check out CrstTypes.h first). -// Note: If you cannot run the script from command line, because of this error: -// Script language type is unsupported. -// Use /? for more help on usage. -// Or because .csscript extension is not associated with anything on your machine, -// Then use "csc.exe CrstTypeTool.csscript" from ClrEnv environment and run the resulting executable. +// See CrstTypeTool.cs for how to consume this file. // // Each Crst type definition is currently in alphabetical order. Please maintain this convention. // @@ -86,7 +79,7 @@ Crst AllowedFiles End Crst AppDomainCache - AcquiredBefore FusionBindContext FusionLoadContext LoaderHeap UniqueStack UnresolvedClassLock + AcquiredBefore UniqueStack UnresolvedClassLock End Crst AppDomainHandleTable @@ -112,7 +105,7 @@ Crst AssemblyDependencyGraph End Crst AvailableParamTypes - AcquiredBefore FusionBindContext FusionLoadContext IbcProfile LoaderHeap + AcquiredBefore IbcProfile LoaderHeap End Crst BaseDomain @@ -160,7 +153,7 @@ End Crst Contexts AcquiredBefore AvailableParamTypes Cer ClassInit DeadlockDetection DomainLocalBlock FuncPtrStubs GlobalStrLiteralMap Jit LoaderHeap ModuleLookupTable RWLock SigConvert SingleUseLock - StubUnwindInfoHeapSegments SyncBlockCache TypeIDMap UnresolvedClassLock FusionClosure + StubUnwindInfoHeapSegments SyncBlockCache TypeIDMap UnresolvedClassLock End Crst CoreCLRBinderLog @@ -207,7 +200,7 @@ End // It's the largest of the debugger locks. Crst DebuggerMutex AcquiredBefore AvailableParamTypes ConnectionNameTable - DynamicIL LoaderHeap ModuleLookupTable ThreadStore + DynamicIL LoaderHeap ModuleLookupTable // Disabled per bug 581892 // AcquiredBefore DebuggerController @@ -279,71 +272,9 @@ Crst FuncPtrStubs End Crst FusionAppCtx - AcquiredBefore FusionPolicyConfigPool FusionSingleUse FusionAssemblyDownload -End - -Crst FusionAssemblyDownload - AcquiredBefore FusionDownload UniqueStack -End - -Crst FusionBindResult -End - -Crst FusionClb -End - -Crst FusionClosure - AcquiredBefore FusionBindContext FusionLoadContext FusionAppCtx FusionClosureGraph DomainLocalBlock ModuleFixup -End - -Crst FusionClosureGraph - AcquiredBefore FusionAppCtx FusionBindContext FusionLoadContext -End - -Crst FusionConfigSettings -End - -Crst FusionDownload -End - -Crst FusionLoadContext - AcquiredBefore PEImage -End - -Crst FusionBindContext - AcquiredBefore PEImage -End - -Crst FusionLog - AcquiredBefore IbcProfile UniqueStack -End - -Crst FusionWarningLog - AcquiredBefore FusionBindContext FusionLoadContext FusionLog -End - -Crst FusionNgenIndex - AcquiredBefore SystemDomainDelayedUnloadList -End - -Crst FusionNgenIndexPool - AcquiredBefore SystemDomainDelayedUnloadList -End - -Crst FusionPcyCache -End - -Crst FusionPolicyConfigPool - AcquiredBefore UniqueStack -End - -Crst FusionSingleUse AcquiredBefore PEImage End -Crst FusionIsoLibInit -End - Crst NativeBinderInit Unordered End @@ -353,7 +284,7 @@ Crst NativeImageCache End Crst GCCover - AcquiredBefore LoaderHeap + AcquiredBefore LoaderHeap ReJITDomainTable End Crst GCMemoryPressure @@ -389,7 +320,7 @@ Crst ILStubGen End Crst InstMethodHashTable - AcquiredBefore FusionBindContext FusionLoadContext LoaderHeap UniqueStack JumpStubCache + AcquiredBefore LoaderHeap UniqueStack JumpStubCache End Crst InterfaceVTableMap @@ -430,8 +361,8 @@ End Crst JumpStubCache AcquiredBefore ExecuteManRangeLock LoaderHeap SingleUseLock - AcquiredAfter AppDomainCache ExecuteManLock FusionAssemblyDownload FusionNgenIndex FusionNgenIndexPool - ILStubGen SharedBaseDomain ThreadpoolTimerQueue ThreadpoolWaitThreads + AcquiredAfter AppDomainCache ExecuteManLock + ILStubGen ThreadpoolTimerQueue ThreadpoolWaitThreads TPMethodTable TypeIDMap BaseDomain AssemblyLoader End @@ -502,17 +433,10 @@ End Crst PatchEntryPoint End -Crst PEFileSecurityManager -End - Crst PEImage AcquiredBefore UniqueStack End -Crst ILFingerprintCache - AcquiredBefore PEImage -End - Crst PEImagePDBStream End @@ -520,12 +444,10 @@ Crst PendingTypeLoadEntry AcquiredBefore AppDomainCache AppDomainHandleTable AssemblyLoader AvailableClass AvailableParamTypes BaseDomain ClassInit DeadlockDetection DebuggerController DebuggerJitInfo DebuggerMutex DomainLocalBlock DynLinkZapItems Exception ExecuteManRangeLock FuncPtrStubs - FusionAppCtx FusionAssemblyDownload FusionBindResult FusionClosure FusionDownload - FusionBindContext FusionLoadContext FusionNgenIndex FusionNgenIndexPool FusionPcyCache - FusionPolicyConfigPool FusionSingleUse GlobalStrLiteralMap HandleTable IbcProfile + FusionAppCtx GlobalStrLiteralMap HandleTable IbcProfile IJWFixupData IJWHash ISymUnmanagedReader Jit JumpStubCache LoaderHeap ModIntPairList Module ModuleLookupTable PEImage SecurityStackwalkCache SharedAssemblyCreate - SharedBaseDomain SigConvert SingleUseLock StubDispatchCache StubUnwindInfoHeapSegments + SigConvert SingleUseLock StubDispatchCache StubUnwindInfoHeapSegments SyncBlockCache SystemDomain ThreadIdDispenser ThreadStore TypeIDMap UnresolvedClassLock SameLevelAs PendingTypeLoadEntry End @@ -567,28 +489,17 @@ Crst Reflection AcquiredBefore LoaderHeap UnresolvedClassLock End -// Used to synchronize all rejit information stored in a given AppDomain. One of these -// crsts exist per domain (except the SharedDomain--see below) +// Used to synchronize all rejit information stored in a given AppDomain. Crst ReJITDomainTable - AcquiredBefore LoaderHeap SingleUseLock DeadlockDetection JumpStubCache DebuggerController - AcquiredAfter ReJITGlobalRequest ThreadStore GlobalStrLiteralMap SystemDomain DebuggerMutex -End - -// Same as ReJITDomainTable, but this is for the SharedDomain's ReJitManager. Only -// reason we have a special type for the SharedDomain's ReJitManager is so that we can -// explicitly level this guy differently from ReJITDomainTable, so that both the -// SharedDomain's ReJitManager table lock AND one non-SharedDomain's ReJitManager table -// lock may be held simultaneously. This is useful during ETW rundown. -Crst ReJITSharedDomainTable - AcquiredBefore ReJITDomainTable - AcquiredAfter ReJITGlobalRequest ThreadStore GlobalStrLiteralMap SystemDomain DebuggerMutex + AcquiredBefore LoaderHeap SingleUseLock DeadlockDetection JumpStubCache DebuggerController FuncPtrStubs + AcquiredAfter ReJITGlobalRequest ThreadStore GlobalStrLiteralMap SystemDomain DebuggerMutex MethodDescBackpatchInfoTracker End // Used to synchronize all global requests (which may span multiple AppDomains) which add // new functions to rejit tables, or request Reverts on existing functions in the rejit // tables. One of these crsts exist per runtime. Crst ReJITGlobalRequest - AcquiredBefore ThreadStore ReJITSharedDomainTable ReJITDomainTable SystemDomain + AcquiredBefore ThreadStore ReJITDomainTable SystemDomain End // ETW infrastructure uses this crst to protect a hash table of TypeHandles which is @@ -622,13 +533,6 @@ End Crst SaveModuleProfileData End -Crst SecurityPolicyCache -End - -Crst SecurityPolicyInit - AcquiredBefore SecurityPolicyCache -End - Crst SecurityStackwalkCache End @@ -636,10 +540,6 @@ Crst SharedAssemblyCreate AcquiredBefore DeadlockDetection UniqueStack End -Crst SharedBaseDomain - AcquiredBefore UniqueStack -End - Crst SigConvert AcquiredBefore LoaderHeap End @@ -682,10 +582,11 @@ Crst SyncHashLock End Crst SystemBaseDomain + AcquiredBefore LoaderHeap UniqueStack End Crst SystemDomain - AcquiredBefore DebuggerMutex HandleTable IbcProfile SaveModuleProfileData SecurityPolicyCache + AcquiredBefore DebuggerMutex HandleTable IbcProfile SaveModuleProfileData ThreadIdDispenser ThreadStore End @@ -719,7 +620,7 @@ Crst ThreadStore DebuggerHeapLock DebuggerJitInfo DynamicIL ExecuteManRangeLock HandleTable IbcProfile JitGenericHandleCache JumpStubCache LoaderHeap ModuleLookupTable ProfilingAPIStatus ProfilerGCRefDataFreeList RWLock SingleUseLock SyncBlockCache SystemDomainDelayedUnloadList - ThreadIdDispenser ThreadStaticDataHashTable + ThreadIdDispenser ThreadStaticDataHashTable DebuggerMutex End Crst TPMethodTable @@ -781,7 +682,12 @@ Crst InlineTrackingMap AcquiredBefore IbcProfile End +Crst JitInlineTrackingMap + AcquiredBefore ReJITDomainTable ThreadStore LoaderAllocator +End + Crst EventPipe + AcquiredAfter PendingTypeLoadEntry AcquiredBefore ThreadIdDispenser ThreadStore DomainLocalBlock InstMethodHashTable End @@ -791,3 +697,15 @@ End Crst ReadyToRunEntryPointToMethodDescMap AcquiredBefore ExecuteManRangeLock UniqueStack End + +Crst TieredCompilation + AcquiredBefore ThreadpoolTimerQueue +End + +Crst COMCallWrapper +End + +Crst MethodDescBackpatchInfoTracker + AcquiredBefore FuncPtrStubs ThreadStore SystemDomain + AcquiredAfter ReJITGlobalRequest +End diff --git a/lib/coreclr/src/inc/MSCOREE.IDL b/lib/coreclr/src/inc/MSCOREE.IDL index e23e847153aa..ce368f3f80a6 100644 --- a/lib/coreclr/src/inc/MSCOREE.IDL +++ b/lib/coreclr/src/inc/MSCOREE.IDL @@ -19,56 +19,18 @@ cpp_quote("") // Interface descriptions // import "unknwn.idl"; -#if defined(FEATURE_WINDOWSPHONE) -import "gchost.idl"; -#endif - -#include "product_version.h" cpp_quote("struct IActivationFactory;") interface IActivationFactory; -// CLSID TypeNameFactory : uuid{B81FF171-20F3-11d2-8DCC-00A0C9B00525} -cpp_quote("EXTERN_GUID(CLSID_TypeNameFactory, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x25);") - +cpp_quote("struct IHostControl;") +interface IHostControl; -#ifdef FEATURE_COMINTEROP -// CLSID ComCallUnmarshal -cpp_quote("EXTERN_GUID(CLSID_ComCallUnmarshal, 0x3F281000,0xE95A,0x11d2,0x88,0x6B,0x00,0xC0,0x4F,0x86,0x9F,0x04);") +cpp_quote("struct ICLRControl;") +interface ICLRControl; // CLSID ComCallUnmarshal2 cpp_quote("EXTERN_GUID(CLSID_ComCallUnmarshalV4, 0x45fb4600,0xe6e8,0x4928,0xb2,0x5e,0x50,0x47,0x6f,0xf7,0x94,0x25);") -#endif // FEATURE_COMINTEROP - - -#ifdef FEATURE_COMINTEROP -// IID IManagedObject : uuid(C3FCC19E-A970-11d2-8B5A-00A0C9B7C9C4) -cpp_quote("EXTERN_GUID(IID_IManagedObject, 0xc3fcc19e, 0xa970, 0x11d2, 0x8b, 0x5a, 0x00, 0xa0, 0xc9, 0xb7, 0xc9, 0xc4);") -#endif // FEATURE_COMINTEROP - - -#ifdef FEATURE_APPDOMAIN_RESOURCE_MONITORING -// IID ICLRAppDomainResourceMonitor: uuid(C62DE18C-2E23-4AEA-8423-B40C1FC59EAE) -cpp_quote("EXTERN_GUID(IID_ICLRAppDomainResourceMonitor, 0XC62DE18C, 0X2E23, 0X4AEA, 0X84, 0X23, 0XB4, 0X0C, 0X1F, 0XC5, 0X9E, 0XAE);") -#endif //FEATURE_APPDOMAIN_RESOURCE_MONITORING - -// {7D290010-D781-45da-A6F8-AA5D711A730E} -cpp_quote("EXTERN_GUID(IID_ICLRPolicyManager, 0x7D290010, 0xD781, 0x45da, 0xA6, 0xF8, 0xAA, 0x5D, 0x71, 0x1A, 0x73, 0x0E);") - -#if defined (FEATURE_WINDOWSPHONE) -// IID_ICLRGCManager : uuid(54D9007E-A8E2-4885-B7BF-F998DEEE4F2A) -cpp_quote("EXTERN_GUID(IID_ICLRGCManager, 0x54D9007E, 0xA8E2, 0x4885, 0xB7, 0xBF, 0xF9, 0x98, 0xDE, 0xEE, 0x4F, 0x2A);") -// IID_ICLRGCManager2 : uuid(0603B793-A97A-4712-9CB4-0CD1C74C0F7C) -cpp_quote("EXTERN_GUID(IID_ICLRGCManager2, 0x0603B793, 0xA97A, 0x4712, 0x9C, 0xB4, 0x0C, 0xD1, 0xC7, 0x4C, 0x0F, 0x7C);") -// IID_ICLRErrorReportingManager : uuid(980D2F1A-BF79-4c08-812A-BB9778928F78) -cpp_quote("EXTERN_GUID(IID_ICLRErrorReportingManager, 0x980d2f1a, 0xbf79, 0x4c08, 0x81, 0x2a, 0xbb, 0x97, 0x78, 0x92, 0x8f, 0x78);") -#endif // FEATURE_WINDOWSPHONE - -#ifdef FEATURE_WINDOWSPHONE -// IID_ICLRErrorReportingManager2 : uuid(C68F63B1-4D8B-4E0B-9564-9D2EFE2FA18C) -cpp_quote("EXTERN_GUID(IID_ICLRErrorReportingManager2, 0xc68f63b1, 0x4d8b, 0x4e0b, 0x95, 0x64, 0x9d, 0x2e, 0xfe, 0x2f, 0xa1, 0x8c);") -#endif // FEATURE_WINDOWSPHONE - // IID ICLRRuntimeHost: uuid(90F1A06C-7712-4762-86B5-7A5EBA6BDB02) cpp_quote("EXTERN_GUID(IID_ICLRRuntimeHost, 0x90F1A06C, 0x7712, 0x4762, 0x86, 0xB5, 0x7A, 0x5E, 0xBA, 0x6B, 0xDB, 0x02);") @@ -79,53 +41,8 @@ cpp_quote("EXTERN_GUID(IID_ICLRRuntimeHost2, 0x712AB73F, 0x2C22, 0x4807, 0xAD, 0 // IID ICLRRuntimeHost4: uuid(64F6D366-D7C2-4F1F-B4B2-E8160CAC43AF) cpp_quote("EXTERN_GUID(IID_ICLRRuntimeHost4, 0x64F6D366, 0xD7C2, 0x4F1F, 0xB4, 0xB2, 0xE8, 0x16, 0x0C, 0xAC, 0x43, 0xAF);") -// IID IID_ICLRExecutionManager: uuid(1000A3E7-B420-4620-AE30-FB19B587AD1D) -cpp_quote("EXTERN_GUID(IID_ICLRExecutionManager, 0x1000A3E7, 0xB420, 0x4620, 0xAE, 0x30, 0xFB, 0x19, 0xB5, 0x87, 0xAD, 0x1D);") - - -// IID ITypeName : uuid{B81FF171-20F3-11d2-8DCC-00A0C9B00522} -cpp_quote("EXTERN_GUID(IID_ITypeName, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x22);") - - -// IID ITypeNameBuilder : uuid{B81FF171-20F3-11d2-8DCC-00A0C9B00523} -cpp_quote("EXTERN_GUID(IID_ITypeNameBuilder, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x23);") - -// IID ITypeNameFactory : uuid{B81FF171-20F3-11d2-8DCC-00A0C9B00521} -cpp_quote("EXTERN_GUID(IID_ITypeNameFactory, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x21);") - -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetCORSystemDirectory(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbuffer, DWORD cchBuffer, DWORD* dwLength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetCORVersion(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbBuffer, DWORD cchBuffer, DWORD* dwLength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetFileVersion(LPCWSTR szFilename, _Out_writes_to_opt_(cchBuffer, *dwLength) LPWSTR szBuffer, DWORD cchBuffer, DWORD* dwLength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetCORRequiredVersion(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbuffer, DWORD cchBuffer, DWORD* dwLength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetRequestedRuntimeInfo(LPCWSTR pExe, LPCWSTR pwszVersion, LPCWSTR pConfigurationFile, DWORD startupFlags, DWORD runtimeInfoFlags, _Out_writes_opt_(dwDirectory) LPWSTR pDirectory, DWORD dwDirectory, _Out_opt_ DWORD *dwDirectoryLength, _Out_writes_opt_(cchBuffer) LPWSTR pVersion, DWORD cchBuffer, _Out_opt_ DWORD* dwlength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetRequestedRuntimeVersion(_In_ LPWSTR pExe, _Out_writes_to_(cchBuffer, *dwLength) LPWSTR pVersion, DWORD cchBuffer, _Out_ DWORD* dwLength);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CorBindToRuntimeHost(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, LPCWSTR pwszHostConfigFile, VOID* pReserved, DWORD startupFlags, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CorBindToRuntimeEx(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, DWORD startupFlags, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CorBindToRuntimeByCfg(IStream* pCfgStream, DWORD reserved, DWORD startupFlags, REFCLSID rclsid,REFIID riid, LPVOID FAR* ppv);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CorBindToRuntime(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CorBindToCurrentRuntime(LPCWSTR pwszFileName, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI ClrCreateManagedInstance(LPCWSTR pTypeName, REFIID riid, void **ppObject);") -#pragma midl_echo("DECLARE_DEPRECATED void STDMETHODCALLTYPE CorMarkThreadInThreadPool();") -#pragma midl_echo("DEPRECATED_CLR_STDAPI RunDll32ShimW(HWND hwnd, HINSTANCE hinst, LPCWSTR lpszCmdLine, int nCmdShow);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI LoadLibraryShim(LPCWSTR szDllName, LPCWSTR szVersion, LPVOID pvReserved, HMODULE *phModDll);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI CallFunctionShim(LPCWSTR szDllName, LPCSTR szFunctionName, LPVOID lpvArgument1, LPVOID lpvArgument2, LPCWSTR szVersion, LPVOID pvReserved);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI GetRealProcAddress(LPCSTR pwszProcName, VOID** ppv);") -#pragma midl_echo("DECLARE_DEPRECATED void STDMETHODCALLTYPE CorExitProcess(int exitCode);") -#pragma midl_echo("DEPRECATED_CLR_STDAPI LoadStringRC(UINT iResouceID, _Out_writes_z_(iMax) LPWSTR szBuffer, int iMax, int bQuiet);") -#ifdef FEATURE_USE_LCID -#pragma midl_echo("DEPRECATED_CLR_STDAPI LoadStringRCEx(LCID lcid, UINT iResouceID, _Out_writes_z_(iMax) LPWSTR szBuffer, int iMax, int bQuiet, int *pcwchUsed);") -#endif - #pragma midl_echo("typedef HRESULT (STDAPICALLTYPE *FnGetCLRRuntimeHost)(REFIID riid, IUnknown **pUnk);") -typedef enum { - HOST_TYPE_DEFAULT = 0x0, - HOST_TYPE_APPLAUNCH = 0x1, - HOST_TYPE_CORFLAG = 0x2 -} HOST_TYPE; - -#pragma midl_echo("STDAPI CorLaunchApplication(HOST_TYPE dwClickOnceHost, LPCWSTR pwzAppFullName, DWORD dwManifestPaths, LPCWSTR* ppwzManifestPaths, DWORD dwActivationData, LPCWSTR* ppwzActivationData, LPPROCESS_INFORMATION lpProcessInformation);") - typedef HRESULT (__stdcall *FExecuteInAppDomainCallback) (void* cookie); // By default GC is concurrent and only the base system library is loaded into the domain-neutral area. @@ -157,26 +74,6 @@ typedef enum { STARTUP_DISABLE_RANDOMIZED_STRING_HASHING = 0x2000000 // Disable the randomized string hashing (not supported) } STARTUP_FLAGS; -typedef enum { - CLSID_RESOLUTION_DEFAULT = 0x0, // Standard behavior that interop uses - CLSID_RESOLUTION_REGISTERED = 0x1, // Searches the registry and applies shim policy -} CLSID_RESOLUTION_FLAGS; - -typedef enum -{ - RUNTIME_INFO_UPGRADE_VERSION = 0x001, // apply upgrades - i.e RTM->Everett - RUNTIME_INFO_REQUEST_IA64 = 0x002, // requesting a CLR for ia64 - RUNTIME_INFO_REQUEST_AMD64 = 0x004, // requesting a CLR for amd64 - RUNTIME_INFO_REQUEST_X86 = 0x008, // requesting a CLR for x86 - RUNTIME_INFO_DONT_RETURN_DIRECTORY = 0x010, // don't return directory information - RUNTIME_INFO_DONT_RETURN_VERSION = 0x020, // don't return version information - RUNTIME_INFO_DONT_SHOW_ERROR_DIALOG = 0x040, // don't pop up an error dialog on failure - RUNTIME_INFO_IGNORE_ERROR_MODE = 0x1000,// ignore SEM_FAILCRITICALERRORS - // (by default the error dialog is not shown if SEM_FAILCRITICALERRORS is set) - // Reserved values here - see mscoreepriv.h -} RUNTIME_INFO_FLAGS; - - typedef enum { APPDOMAIN_SECURITY_DEFAULT =0x0, @@ -194,85 +91,12 @@ typedef enum APPDOMAIN_DISABLE_TRANSPARENCY_ENFORCEMENT = 0x100, } APPDOMAIN_SECURITY_FLAGS; -#pragma midl_echo("STDAPI GetRequestedRuntimeVersionForCLSID(REFCLSID rclsid, _Out_writes_opt_(cchBuffer) LPWSTR pVersion, DWORD cchBuffer, _Out_opt_ DWORD* dwLength, CLSID_RESOLUTION_FLAGS dwResolutionFlags);") - - -cpp_quote("EXTERN_GUID(IID_IDebuggerThreadControl, 0x23d86786, 0x0bb5, 0x4774, 0x8f, 0xb5, 0xe3, 0x52, 0x2a, 0xdd, 0x62, 0x46);") -[ - uuid(23D86786-0BB5-4774-8FB5-E3522ADD6246), - version(1.0), - helpstring("Control over threads blocked in debugging services"), - pointer_default(unique), - local -] -interface IDebuggerThreadControl : IUnknown -{ - // Notification that the thread making the call is about to - // block within the debugging services. This gives the host - // an opportunity to perform another action while the thread - // blocks. This will always be called on a Runtime thread. - HRESULT ThreadIsBlockingForDebugger(); - - // Notification that the debugging services is about to - // release all threads it has blocked. This will never be - // called on a Runtime thread. If the host has a Runtime - // thread blocked in ThreadIsBlockingForDebugger() then it - // should release it now. - HRESULT ReleaseAllRuntimeThreads(); - - // Notification that the debugging services are about to - // start blocking all threads. This could be called on a - // Runtime thread. This is the signal to the host to - // start blocking threads in ThreadIsBlockingForDebugger(). - HRESULT StartBlockingForDebugger(DWORD dwUnused); -} - -cpp_quote("EXTERN_GUID(IID_IDebuggerInfo, 0xbf24142d, 0xa47d, 0x4d24, 0xa6, 0x6d, 0x8c, 0x21, 0x41, 0x94, 0x4e, 0x44);") -[ - uuid(BF24142D-A47D-4d24-A66D-8C2141944E44), - version(1.0), - helpstring("Information on the state of the debugging services"), - pointer_default(unique), - local -] -interface IDebuggerInfo : IUnknown -{ - // Indicates whether or not a managed debugger is attached to this process. - HRESULT IsDebuggerAttached([out] BOOL *pbAttached); -} - - -//***************************************************************************** -// Interface for hosting mscoree -//***************************************************************************** -typedef void* HDOMAINENUM; - - -typedef enum -{ - eMemoryAvailableLow = 1, - eMemoryAvailableNeutral = 2, - eMemoryAvailableHigh = 3 -} EMemoryAvailable; - -typedef enum -{ - eTaskCritical = 0, - eAppDomainCritical = 1, - eProcessCritical = 2 -} EMemoryCriticalLevel; - typedef enum { WAIT_MSGPUMP = 0x1, WAIT_ALERTABLE = 0x2, WAIT_NOTINDEADLOCK = 0x4 }WAIT_OPTION; - -typedef UINT64 TASKID; -typedef DWORD CONNID; - - typedef enum ETaskType { TT_DEBUGGERHELPER = 0x1, @@ -289,14 +113,6 @@ typedef enum ETaskType TT_UNKNOWN = 0x80000000, } ETaskType; - -typedef enum { - eSymbolReadingNever = 0, // Never read PDBs - eSymbolReadingAlways = 1, // Always read PDBs - eSymbolReadingFullTrustOnly = 2 // Only read PDBs that correspond to full-trust assemblies -} ESymbolReadingPolicy; - - typedef enum { // Default to minidump DUMP_FLAVOR_Mini = 0, @@ -312,26 +128,6 @@ typedef enum { } ECustomDumpFlavor; -// reserved for future extension -typedef enum -{ - DUMP_ITEM_None = 0 -} ECustomDumpItemKind; - -// -// The CustomDumpItem structure describes an item to be added to a dump. -// It is defined for future expansion and is not presently used. -// -typedef struct -{ - ECustomDumpItemKind itemKind; //this affects how next fields are interpreted. - union - { - // Union to be expanded later if need be - UINT_PTR pReserved; - }; -} CustomDumpItem; - const DWORD BucketParamsCount = 10; const DWORD BucketParamLength = 255; @@ -357,112 +153,6 @@ typedef struct _BucketParameters WCHAR pszParams[BucketParamsCount][BucketParamLength]; // Parameter strings. } BucketParameters; -#if defined(FEATURE_WINDOWSPHONE) -[ - uuid(980D2F1A-BF79-4c08-812A-BB9778928F78), - version(1.0), - helpstring("CLR error reporting manager"), - pointer_default(unique), - local -] -interface ICLRErrorReportingManager : IUnknown -{ - // Get Watson bucket parameters for "current" exception (on calling thread). - HRESULT GetBucketParametersForCurrentException([out] BucketParameters *pParams); - - // The BeginCustomDump function configures the custom dump support - HRESULT BeginCustomDump( [in] ECustomDumpFlavor dwFlavor, - [in] DWORD dwNumItems, - [in, size_is(dwNumItems), length_is(dwNumItems)] CustomDumpItem *items, - DWORD dwReserved); - - // EndCustomDump clears the custom dump configuration - HRESULT EndCustomDump(); -} - -#ifdef FEATURE_WINDOWSPHONE -typedef enum -{ - // indicates that the specified value is the Application ID - ApplicationID = 0x1, - - // indicates that the specified value is the application's Instance ID - InstanceID = 0x2, - - // additional values are reserved for future use -} ApplicationDataKey; - -[ - uuid(C68F63B1-4D8B-4E0B-9564-9D2EFE2FA18C), - version(1.0), - helpstring("CLR error reporting manager 2"), - pointer_default(unique), - local -] -interface ICLRErrorReportingManager2 : ICLRErrorReportingManager -{ - // This API will allow the host to specify key/value pairs of data to be consumed by the CLR. - // - // Parameters: - // [in] key - One of the values specified in the ApplicationDataKey enumerated type. - // - // [in] pValue - A NULL-terminated WCHAR string with a maximum length of MAX_PATH containing the corresponding - // value. Note that the CLR maintains its own copy of the data so this structure does not need - // to persist after the API call returns. - // - // Return values: - // S_OK upon success. - // - // Any other return value indicates that the API did not complete successfully and no value was set. - // - // Well-defined errors: - // E_INVALIDOPERATION if the CLR has already started. - // E_INVALIDARG for any of the following: - // key is not within the range of valid values for ApplicationDataKey - // pValue == NULL - // length of pValue is greater than MAX_PATH - HRESULT SetApplicationData([in] ApplicationDataKey key, [in] WCHAR const* pValue); - - // This API will allow the host to specify pre-defined Watson bucket data in the event of an unhandled - // exception, allowing the host to override Watson bucket parameter data that is usually collected and - // populated by the CLR. It should be called before the CLR has started. - // The BucketParameters data structure must be properly initialized before calling this API by zeroing - // out all fields, setting pszParams entries as required, then setting fInited to TRUE. - // A NULL pszParams entry indicates that the bucket parameter should not be overridden, and if all pszParams - // entries are NULL then the API call will fail. - // To override a bucket parameter with an empty string specify a pszParams entry with a blank string (one or - // more whitespace characters). - // - // NOTE: The current implementation allows overriding of the first bucket parameter only (pszParams[0]). - // Any other non-NULL pszParams entries will be ignored. This is subject to change in future releases. - // - // Parameters: - // [in] pBucketParams - A pointer to an initialized BucketParameters structure which contains the data to be - // reported in the event of an unhandled exception. Note that the CLR maintains its own - // copy of the data so this structure does not need to persist after the API call returns. - // - // [out] pCountParams - A pointer to a DWORD indicating the number of bucket parameter values that have - // been overridden by the host. A count of 0 indicates that no parameters were - // overridden. - // - // Return values: - // S_OK upon success. In this case the value pointed to by pCountParams will be greater than 0. - // - // Any other return value indicates that the API did not complete successfully. In this case the value - // pointed to by pCountParams will be 0. - // - // Well-defined errors: - // E_INVALIDOPERATION if the CLR has already started. - // E_INVALIDARG for any of the following: - // pBucketParams or pCountParams is NULL - // pBucketParams->fInited != TRUE - // if all BucketParameters.pszParams are NULL - HRESULT SetBucketParametersForUnhandledException([in] BucketParameters const* pBucketParams, [out] DWORD* pCountParams); -} -#endif // FEATURE_WINDOWSPHONE - -#endif // defined(FEATURE_WINDOWSPHONE) - typedef enum { @@ -514,229 +204,9 @@ typedef enum // Stop bypasses finalizer run. eFastExitProcess, eRudeExitProcess, - eDisableRuntime, MaxPolicyAction } EPolicyAction; -[ - uuid(7D290010-D781-45da-A6F8-AA5D711A730E), - version(1.0), - helpstring("Allow host to specify policy for CLR to follow in abnormal condition"), - pointer_default(unique), - local -] -interface ICLRPolicyManager: IUnknown -{ - HRESULT SetDefaultAction( - [in] EClrOperation operation, - [in] EPolicyAction action); - - HRESULT SetTimeout( - [in] EClrOperation operation, - [in] DWORD dwMilliseconds); - - HRESULT SetActionOnTimeout( - [in] EClrOperation operation, - [in] EPolicyAction action); - - HRESULT SetTimeoutAndAction( - [in] EClrOperation operation, - [in] DWORD dwMilliseconds, - [in] EPolicyAction action); - - HRESULT SetActionOnFailure( - [in] EClrFailure failure, - [in] EPolicyAction action); - - HRESULT SetUnhandledExceptionPolicy( - [in] EClrUnhandledException policy); -} - - -typedef enum -{ - Event_DomainUnload, - Event_ClrDisabled, - Event_MDAFired, - Event_StackOverflow, - MaxClrEvent - // Do not add anything after this -} EClrEvent; - -// An MDAInfo is passed via OnEvent for Event_MDAFired events. -typedef struct _MDAInfo -{ - LPCWSTR lpMDACaption; - LPCWSTR lpMDAMessage; - LPCWSTR lpStackTrace; -} MDAInfo; - -// An StackOverflowInfo is passed via OnEvent for Event_StackOverflow events. -typedef enum -{ - SO_Managed, - SO_ClrEngine, - SO_Other, -} StackOverflowType; - -cpp_quote("typedef struct _StackOverflowInfo") -cpp_quote("{") -cpp_quote(" StackOverflowType soType;") -cpp_quote(" EXCEPTION_POINTERS *pExceptionInfo;") -cpp_quote("} StackOverflowInfo;") - - -#if defined(FEATURE_WINDOWSPHONE) - -/* - * This interface is used to get information about the GC system and - * control some aspects of the GC. This interface is for expert usage - * only, and can severely impact the performance of an application if - * used improperly!! - */ -[ - uuid(54D9007E-A8E2-4885-B7BF-F998DEEE4F2A), - version(1.0), - pointer_default(unique), - local -] -interface ICLRGCManager : IUnknown -{ - /* - * Forces a collection to occur for the given generation, regardless of - * current GC statistics. A value of -1 means collect all generations. - */ - HRESULT Collect([in] LONG Generation); - - /* - * Returns a set of current statistics about the state of the GC system. - * These values can then be used by a smart allocation system to help the - * GC run, by say adding more memory or forcing a collection. - */ - HRESULT GetStats([in][out] COR_GC_STATS *pStats); - - /* - * Sets the segment size and gen 0 maximum size. This value may only be - * specified once and will not change if called later. - */ - HRESULT SetGCStartupLimits([in] DWORD SegmentSize, [in] DWORD MaxGen0Size); -} - -/* - * This interface is added to allow users to specify 64-bit numbers on 64-bit OSs - * for the parameters to SetGCStartupLimits. - */ -[ - uuid(0603B793-A97A-4712-9CB4-0CD1C74C0F7C), - version(2.0), - pointer_default(unique), - local -] -interface ICLRGCManager2 : ICLRGCManager -{ - /* - * Sets the segment size and gen 0 maximum size. This value may only be - * specified once and will not change if called later. - */ - HRESULT SetGCStartupLimitsEx([in] SIZE_T SegmentSize, [in] SIZE_T MaxGen0Size); -}; - - -#endif // FEATURE_WINDOWSPHONE - -/////////////////////////////////////////////////////////////////////////////// -// -// enum EBindPolicyLevels -// -/////////////////////////////////////////////////////////////////////////////// -typedef enum -{ - ePolicyLevelNone = 0x0, - ePolicyLevelRetargetable = 0x1, - ePolicyUnifiedToCLR = 0x2, - ePolicyLevelApp = 0x4, - ePolicyLevelPublisher = 0x8, - ePolicyLevelHost = 0x10, - ePolicyLevelAdmin = 0x20, - ePolicyPortability = 0x40, -} EBindPolicyLevels; -/////////////////////////////////////////////////////////////////////////////// -// -// struct AssemblyBindInfo -// -/////////////////////////////////////////////////////////////////////////////// -typedef struct _AssemblyBindInfo -{ - DWORD dwAppDomainId; - LPCWSTR lpReferencedIdentity; - LPCWSTR lpPostPolicyIdentity; - DWORD ePolicyLevel; -}AssemblyBindInfo; -/////////////////////////////////////////////////////////////////////////////// -// -// struct ModuleBindInfo -// -/////////////////////////////////////////////////////////////////////////////// -typedef struct _ModuleBindInfo -{ - DWORD dwAppDomainId; - LPCWSTR lpAssemblyIdentity; - LPCWSTR lpModuleName; -} ModuleBindInfo; - - -typedef enum _HostApplicationPolicy -{ - HOST_APPLICATION_BINDING_POLICY = 1 -}EHostApplicationPolicy; - - - -// Implemented in mscorwks.dll, use mscoree!GetRealProcAddress to get -// a function pointer of this API. -#pragma midl_echo("STDAPI GetCLRIdentityManager(REFIID riid, IUnknown **ppManager);") - -// {02CA073D-7079-4860-880A-C2F7A449C991} -cpp_quote("EXTERN_GUID(IID_IHostControl, 0x02CA073C, 0x7079, 0x4860, 0x88, 0x0A, 0xC2, 0xF7, 0xA4, 0x49, 0xC9, 0x91);") -[ - uuid(02CA073C-7079-4860-880A-C2F7A449C991), - version(1.0), - helpstring("Common Language Runtime Host Control Interface"), - pointer_default(unique), - local -] -interface IHostControl : IUnknown -{ - HRESULT GetHostManager( - [in] REFIID riid, - [out] void **ppObject); - - /* Notify Host with IUnknown with the pointer to AppDomainManager */ - HRESULT SetAppDomainManager( - [in] DWORD dwAppDomainID, - [in] IUnknown* pUnkAppDomainManager); -} - -cpp_quote("EXTERN_GUID(IID_ICLRControl, 0x9065597E, 0xD1A1, 0x4fb2, 0xB6, 0xBA, 0x7E, 0x1F, 0xCE, 0x23, 0x0F, 0x61);") -[ - uuid(9065597E-D1A1-4fb2-B6BA-7E1FCE230F61), - version(1.0), - helpstring("Common Language Runtime Control Interface"), - pointer_default(unique), - local -] -interface ICLRControl : IUnknown -{ - HRESULT GetCLRManager( - [in] REFIID riid, - [out] void **ppObject); - - HRESULT SetAppDomainManagerType( - [in] LPCWSTR pwzAppDomainManagerAssembly, - [in] LPCWSTR pwzAppDomainManagerType); -} - - //***************************************************************************** // New interface for hosting mscoree @@ -786,10 +256,6 @@ interface ICLRRuntimeHost : IUnknown [out] DWORD *pReturnValue); }; -// Keys for ICLRRuntmeHost2::Authenticate. No longer required. -cpp_quote("#define CORECLR_HOST_AUTHENTICATION_KEY 0x1C6CA6F94025800LL") -cpp_quote("#define CORECLR_HOST_AUTHENTICATION_KEY_NONGEN 0x1C6CA6F94025801LL") - //***************************************************************************** // New interface for hosting mscoree //***************************************************************************** @@ -855,250 +321,6 @@ interface ICLRRuntimeHost4 : ICLRRuntimeHost2 [out] int *pLatchedExitCode); }; -[ - uuid(1000A3E7-B420-4620-AE30-FB19B587AD1D), - version(1.0), - helpstring("Pause and Resume Interface"), - pointer_default(unique), - local -] -interface ICLRExecutionManager : IUnknown -{ - // Pause all managed threads - // Parameters are ignored and reserved for future use. - HRESULT Pause([in] DWORD dwAppDomainId, [in] DWORD dwFlags); - - // Resume managed threads - // Parameters are ignored and reserved for future use. - HRESULT Resume([in] DWORD dwAppDomainId); -} - -//***************************************************************************** -// Interface to utilize HostProtection -//***************************************************************************** -typedef enum -{ - eNoChecks = 0, - //--------------------------------- - eSynchronization = 0x1, - eSharedState = 0x2, - eExternalProcessMgmt = 0x4, - eSelfAffectingProcessMgmt = 0x8, - eExternalThreading = 0x10, - eSelfAffectingThreading = 0x20, - eSecurityInfrastructure = 0x40, - eUI = 0x80, - eMayLeakOnAbort = 0x100, - //---------------------------------- - eAll = 0x1ff -} EApiCategories; - - -// -// Interface for configuring the default AppDomain -// - -typedef enum -{ - eInitializeNewDomainFlags_None = 0x0000, - - // InitializeNewDomain will not make changes to the security state of the AppDomain - eInitializeNewDomainFlags_NoSecurityChanges = 0x0002 -} -EInitializeNewDomainFlags; - - -//***************************************************************************** -// mscoree typelib definition -//***************************************************************************** - -[ - uuid(5477469e-83b1-11d2-8b49-00a0c9b7c9c4), - version(2.4), - helpstring("Common Language Runtime Execution Engine 2.4 Library") -] -library mscoree -{ - importlib("stdole32.tlb"); - - //***************************************************************************** - // - //***************************************************************************** - [ - object, - oleautomation, - uuid(B81FF171-20F3-11d2-8DCC-00A0C9B00522), - helpstring("Type name parser"), - pointer_default(unique) - ] - interface ITypeName : IUnknown - { - HRESULT GetNameCount([out, retval] DWORD* pCount); - HRESULT GetNames([in] DWORD count, [out] BSTR* rgbszNames, [out, retval] DWORD* pCount); - HRESULT GetTypeArgumentCount([out, retval] DWORD* pCount); - HRESULT GetTypeArguments([in] DWORD count, [out] ITypeName** rgpArguments, [out, retval] DWORD* pCount); - HRESULT GetModifierLength([out, retval] DWORD* pCount); - HRESULT GetModifiers([in] DWORD count, [out] DWORD* rgModifiers, [out, retval] DWORD* pCount); - HRESULT GetAssemblyName([out, retval] BSTR* rgbszAssemblyNames); - }; - - //***************************************************************************** - // - //***************************************************************************** - [ - object, - oleautomation, - uuid(B81FF171-20F3-11d2-8DCC-00A0C9B00523), - helpstring("Type name builder"), - pointer_default(unique) - ] - interface ITypeNameBuilder : IUnknown - { - HRESULT OpenGenericArguments(); - HRESULT CloseGenericArguments(); - HRESULT OpenGenericArgument(); - HRESULT CloseGenericArgument(); - HRESULT AddName([in] LPCWSTR szName); - HRESULT AddPointer(); - HRESULT AddByRef(); - HRESULT AddSzArray(); - HRESULT AddArray([in] DWORD rank); - HRESULT AddAssemblySpec([in] LPCWSTR szAssemblySpec); - HRESULT ToString([out, retval] BSTR* pszStringRepresentation); - HRESULT Clear(); - }; - - //***************************************************************************** - // - //***************************************************************************** - [ - object, - oleautomation, - uuid(B81FF171-20F3-11d2-8DCC-00A0C9B00521), - helpstring("Type name builder and parser factory"), - pointer_default(unique) - ] - interface ITypeNameFactory : IUnknown - { - HRESULT ParseTypeName([in] LPCWSTR szName, [out] DWORD* pError, [out, retval] ITypeName** ppTypeName); - HRESULT GetTypeNameBuilder([out, retval] ITypeNameBuilder** ppTypeBuilder); - }; - - -#ifdef _WIN64 - #define CCW_PTR __int64 * - cpp_quote("#define CCW_PTR __int64 *") -#else // WIN64 - #define CCW_PTR int * - cpp_quote("#define CCW_PTR int *") -#endif // WIN64 - -#ifdef FEATURE_COMINTEROP - //***************************************************************************** - // Interface for controlling a managed object - //***************************************************************************** - [ - object, - oleautomation, - uuid(C3FCC19E-A970-11d2-8B5A-00A0C9B7C9C4), - helpstring("Managed Object Interface"), - pointer_default(unique), - proxy - ] - interface IManagedObject : IUnknown - { - // helper to serialize the object and marshal it to the client - HRESULT GetSerializedBuffer( [out] BSTR *pBSTR); - - // Object identity includes, process guid, appdomain id, ccw - HRESULT GetObjectIdentity([out] BSTR* pBSTRGUID, [out] int* AppDomainID, [out] CCW_PTR pCCW); - }; -#endif // FEATURE_COMINTEROP - - -#ifdef FEATURE_COMINTEROP - //***************************************************************************** - // IMarshal implementation for 1.0, 1.1, and 2.0 COM callable wrappers - //***************************************************************************** - [ - uuid(3F281000-E95A-11d2-886B-00C04F869F04), - helpstring("Com Call Wrapper Unmarshalling Class") - ] - coclass ComCallUnmarshal - { - [default] interface IMarshal; - }; - - //***************************************************************************** - // IMarshal implementation for 4.0 COM callable wrappers - //***************************************************************************** - [ - uuid(45FB4600-E6E8-4928-B25E-50476FF79425), - helpstring("Com Call Wrapper Unmarshalling Class 4.0") - ] - coclass ComCallUnmarshalV4 - { - [default] interface IMarshal; - }; -#endif // FEATURE_COMINTEROP - - - [ - uuid(90F1A06E-7712-4762-86B5-7A5EBA6BDB02), - helpstring("CLR Runtime Hosting Class V2") - ] - coclass CLRRuntimeHost - { - [default] interface ICLRRuntimeHost; - interface ICLRValidator; - }; - - [ - uuid(B81FF171-20F3-11d2-8DCC-00A0C9B00525), - helpstring("TypeName parser and builder") - ] - coclass TypeNameFactory - { - [default] interface ITypeNameFactory; - }; -}; - -typedef enum -{ - eCurrentContext=0x00, - eRestrictedContext=0x01 -} EContextType; - - -#ifdef FEATURE_APPDOMAIN_RESOURCE_MONITORING -/////////////////////////////////////////////////////////////////////////////// -// -// ICLRAppDomainResourceMonitor -// -/////////////////////////////////////////////////////////////////////////////// -[ - version(1.0), - uuid(c62de18c-2e23-4aea-8423-b40c1fc59eae), - helpstring("ARM interface"), - pointer_default(unique), - local -] -interface ICLRAppDomainResourceMonitor: IUnknown -{ - HRESULT GetCurrentAllocated([in] DWORD dwAppDomainId, - [out] ULONGLONG* pBytesAllocated); - - HRESULT GetCurrentSurvived([in] DWORD dwAppDomainId, - [out] ULONGLONG* pAppDomainBytesSurvived, - [out] ULONGLONG* pTotalBytesSurvived); - - HRESULT GetCurrentCpuTime([in] DWORD dwAppDomainId, - [out] ULONGLONG* pMilliseconds); - - -}; -#endif //FEATURE_APPDOMAIN_RESOURCE_MONITORING - cpp_quote("#undef DEPRECATED_CLR_STDAPI") cpp_quote("#undef DECLARE_DEPRECATED") cpp_quote("#undef DEPRECATED_CLR_API_MESG") diff --git a/lib/coreclr/src/inc/OpCodeGen.pl b/lib/coreclr/src/inc/OpCodeGen.pl index c29d4976e718..64ba130da4f0 100644 --- a/lib/coreclr/src/inc/OpCodeGen.pl +++ b/lib/coreclr/src/inc/OpCodeGen.pl @@ -46,8 +46,8 @@ $endHeaderComment .= "** See \$(RepoRoot)\\src\\inc\\OpCodeGen.pl for more information.**\n"; $endHeaderComment .= "==============================================================*/\n\n"; -$usingAndRefEmitNmsp = "using System;\n\nnamespace System.Reflection.Emit\n{\n\n"; -$obsoleteAttr = " [Obsolete(\"This API has been deprecated. http://go.microsoft.com/fwlink/?linkid=14202\")]\n"; +$usingAndRefEmitNmsp = "namespace System.Reflection.Emit\n{\n\n"; +$obsoleteAttr = " [Obsolete(\"This API has been deprecated. https://go.microsoft.com/fwlink/?linkid=14202\")]\n"; # Open source file and target files @@ -298,7 +298,7 @@ { $popstate = $popstate -2; } - elsif ($pop eq "Popi_popi_popi" || $pop eq "Popref_popi_popi" || $pop eq "Popref_popi_popi8" || $pop eq "Popref_popi_popr4" || $pop eq "Popref_popi_popr8" || $pop eq "Popref_popi_popref") + elsif ($pop eq "Popi_popi_popi" || $pop eq "Popref_popi_popi" || $pop eq "Popref_popi_popi8" || $pop eq "Popref_popi_popr4" || $pop eq "Popref_popi_popr8" || $pop eq "Popref_popi_popref" || $pop eq "Popref_popi_pop1") { $popstate = $popstate -3; } @@ -473,7 +473,7 @@ print OUTPUT " case OperandType.ShortInlineI:\n"; print OUTPUT " case OperandType.ShortInlineVar:\n"; print OUTPUT " return true;\n"; -print OUTPUT " };\n"; +print OUTPUT " }\n"; print OUTPUT " return false;\n"; print OUTPUT " }\n"; diff --git a/lib/coreclr/src/inc/appxutil.h b/lib/coreclr/src/inc/appxutil.h index 312c4863321e..411c18b695be 100644 --- a/lib/coreclr/src/inc/appxutil.h +++ b/lib/coreclr/src/inc/appxutil.h @@ -10,7 +10,6 @@ #include "clrtypes.h" #include "appmodel.h" -#include "fusionsetup.h" #define PACKAGE_FILTER_CLR_DEFAULT (PACKAGE_FILTER_HEAD|PACKAGE_FILTER_DIRECT) diff --git a/lib/coreclr/src/inc/arraylist.h b/lib/coreclr/src/inc/arraylist.h index f45085bf33b4..b8c149f8eba5 100644 --- a/lib/coreclr/src/inc/arraylist.h +++ b/lib/coreclr/src/inc/arraylist.h @@ -86,7 +86,6 @@ class ArrayListBase void Set(DWORD index, PTR_VOID element) { WRAPPER_NO_CONTRACT; - STATIC_CONTRACT_SO_INTOLERANT; *GetPtr(index) = element; } @@ -102,7 +101,6 @@ class ArrayListBase void Init() { LIMITED_METHOD_CONTRACT; - STATIC_CONTRACT_SO_INTOLERANT; m_count = 0; m_firstBlock.m_next = NULL; @@ -112,7 +110,6 @@ class ArrayListBase void Destroy() { WRAPPER_NO_CONTRACT; - STATIC_CONTRACT_SO_INTOLERANT; Clear(); } @@ -153,7 +150,6 @@ class ArrayListBase static Iterator Create(ArrayListBlock* block, DWORD remaining) { LIMITED_METHOD_DAC_CONTRACT; - STATIC_CONTRACT_SO_INTOLERANT; Iterator i; i.m_block = block; i.m_index = (DWORD) -1; @@ -188,15 +184,12 @@ class ArrayListBase Iterator Iterate() { - STATIC_CONTRACT_SO_INTOLERANT; WRAPPER_NO_CONTRACT; return Iterator::Create((ArrayListBlock*)&m_firstBlock, m_count); } ConstIterator Iterate() const { - STATIC_CONTRACT_SO_INTOLERANT; - // Const cast is safe because ConstIterator does not expose any way to modify the block ArrayListBlock *pFirstBlock = const_cast(reinterpret_cast(&m_firstBlock)); return ConstIterator(pFirstBlock, m_count); @@ -277,14 +270,12 @@ class ArrayList : public ArrayListBase #ifndef DACCESS_COMPILE ArrayList() { - STATIC_CONTRACT_SO_INTOLERANT; WRAPPER_NO_CONTRACT; Init(); } ~ArrayList() { - STATIC_CONTRACT_SO_INTOLERANT; WRAPPER_NO_CONTRACT; Destroy(); } diff --git a/lib/coreclr/src/inc/check.h b/lib/coreclr/src/inc/check.h index b1fdba9211a5..a05960f33211 100644 --- a/lib/coreclr/src/inc/check.h +++ b/lib/coreclr/src/inc/check.h @@ -286,6 +286,7 @@ do \ template CHECK CheckInvariant(TYPENAME &obj) { +#if defined(_MSC_VER) || defined(__llvm__) __if_exists(TYPENAME::Invariant) { CHECK(obj.Invariant()); @@ -294,6 +295,7 @@ CHECK CheckInvariant(TYPENAME &obj) { CHECK(obj.InternalInvariant()); } +#endif CHECK_OK; } @@ -339,10 +341,12 @@ CHECK CheckPointer(TYPENAME *o, IsNullOK ok = NULL_NOT_OK) } else { +#if defined(_MSC_VER) || defined(__llvm__) __if_exists(TYPENAME::Check) { CHECK(o->Check()); } +#endif } CHECK_OK; @@ -351,10 +355,12 @@ CHECK CheckPointer(TYPENAME *o, IsNullOK ok = NULL_NOT_OK) template CHECK CheckValue(TYPENAME &val) { +#if defined(_MSC_VER) || defined(__llvm__) __if_exists(TYPENAME::Check) { CHECK(val.Check()); } +#endif CHECK(CheckInvariant(val)); @@ -473,7 +479,7 @@ CHECK CheckValue(TYPENAME &val) // in a free build they are passed through to the compiler to use in optimization. //-------------------------------------------------------------------------------- -#if defined(_PREFAST_) || defined(_PREFIX_) +#if defined(_PREFAST_) || defined(_PREFIX_) || defined(__clang_analyzer__) #define COMPILER_ASSUME_MSG(_condition, _message) if (!(_condition)) __UNREACHABLE(); #define COMPILER_ASSUME_MSGF(_condition, args) if (!(_condition)) __UNREACHABLE(); #else @@ -561,7 +567,7 @@ CHECK CheckValue(TYPENAME &val) # define __UNREACHABLE() __assume(0) #endif #else -#define __UNREACHABLE() do { } while(true) +#define __UNREACHABLE() __builtin_unreachable() #endif #ifdef _DEBUG_IMPL diff --git a/lib/coreclr/src/inc/clr_std/string b/lib/coreclr/src/inc/clr_std/string index e4476a60c64f..66f219c8a878 100644 --- a/lib/coreclr/src/inc/clr_std/string +++ b/lib/coreclr/src/inc/clr_std/string @@ -53,9 +53,8 @@ public: copy(_Ptr, _Count); } - basic_string(const value_type* _Ptr) + basic_string(const value_type* _Ptr) : basic_string(_Ptr, c_len(_Ptr)) { - this->basic_string::basic_string(_Ptr, c_len(_Ptr)); } void reserve(size_t newcapacity) @@ -146,6 +145,14 @@ public: return (*this); } + basic_string& operator+=(value_type _Ch) + { + size_type oldsize = size(); // doesn't include null terminator + m_string[oldsize] = _Ch; // Replace the null terminator with the new symbol. + m_string.push_back(T()); // Return the replaced terminator again. + return (*this); + } + ~basic_string() { // vector destructor does all the work @@ -157,6 +164,11 @@ public: return m_string.size() - 1; // Don't report the null terminator. } + size_t length() const + { + return size(); + } + T& operator[](size_t iIndex) { assert(iIndex < size() + 1); // allow looking at the null terminator diff --git a/lib/coreclr/src/inc/clrconfigvalues.h b/lib/coreclr/src/inc/clrconfigvalues.h index 12a2c0f37502..c034f4f689c1 100644 --- a/lib/coreclr/src/inc/clrconfigvalues.h +++ b/lib/coreclr/src/inc/clrconfigvalues.h @@ -102,7 +102,6 @@ /// /// AppDomain /// -CONFIG_DWORD_INFO(INTERNAL_ADBreakOnCannotUnload, W("ADBreakOnCannotUnload"), 0, "Used to troubleshoot failures to unload appdomain (e.g. someone sitting in unmanged code). In some cases by the time we throw the appropriate exception the thread has moved from the offending call. This setting allows in an instrumented build to stop exactly at the right moment.") RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(UNSUPPORTED_AddRejitNops, W("AddRejitNops"), "Control for the profiler rejit feature infrastructure") CONFIG_DWORD_INFO(INTERNAL_ADDumpSB, W("ADDumpSB"), 0, "Not used") CONFIG_DWORD_INFO(INTERNAL_ADForceSB, W("ADForceSB"), 0, "Forces sync block creation for all objects") @@ -110,18 +109,6 @@ CONFIG_DWORD_INFO(INTERNAL_ADLogMemory, W("ADLogMemory"), 0, "Superseded by test CONFIG_DWORD_INFO(INTERNAL_ADTakeDHSnapShot, W("ADTakeDHSnapShot"), 0, "Superseded by test hooks") CONFIG_DWORD_INFO(INTERNAL_ADTakeSnapShot, W("ADTakeSnapShot"), 0, "Superseded by test hooks") CONFIG_DWORD_INFO_DIRECT_ACCESS(INTERNAL_EnableFullDebug, W("EnableFullDebug"), "Heavy-weight checking for AD boundary violations (AD leaks)") -RETAIL_CONFIG_DWORD_INFO(EXTERNAL_ADULazyMemoryRelease, W("ADULazyMemoryRelease"), 1, "On by default. Turned off in cases when people try to catch memory leaks, in which case AD unload should be immediately followed by GC)") -RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_ADURetryCount, W("ADURetryCount"), "Controls timeout of AD unload. Used for workarounds when machine is too slow, there are network issues etc.") - -// For the proposal and discussion on why finalizers are not run on shutdown by default anymore in CoreCLR, see the API review: -// https://github.com/dotnet/corefx/issues/5205 -#define DEFAULT_FinalizeOnShutdown (0) -RETAIL_CONFIG_DWORD_INFO(EXTERNAL_FinalizeOnShutdown, W("FinalizeOnShutdown"), DEFAULT_FinalizeOnShutdown, "When enabled, on shutdown, blocks all user threads and calls finalizers for all finalizable objects, including live objects") - -/// -/// ARM -/// -RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_ARMEnabled, W("ARMEnabled"), (DWORD)0, "Set it to 1 to enable ARM") /// /// Jit Pitching @@ -153,7 +140,6 @@ CONFIG_DWORD_INFO_EX(INTERNAL_BreakOnDumpToken, W("BreakOnDumpToken"), 0xfffffff RETAIL_CONFIG_DWORD_INFO_EX(UNSUPPORTED_BreakOnEELoad, W("BreakOnEELoad"), 0, "", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO(INTERNAL_BreakOnEEShutdown, W("BreakOnEEShutdown"), 0, "") CONFIG_DWORD_INFO_EX(INTERNAL_BreakOnExceptionInGetThrowable, W("BreakOnExceptionInGetThrowable"), 0, "", CLRConfig::REGUTIL_default) -RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_BreakOnFinalizeTimeOut, W("BreakOnFinalizeTimeOut"), 0, "Triggers a debug break on the finalizer thread when it has exceeded the maximum wait time") CONFIG_DWORD_INFO(INTERNAL_BreakOnFindMethod, W("BreakOnFindMethod"), 0, "Breaks in findMethodInternal when it searches for the specified token.") CONFIG_DWORD_INFO_EX(INTERNAL_BreakOnFirstPass, W("BreakOnFirstPass"), 0, "", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO_EX(INTERNAL_BreakOnHR, W("BreakOnHR"), 0, "Debug.cpp, IfFailxxx use this macro to stop if hr matches ", CLRConfig::REGUTIL_default) @@ -161,7 +147,6 @@ CONFIG_STRING_INFO(INTERNAL_BreakOnInstantiation, W("BreakOnInstantiation"), "Ve CONFIG_STRING_INFO(INTERNAL_BreakOnInteropStubSetup, W("BreakOnInteropStubSetup"), "Throws an assert when marshaling stub for the given method is about to be built.") CONFIG_STRING_INFO_EX(INTERNAL_BreakOnInteropVTableBuild, W("BreakOnInteropVTableBuild"), "Specifies a type name for which an assert should be thrown when building interop v-table.", CLRConfig::REGUTIL_default) CONFIG_STRING_INFO(INTERNAL_BreakOnMethodName, W("BreakOnMethodName"), "Very useful for debugging method override placement code.") -RETAIL_CONFIG_DWORD_INFO_EX(UNSUPPORTED_BreakOnNGenRegistryAccessCount, W("BreakOnNGenRegistryAccessCount"), 0, "Breaks on the Nth' root store write", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO_EX(INTERNAL_BreakOnNotify, W("BreakOnNotify"), 0, "", CLRConfig::REGUTIL_default) RETAIL_CONFIG_DWORD_INFO_EX(INTERNAL_BreakOnRetailAssert, W("BreakOnRetailAssert"), 0, "Used for debugging \"retail\" asserts (fatal errors)", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO_EX(INTERNAL_BreakOnSecondPass, W("BreakOnSecondPass"), 0, "", CLRConfig::REGUTIL_default) @@ -262,8 +247,6 @@ CONFIG_DWORD_INFO_DIRECT_ACCESS(INTERNAL_SuppressChecks, W("SuppressChecks"), "" #ifdef WIN64EXCEPTIONS CONFIG_DWORD_INFO(INTERNAL_SuppressLockViolationsOnReentryFromOS, W("SuppressLockViolationsOnReentryFromOS"), 0, "64 bit OOM tests re-enter the CLR via RtlVirtualUnwind. This indicates whether to suppress resulting locking violations.") #endif // WIN64EXCEPTIONS -CONFIG_STRING_INFO(INTERNAL_TestHooks, W("TestHooks"), "Used by tests to get test an insight on various CLR workings") - /// /// Exception Handling @@ -272,6 +255,8 @@ CONFIG_DWORD_INFO_DIRECT_ACCESS(INTERNAL_AssertOnFailFast, W("AssertOnFailFast") RETAIL_CONFIG_DWORD_INFO_EX(UNSUPPORTED_legacyCorruptedStateExceptionsPolicy, W("legacyCorruptedStateExceptionsPolicy"), 0, "Enabled Pre-V4 CSE behavior", CLRConfig::FavorConfigFile) CONFIG_DWORD_INFO_EX(INTERNAL_SuppressLostExceptionTypeAssert, W("SuppressLostExceptionTypeAssert"), 0, "", CLRConfig::REGUTIL_default) RETAIL_CONFIG_DWORD_INFO_EX(UNSUPPORTED_FailFastOnCorruptedStateException, W("FailFastOnCorruptedStateException"), 0, "Failfast if a CSE is encountered", CLRConfig::FavorConfigFile) +RETAIL_CONFIG_DWORD_INFO_EX(INTERNAL_UseEntryPointFilter, W("UseEntryPointFilter"), 0, "", CLRConfig::REGUTIL_default) +RETAIL_CONFIG_DWORD_INFO_EX(INTERNAL_Corhost_Swallow_Uncaught_Exceptions, W("Corhost_Swallow_Uncaught_Exceptions"), 0, "", CLRConfig::REGUTIL_default) /// /// Garbage collector @@ -289,6 +274,7 @@ CONFIG_STRING_INFO(INTERNAL_GcCoverage, W("GcCoverage"), "Specify a method or re CONFIG_STRING_INFO(INTERNAL_SkipGCCoverage, W("SkipGcCoverage"), "Specify a list of assembly names to skip with GC Coverage") RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(UNSUPPORTED_gcForceCompact, W("gcForceCompact"), "When set to true, always do compacting GC") RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(UNSUPPORTED_GCgen0size, W("GCgen0size"), "Specifies the smallest gen0 size") +RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(UNSUPPORTED_GCGen0MaxBudget, W("GCGen0MaxBudget"), "Specifies the largest gen0 allocation budget") RETAIL_CONFIG_DWORD_INFO(INTERNAL_GCStressMix, W("GCStressMix"), 0, "Specifies whether the GC mix mode is enabled or not") RETAIL_CONFIG_DWORD_INFO(INTERNAL_GCStressStep, W("GCStressStep"), 1, "Specifies how often StressHeap will actually do a GC in GCStressMix mode") RETAIL_CONFIG_DWORD_INFO(INTERNAL_GCStressMaxFGCsPerBGC, W("GCStressMaxFGCsPerBGC"), ~0U, "Specifies how many FGCs will occur during one BGC in GCStressMix mode") @@ -306,6 +292,7 @@ RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_GCCompactRatio, W("GCCompactRatio"), 0, "Sp RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_GCPollType, W("GCPollType"), "") RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_GCRetainVM, W("GCRetainVM"), 0, "When set we put the segments that should be deleted on a standby list (instead of releasing them back to the OS) which will be considered to satisfy new segment requests (note that the same thing can be specified via API which is the supported way)") RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(UNSUPPORTED_GCSegmentSize, W("GCSegmentSize"), "Specifies the managed heap segment size") +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_GCLOHThreshold, W("GCLOHThreshold"), 0, "Specifies the size that will make objects go on LOH") RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(UNSUPPORTED_GCLOHCompact, W("GCLOHCompact"), "Specifies the LOH compaction mode") RETAIL_CONFIG_DWORD_INFO(EXTERNAL_gcAllowVeryLargeObjects, W("gcAllowVeryLargeObjects"), 1, "Allow allocation of 2GB+ objects on GC heap") RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_GCStress, W("GCStress"), 0, "Trigger GCs at regular intervals", CLRConfig::REGUTIL_default) @@ -319,9 +306,17 @@ RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(UNSUPPORTED_HeapVerify, W("HeapVerify"), RETAIL_CONFIG_STRING_INFO_EX(EXTERNAL_SetupGcCoverage, W("SetupGcCoverage"), "This doesn't appear to be a config flag", CLRConfig::REGUTIL_default) RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_GCNumaAware, W("GCNumaAware"), 1, "Specifies if to enable GC NUMA aware") RETAIL_CONFIG_DWORD_INFO(EXTERNAL_GCCpuGroup, W("GCCpuGroup"), 0, "Specifies if to enable GC to support CPU groups") -RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_GCHeapCount, W("GCHeapCount"), 0, "") -RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_GCNoAffinitize, W("GCNoAffinitize"), 0, "") +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_GCHeapCount, W("GCHeapCount"), 0, "") +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_GCNoAffinitize, W("GCNoAffinitize"), 0, "") +// this config is only in effect if the process is not running in multiple CPU groups. +RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_GCHeapAffinitizeMask, W("GCHeapAffinitizeMask"), "Specifies processor mask for Server GC threads") +RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_GCProvModeStress, W("GCProvModeStress"), 0, "Stress the provisional modes") +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_GCHighMemPercent, W("GCHighMemPercent"), 0, "Specifies the percent for GC to consider as high memory") RETAIL_CONFIG_STRING_INFO(EXTERNAL_GCName, W("GCName"), "") +RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_GCHeapHardLimit, W("GCHeapHardLimit"), "Specifies the maximum commit size for the GC heap") +RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_GCHeapHardLimitPercent, W("GCHeapHardLimitPercent"), "Specifies the GC heap usage as a percentage of the total memory") +RETAIL_CONFIG_STRING_INFO(EXTERNAL_GCHeapAffinitizeRanges, W("GCHeapAffinitizeRanges"), "Specifies list of processors for Server GC threads. The format is a comma separated list of processor numbers or ranges of processor numbers. Example: 1,3,5,7-9,12") +RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_GCLargePages, W("GCLargePages"), "Specifies whether large pages should be used when a heap hard limit is set") /// /// IBC @@ -367,6 +362,8 @@ RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_StackSamplingNumMethods, W("StackSamplingNu RETAIL_CONFIG_STRING_INFO_EX(INTERNAL_AltJitNgen, W("AltJitNgen"), "Enables AltJit for NGEN and selectively limits it to the specified methods.", CLRConfig::REGUTIL_default) #endif // defined(ALLOW_SXS_JIT_NGEN) +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_JitHostMaxSlabCache, W("JitHostMaxSlabCache"), 0x1000000, "Sets jit host max slab cache size, 16MB default") + RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_JitOptimizeType, W("JitOptimizeType"), "") RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_JitPrintInlinedMethods, W("JitPrintInlinedMethods"), 0, "", CLRConfig::REGUTIL_default) RETAIL_CONFIG_DWORD_INFO(EXTERNAL_JitTelemetry, W("JitTelemetry"), 1, "If non-zero, gather JIT telemetry data") @@ -404,6 +401,7 @@ RETAIL_CONFIG_DWORD_INFO(INTERNAL_JitVNMapSelBudget, W("JitVNMapSelBudget"), 100 RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_FeatureSIMD, W("FeatureSIMD"), EXTERNAL_FeatureSIMD_Default, "Enable SIMD intrinsics recognition in System.Numerics.dll and/or System.Numerics.Vectors.dll", CLRConfig::REGUTIL_default) RETAIL_CONFIG_DWORD_INFO(INTERNAL_SIMD16ByteOnly, W("SIMD16ByteOnly"), 0, "Limit maximum SIMD vector length to 16 bytes (used by x64_arm64_altjit)") RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_EnableAVX, W("EnableAVX"), EXTERNAL_JitEnableAVX_Default, "Enable AVX instruction set for wide operations as default", CLRConfig::REGUTIL_default) +RETAIL_CONFIG_DWORD_INFO_EX(UNSUPPORTED_TrackDynamicMethodDebugInfo, W("TrackDynamicMethodDebugInfo"), 0, "Specifies whether debug info should be generated and tracked for dynamic methods", CLRConfig::REGUTIL_default) #ifdef FEATURE_MULTICOREJIT @@ -443,12 +441,7 @@ RETAIL_CONFIG_DWORD_INFO(INTERNAL_InterpreterFallback, W("InterpreterFallback"), /// CONFIG_DWORD_INFO_DIRECT_ACCESS(INTERNAL_APIThreadStress, W("APIThreadStress"), "Used to test Loader for race conditions") RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_ForceLog, W("ForceLog"), "Fusion flag to enforce assembly binding log. Heavily used and documented in MSDN and BLOGS.") -RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_LoaderOptimization, W("LoaderOptimization"), "Controls code sharing behavior") RETAIL_CONFIG_STRING_INFO(INTERNAL_CoreClrBinderLog, W("CoreClrBinderLog"), "Debug flag that enabled detailed log for new binder (similar to stress logging).") -RETAIL_CONFIG_DWORD_INFO(EXTERNAL_DisableIJWVersionCheck, W("DisableIJWVersionCheck"), 0, "Don't perform the new version check that prevents unsupported IJW in-proc SxS.") -RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_EnableFastBindClosure, W("EnableFastBindClosure"), 0, "If set to >0 the binder uses CFastAssemblyBindingClosure instances") -RETAIL_CONFIG_DWORD_INFO(INTERNAL_DisableFXClosureWalk, W("DisableFXClosureWalk"), 0, "Disable full closure walks even in the presence of FX binding redirects") -CONFIG_DWORD_INFO(INTERNAL_TagAssemblyNames, W("TagAssemblyNames"), 0, "Enable CAssemblyName::_tag field for more convenient debugging.") RETAIL_CONFIG_STRING_INFO(INTERNAL_WinMDPath, W("WinMDPath"), "Path for Windows WinMD files") /// @@ -522,20 +515,17 @@ CONFIG_DWORD_INFO_EX(INTERNAL_SymDiffDump, W("SymDiffDump"), 0, "Used to create /// NGEN /// RETAIL_CONFIG_STRING_INFO_EX(EXTERNAL_NGen_JitName, W("NGen_JitName"), "", CLRConfig::REGUTIL_default) -RETAIL_CONFIG_DWORD_INFO_EX(UNSUPPORTED_NGenFramed, W("NGenFramed"), -1, "Same as JitFramed, but for ngen", CLRConfig::REGUTIL_default) +RETAIL_CONFIG_DWORD_INFO_EX(UNSUPPORTED_NGenFramed, W("NGenFramed"), (DWORD)-1, "Same as JitFramed, but for ngen", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO_EX(INTERNAL_NGenOnlyOneMethod, W("NGenOnlyOneMethod"), 0, "", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO_EX(INTERNAL_NgenOrder, W("NgenOrder"), 0, "", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO_EX(INTERNAL_partialNGenStress, W("partialNGenStress"), 0, "", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO_EX(INTERNAL_ZapDoNothing, W("ZapDoNothing"), 0, "", CLRConfig::REGUTIL_default) -RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_HardPrejitEnabled, W("HardPrejitEnabled"), "") -RETAIL_CONFIG_DWORD_INFO_EX(INTERNAL_EnableHardbinding, W("EnableHardbinding"), 0, "Enables the use of hardbinding", CLRConfig::REGUTIL_default) -CONFIG_DWORD_INFO_EX(INTERNAL_NgenForceFailureMask, W("NgenForceFailureMask"), -1, "Bitmask used to control which locations will check and raise the failure (defaults to bits: -1)", CLRConfig::REGUTIL_default) +CONFIG_DWORD_INFO_EX(INTERNAL_NgenForceFailureMask, W("NgenForceFailureMask"), (DWORD)-1, "Bitmask used to control which locations will check and raise the failure (defaults to bits: -1)", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO_EX(INTERNAL_NgenForceFailureCount, W("NgenForceFailureCount"), 0, "If set to >0 and we have IBC data we will force a failure after we reference an IBC data item times", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO_EX(INTERNAL_NgenForceFailureKind, W("NgenForceFailureKind"), 1, "If set to 1, We will throw a TypeLoad exception; If set to 2, We will cause an A/V", CLRConfig::REGUTIL_default) RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_NGenEnableCreatePdb, W("NGenEnableCreatePdb"), 0, "If set to >0 ngen.exe displays help on, recognizes createpdb in the command line") RETAIL_CONFIG_DWORD_INFO(INTERNAL_NGenSimulateDiskFull, W("NGenSimulateDiskFull"), 0, "If set to 1, ngen will throw a Disk full exception in ZapWriter.cpp:Save()") -RETAIL_CONFIG_DWORD_INFO(INTERNAL_PartialNGen, W("PartialNGen"), -1, "Generate partial NGen images") -RETAIL_CONFIG_DWORD_INFO(INTERNAL_NgenAllowMscorlibSoftbind, W("NgenAllowMscorlibSoftbind"), 0, "Disable forced hard-binding to mscorlib") +RETAIL_CONFIG_DWORD_INFO(INTERNAL_PartialNGen, W("PartialNGen"), (DWORD)-1, "Generate partial NGen images") CONFIG_DWORD_INFO(INTERNAL_NoASLRForNgen, W("NoASLRForNgen"), 0, "Turn off IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE bit in generated ngen images. Makes nidump output repeatable from run to run.") @@ -543,11 +533,6 @@ CONFIG_DWORD_INFO(INTERNAL_NoASLRForNgen, W("NoASLRForNgen"), 0, "Turn off IMAGE RETAIL_CONFIG_DWORD_INFO(INTERNAL_CrossGenAssumeInputSigned, W("CrossGenAssumeInputSigned"), 1, "CrossGen should assume that its input assemblies will be signed before deployment") #endif -/// -/// Performance -/// -RETAIL_CONFIG_STRING_INFO(EXTERNAL_PerformanceScenario, W("performanceScenario"), "Activates a set of workload-specific default values for performance settings") - /// /// Profiling API / ETW /// @@ -562,27 +547,25 @@ RETAIL_CONFIG_STRING_INFO_EX(EXTERNAL_CORECLR_PROFILER_PATH, W("CORECLR_PROFILER RETAIL_CONFIG_STRING_INFO_EX(EXTERNAL_CORECLR_PROFILER_PATH_32, W("CORECLR_PROFILER_PATH_32"), "CoreCLR only: Specifies the path to the DLL of profiler to load into currently running 32 process", CLRConfig::DontPrependCOMPlus_) RETAIL_CONFIG_STRING_INFO_EX(EXTERNAL_CORECLR_PROFILER_PATH_64, W("CORECLR_PROFILER_PATH_64"), "CoreCLR only: Specifies the path to the DLL of profiler to load into currently running 64 process", CLRConfig::DontPrependCOMPlus_) RETAIL_CONFIG_STRING_INFO_EX(EXTERNAL_ProfAPI_ProfilerCompatibilitySetting, W("ProfAPI_ProfilerCompatibilitySetting"), "Specifies the profiler loading policy (the default is not to load a V2 profiler in V4)", CLRConfig::REGUTIL_default | CLRConfig::TrimWhiteSpaceFromStringValue) -RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_AttachThreadAlwaysOn, W("AttachThreadAlwaysOn"), "Forces profapi attach thread to be created on startup, instead of on-demand.") -RETAIL_CONFIG_DWORD_INFO(EXTERNAL_MsBetweenAttachCheck, W("MsBetweenAttachCheck"), 500, "") -RETAIL_CONFIG_DWORD_INFO(EXTERNAL_ProfAPIMaxWaitForTriggerMs, W("ProfAPIMaxWaitForTriggerMs"), 5*60*1000, "Timeout in ms for profilee to wait for each blocking operation performed by trigger app.") RETAIL_CONFIG_DWORD_INFO(EXTERNAL_ProfAPI_DetachMinSleepMs, W("ProfAPI_DetachMinSleepMs"), 0, "The minimum time, in milliseconds, the CLR will wait before checking whether a profiler that is in the process of detaching is ready to be unloaded.") RETAIL_CONFIG_DWORD_INFO(EXTERNAL_ProfAPI_DetachMaxSleepMs, W("ProfAPI_DetachMaxSleepMs"), 0, "The maximum time, in milliseconds, the CLR will wait before checking whether a profiler that is in the process of detaching is ready to be unloaded.") +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_ProfAPI_RejitOnAttach, W("ProfApi_RejitOnAttach"), 1, "Enables the ability for profilers to rejit methods on attach.") +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_ProfAPI_InliningTracking, W("ProfApi_InliningTracking"), 1, "Enables the runtime's tracking of inlining for profiler ReJIT.") CONFIG_DWORD_INFO(INTERNAL_ProfAPI_EnableRejitDiagnostics, W("ProfAPI_EnableRejitDiagnostics"), 0, "Enable extra dumping to stdout of rejit structures") -RETAIL_CONFIG_DWORD_INFO(EXTERNAL_ProfAPI_AttachProfilerMinTimeoutInMs, W("ProfAPI_AttachProfilerMinTimeoutInMs"), 10*1000, "Timeout in ms for the minimum time out value of AttachProfiler") CONFIG_DWORD_INFO(INTERNAL_ProfAPIFault, W("ProfAPIFault"), 0, "Test-only bitmask to inject various types of faults in the profapi code") CONFIG_DWORD_INFO(INTERNAL_TestOnlyAllowedEventMask, W("TestOnlyAllowedEventMask"), 0, "Test-only bitmask to allow profiler tests to override CLR enforcement of COR_PRF_ALLOWABLE_AFTER_ATTACH and COR_PRF_MONITOR_IMMUTABLE") CONFIG_DWORD_INFO(INTERNAL_TestOnlyEnableICorProfilerInfo, W("ProfAPI_TestOnlyEnableICorProfilerInfo"), 0, "Test-only flag to allow attaching profiler tests to call ICorProfilerInfo interface, which would otherwise be disallowed for attaching profilers") CONFIG_DWORD_INFO(INTERNAL_TestOnlyEnableObjectAllocatedHook, W("TestOnlyEnableObjectAllocatedHook"), 0, "Test-only flag that forces CLR to initialize on startup as if ObjectAllocated callback were requested, to enable post-attach ObjectAllocated functionality.") CONFIG_DWORD_INFO(INTERNAL_TestOnlyEnableSlowELTHooks, W("TestOnlyEnableSlowELTHooks"), 0, "Test-only flag that forces CLR to initialize on startup as if slow-ELT were requested, to enable post-attach ELT functionality.") -RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_PreVistaETWEnabled, W("ETWEnabled"), 0, "This flag is used on OSes < Vista to enable/disable ETW. It is disabled by default", CLRConfig::REGUTIL_default) -RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_VistaAndAboveETWEnabled, W("ETWEnabled"), 1, "This flag is used on OSes >= Vista to enable/disable ETW. It is enabled by default", CLRConfig::REGUTIL_default) RETAIL_CONFIG_STRING_INFO_EX(UNSUPPORTED_ETW_ObjectAllocationEventsPerTypePerSec, W("ETW_ObjectAllocationEventsPerTypePerSec"), "Desired number of GCSampledObjectAllocation ETW events to be logged per type per second. If 0, then the default built in to the implementation for the enabled event (e.g., High, Low), will be used.", CLRConfig::REGUTIL_default) RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_ProfAPI_ValidateNGENInstrumentation, W("ProfAPI_ValidateNGENInstrumentation"), 0, "This flag enables additional validations when using the IMetaDataEmit APIs for NGEN'ed images to ensure only supported edits are made.") #ifdef FEATURE_PERFMAP RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_PerfMapEnabled, W("PerfMapEnabled"), 0, "This flag is used on Linux to enable writing /tmp/perf-$pid.map. It is disabled by default", CLRConfig::REGUTIL_default) RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_PerfMapIgnoreSignal, W("PerfMapIgnoreSignal"), 0, "When perf map is enabled, this option will configure the specified signal to be accepted and ignored as a marker in the perf logs. It is disabled by default", CLRConfig::REGUTIL_default) +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_PerfMapShowOptimizationTiers, W("PerfMapShowOptimizationTiers"), 1, "Shows optimization tiers in the perf map for methods, as part of the symbol name. Useful for seeing separate stack frames for different optimization tiers of each method.") +RETAIL_CONFIG_STRING_INFO(EXTERNAL_NativeImagePerfMapFormat, W("NativeImagePerfMapFormat"), "Specifies the format of native image perfmap files generated by crossgen. Valid options are RVA or OFFSET.") #endif RETAIL_CONFIG_STRING_INFO(EXTERNAL_StartupDelayMS, W("StartupDelayMS"), "") @@ -609,6 +592,7 @@ RETAIL_CONFIG_DWORD_INFO(INTERNAL_ThreadSuspendInjection, W("INTERNAL_ThreadSusp /// /// Thread (miscellaneous) /// +RETAIL_CONFIG_DWORD_INFO(INTERNAL_DefaultStackSize, W("DefaultStackSize"), 0, "Stack size to use for new VM threads when thread is created with default stack size (dwStackSize == 0).") RETAIL_CONFIG_DWORD_INFO(INTERNAL_Thread_DeadThreadCountThresholdForGCTrigger, W("Thread_DeadThreadCountThresholdForGCTrigger"), 75, "In the heuristics to clean up dead threads, this threshold must be reached before triggering a GC will be considered. Set to 0 to disable triggering a GC based on dead threads.") RETAIL_CONFIG_DWORD_INFO(INTERNAL_Thread_DeadThreadGCTriggerPeriodMilliseconds, W("Thread_DeadThreadGCTriggerPeriodMilliseconds"), 1000 * 60 * 30, "In the heuristics to clean up dead threads, this much time must have elapsed since the previous max-generation GC before triggering another GC will be considered") @@ -645,20 +629,25 @@ RETAIL_CONFIG_DWORD_INFO(INTERNAL_HillClimbing_SampleIntervalLow, RETAIL_CONFIG_DWORD_INFO(INTERNAL_HillClimbing_SampleIntervalHigh, W("HillClimbing_SampleIntervalHigh"), 200, ""); RETAIL_CONFIG_DWORD_INFO(INTERNAL_HillClimbing_GainExponent, W("HillClimbing_GainExponent"), 200, "The exponent to apply to the gain, times 100. 100 means to use linear gain, higher values will enhance large moves and damp small ones."); - /// /// Tiered Compilation /// #ifdef FEATURE_TIERED_COMPILATION -RETAIL_CONFIG_DWORD_INFO(EXTERNAL_TieredCompilation, W("TieredCompilation"), 0, "Enables tiered compilation") -RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_LEGACY_TieredCompilation, W("EXPERIMENTAL_TieredCompilation"), 0, "Deprecated - Use COMPLUS_TieredCompilation") -RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_TieredCompilation_Tier1CallCountThreshold, W("TieredCompilation_Tier1CallCountThreshold"), 30, "Number of times a method must be called after which it is promoted to tier 1.") -RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_TieredCompilation_Tier1CallCountingDelayMs, W("TieredCompilation_Tier1CallCountingDelayMs"), 100, "Delay in milliseconds since process startup or the last tier 0 JIT before call counting begins for tier 1 promotion.") - -RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_TieredCompilation_Test_CallCounting, W("TieredCompilation_Test_CallCounting"), 1, "Enabled by default (only activates when TieredCompilation is also enabled). If disabled immediately backpatches prestub, and likely prevents any tier1 promotion") -RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_TieredCompilation_Test_OptimizeTier0, W("TieredCompilation_Test_OptimizeTier0"), 0, "Use optimized codegen (normally used by tier1) in tier0") +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_TieredCompilation, W("TieredCompilation"), 1, "Enables tiered compilation") +RETAIL_CONFIG_DWORD_INFO(EXTERNAL_TC_QuickJit, W("TC_QuickJit"), 1, "For methods that would be jitted, enable using quick JIT when appropriate.") +RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_TC_QuickJitForLoops, W("TC_QuickJitForLoops"), 0, "When quick JIT is enabled, quick JIT may also be used for methods that contain loops.") +RETAIL_CONFIG_DWORD_INFO(INTERNAL_TC_CallCountThreshold, W("TC_CallCountThreshold"), 30, "Number of times a method must be called in tier 0 after which it is promoted to the next tier.") +RETAIL_CONFIG_DWORD_INFO(INTERNAL_TC_CallCountingDelayMs, W("TC_CallCountingDelayMs"), 100, "A perpetual delay in milliseconds that is applied call counting in tier 0 and jitting at higher tiers, while there is startup-like activity.") +RETAIL_CONFIG_DWORD_INFO(INTERNAL_TC_DelaySingleProcMultiplier, W("TC_DelaySingleProcMultiplier"), 10, "Multiplier for TC_CallCountingDelayMs that is applied on a single-processor machine or when the process is affinitized to a single processor.") +RETAIL_CONFIG_DWORD_INFO(INTERNAL_TC_CallCounting, W("TC_CallCounting"), 1, "Enabled by default (only activates when TieredCompilation is also enabled). If disabled immediately backpatches prestub, and likely prevents any promotion to higher tiers") #endif +/// +/// Entry point slot backpatch +/// +#ifndef CROSSGEN_COMPILE +RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_BackpatchEntryPointSlots, W("BackpatchEntryPointSlots"), 1, "Indicates whether to enable entry point slot backpatching, for instance to avoid making virtual calls through a precode and instead to patch virtual slots for a method when its entry point changes.") +#endif /// /// TypeLoader @@ -696,15 +685,8 @@ RETAIL_CONFIG_STRING_INFO(EXTERNAL_ZapRequireList, W("ZapRequireList"), "") RETAIL_CONFIG_STRING_INFO_EX(EXTERNAL_ZapSet, W("ZapSet"), "", CLRConfig::REGUTIL_default) #ifdef FEATURE_LAZY_COW_PAGES - -#ifdef FEATURE_WINDOWSPHONE RETAIL_CONFIG_DWORD_INFO(INTERNAL_ZapLazyCOWPagesEnabled, W("ZapLazyCOWPagesEnabled"), 1, ""); -#else //FEATURE_WINDOWSPHONE -RETAIL_CONFIG_DWORD_INFO(INTERNAL_ZapLazyCOWPagesEnabled, W("ZapLazyCOWPagesEnabled"), 0, ""); -#endif //FEATURE_WINDOWSPHONE - CONFIG_DWORD_INFO(INTERNAL_DebugAssertOnMissedCOWPage, W("DebugAssertOnMissedCOWPage"), 1, ""); - #endif //FEATURE_LAZY_COW_PAGES RETAIL_CONFIG_DWORD_INFO(EXTERNAL_ReadyToRun, W("ReadyToRun"), 1, "Enable/disable use of ReadyToRun native code") // On by default for CoreCLR @@ -721,11 +703,6 @@ RETAIL_CONFIG_STRING_INFO(INTERNAL_EventNameFilter, W("EventNameFilter"), "") /// Interop /// CONFIG_DWORD_INFO_DIRECT_ACCESS(INTERNAL_ExposeExceptionsInCOM, W("ExposeExceptionsInCOM"), "") -RETAIL_CONFIG_DWORD_INFO(EXTERNAL_ComInsteadOfManagedRemoting, W("PreferComInsteadOfManagedRemoting"), 0, "When communicating with a cross app domain CCW, use COM instead of managed remoting.") -CONFIG_DWORD_INFO(INTERNAL_GenerateStubForHost, W("GenerateStubForHost"), 0, "Forces the host hook stub to be built for all unmanaged calls, even when not running hosted.") -RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_legacyComHierarchyVisibility, W("legacyComHierarchyVisibility"), "") -RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_legacyComVTableLayout, W("legacyComVTableLayout"), "") -RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_newComVTableLayout, W("newComVTableLayout"), "") RETAIL_CONFIG_STRING_INFO_EX(EXTERNAL_PInvokeInline, W("PInvokeInline"), "", CLRConfig::REGUTIL_default) RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_InteropValidatePinnedObjects, W("InteropValidatePinnedObjects"), 0, "After returning from a managed-to-unmanaged interop call, validate GC heap around objects pinned by IL stubs.") RETAIL_CONFIG_DWORD_INFO(EXTERNAL_InteropLogArguments, W("InteropLogArguments"), 0, "Log all pinned arguments passed to an interop call") @@ -738,9 +715,19 @@ RETAIL_CONFIG_DWORD_INFO(EXTERNAL_AllowDComReflection, W("AllowDComReflection"), // EventPipe // RETAIL_CONFIG_DWORD_INFO(INTERNAL_EnableEventPipe, W("EnableEventPipe"), 0, "Enable/disable event pipe. Non-zero values enable tracing.") -RETAIL_CONFIG_STRING_INFO(INTERNAL_EventPipeOutputFile, W("EventPipeOutputFile"), "The full path including file name for the trace file that will be written when COMPlus_EnableEventPipe&=1") +RETAIL_CONFIG_DWORD_INFO(INTERNAL_EventPipeNetTraceFormat, W("EventPipeNetTraceFormat"), 1, "Enable/disable using the newer nettrace file format.") +RETAIL_CONFIG_STRING_INFO(INTERNAL_EventPipeOutputPath, W("EventPipeOutputPath"), "The full path excluding file name for the trace file that will be written when COMPlus_EnableEventPipe=1") RETAIL_CONFIG_STRING_INFO(INTERNAL_EventPipeConfig, W("EventPipeConfig"), "Configuration for EventPipe.") RETAIL_CONFIG_DWORD_INFO(INTERNAL_EventPipeRundown, W("EventPipeRundown"), 1, "Enable/disable eventpipe rundown.") +RETAIL_CONFIG_DWORD_INFO(INTERNAL_EventPipeCircularMB, W("EventPipeCircularMB"), 1024, "The EventPipe circular buffer size in megabytes.") +RETAIL_CONFIG_DWORD_INFO(INTERNAL_EventPipeProcNumbers, W("EventPipeProcNumbers"), 0, "Enable/disable capturing processor numbers in EventPipe event headers") + +// +// LTTng +// +RETAIL_CONFIG_STRING_INFO(INTERNAL_LTTngConfig, W("LTTngConfig"), "Configuration for LTTng.") +RETAIL_CONFIG_DWORD_INFO(UNSUPORTED_LTTng, W("LTTng"), 1, "If COMPlus_LTTng is set to 0, this will prevent the LTTng library from being loaded at runtime") + #ifdef FEATURE_GDBJIT /// @@ -782,7 +769,6 @@ CONFIG_DWORD_INFO_EX(INTERNAL_ForceRelocs, W("ForceRelocs"), 0, "", CLRConfig::R CONFIG_DWORD_INFO_DIRECT_ACCESS(INTERNAL_GenerateLongJumpDispatchStubRatio, W("GenerateLongJumpDispatchStubRatio"), "Useful for testing VSD on AMD64") CONFIG_DWORD_INFO_EX(INTERNAL_HashStack, W("HashStack"), 0, "", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO(INTERNAL_HostManagerConfig, W("HostManagerConfig"), (DWORD)-1, "") -CONFIG_DWORD_INFO(INTERNAL_HostTestADUnload, W("HostTestADUnload"), 0, "Allows setting Rude unload as default") CONFIG_DWORD_INFO(INTERNAL_HostTestThreadAbort, W("HostTestThreadAbort"), 0, "") RETAIL_CONFIG_DWORD_INFO_EX(UNSUPPORTED_IgnoreDllMainReturn, W("IgnoreDllMainReturn"), 0, "Don't check the return value of DllMain if this is set", CLRConfig::ConfigFile_ApplicationFirst) CONFIG_STRING_INFO(INTERNAL_InvokeHalt, W("InvokeHalt"), "Throws an assert when the given method is invoked through reflection.") @@ -795,7 +781,6 @@ CONFIG_DWORD_INFO(INTERNAL_MessageDebugOut, W("MessageDebugOut"), 0, "") CONFIG_DWORD_INFO_EX(INTERNAL_MscorsnLogging, W("MscorsnLogging"), 0, "Enables strong name logging", CLRConfig::REGUTIL_default) RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_NativeImageRequire, W("NativeImageRequire"), 0, "", CLRConfig::REGUTIL_default) CONFIG_DWORD_INFO_EX(INTERNAL_NestedEhOom, W("NestedEhOom"), 0, "", CLRConfig::REGUTIL_default) -RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_NO_SO_NOT_MAINLINE, W("NO_SO_NOT_MAINLINE"), 0, "", CLRConfig::REGUTIL_default) #define INTERNAL_NoGuiOnAssert_Default 1 RETAIL_CONFIG_DWORD_INFO_EX(INTERNAL_NoGuiOnAssert, W("NoGuiOnAssert"), INTERNAL_NoGuiOnAssert_Default, "", CLRConfig::REGUTIL_default) RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_NoProcedureSplitting, W("NoProcedureSplitting"), 0, "", CLRConfig::REGUTIL_default) @@ -820,7 +805,6 @@ RETAIL_CONFIG_STRING_INFO_DIRECT_ACCESS(UNSUPPORTED_ShimDatabaseVersion, W("Shim RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_SleepOnExit, W("SleepOnExit"), 0, "Used for lrak detection. I'd say deprecated by umdh.") CONFIG_DWORD_INFO_DIRECT_ACCESS(INTERNAL_StubLinkerUnwindInfoVerificationOn, W("StubLinkerUnwindInfoVerificationOn"), "") RETAIL_CONFIG_DWORD_INFO_EX(UNSUPPORTED_SuccessExit, W("SuccessExit"), 0, "", CLRConfig::REGUTIL_default) -CONFIG_DWORD_INFO(INTERNAL_SupressAllowUntrustedCallerChecks, W("SupressAllowUntrustedCallerChecks"), 0, "Disable APTCA") RETAIL_CONFIG_DWORD_INFO_DIRECT_ACCESS(EXTERNAL_SymbolReadingPolicy, W("SymbolReadingPolicy"), "Specifies when PDBs may be read") RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_TestDataConsistency, W("TestDataConsistency"), FALSE, "Allows ensuring the left side is not holding locks (and may thus be in an inconsistent state) when inspection occurs") RETAIL_CONFIG_DWORD_INFO_EX(EXTERNAL_ThreadGuardPages, W("ThreadGuardPages"), 0, "", CLRConfig::REGUTIL_default) diff --git a/lib/coreclr/src/inc/clrhost.h b/lib/coreclr/src/inc/clrhost.h index 9fe978f95a86..88a917d59f8c 100644 --- a/lib/coreclr/src/inc/clrhost.h +++ b/lib/coreclr/src/inc/clrhost.h @@ -22,6 +22,7 @@ #include "predeftlsslot.h" #include "safemath.h" #include "debugreturn.h" +#include "yieldprocessornormalized.h" #if !defined(_DEBUG_IMPL) && defined(_DEBUG) && !defined(DACCESS_COMPILE) #define _DEBUG_IMPL 1 @@ -44,7 +45,7 @@ // #ifdef _DEBUG -#define LAST_ERROR_TRASH_VALUE 42424 +#define LAST_ERROR_TRASH_VALUE 42424 /* = 0xa5b8 */ #define TRASH_LASTERROR \ SetLastError(LAST_ERROR_TRASH_VALUE) @@ -89,7 +90,6 @@ inline void ClrFlsIncrementValue(DWORD slot, int increment) STATIC_CONTRACT_GC_NOTRIGGER; STATIC_CONTRACT_MODE_ANY; STATIC_CONTRACT_CANNOT_TAKE_LOCK; - STATIC_CONTRACT_SO_TOLERANT; _ASSERTE(increment != 0); @@ -107,8 +107,6 @@ inline void ClrFlsIncrementValue(DWORD slot, int increment) { BEGIN_PRESERVE_LAST_ERROR; - ANNOTATION_VIOLATION(SOToleranceViolation); - IExecutionEngine * pEngine = GetExecutionEngine(); value = (size_t) pEngine->TLS_GetValue(slot); @@ -126,7 +124,6 @@ inline void * ClrFlsGetValue (DWORD slot) STATIC_CONTRACT_GC_NOTRIGGER; STATIC_CONTRACT_MODE_ANY; STATIC_CONTRACT_CANNOT_TAKE_LOCK; - STATIC_CONTRACT_SO_TOLERANT; void **block = (*__ClrFlsGetBlock)(); if (block != NULL) @@ -135,8 +132,6 @@ inline void * ClrFlsGetValue (DWORD slot) } else { - ANNOTATION_VIOLATION(SOToleranceViolation); - void * value = GetExecutionEngine()->TLS_GetValue(slot); return value; } @@ -148,7 +143,6 @@ inline BOOL ClrFlsCheckValue(DWORD slot, void ** pValue) STATIC_CONTRACT_NOTHROW; STATIC_CONTRACT_GC_NOTRIGGER; STATIC_CONTRACT_MODE_ANY; - STATIC_CONTRACT_SO_TOLERANT; #ifdef _DEBUG *pValue = ULongToPtr(0xcccccccc); @@ -161,7 +155,6 @@ inline BOOL ClrFlsCheckValue(DWORD slot, void ** pValue) } else { - ANNOTATION_VIOLATION(SOToleranceViolation); BOOL result = GetExecutionEngine()->TLS_CheckValue(slot, pValue); return result; } @@ -173,10 +166,9 @@ inline void ClrFlsSetValue(DWORD slot, void *pData) STATIC_CONTRACT_GC_NOTRIGGER; STATIC_CONTRACT_MODE_ANY; STATIC_CONTRACT_CANNOT_TAKE_LOCK; - STATIC_CONTRACT_SO_TOLERANT; - void **block = (*__ClrFlsGetBlock)(); - if (block != NULL) + void **block = (*__ClrFlsGetBlock)(); + if (block != NULL) { block[slot] = pData; } @@ -184,15 +176,17 @@ inline void ClrFlsSetValue(DWORD slot, void *pData) { BEGIN_PRESERVE_LAST_ERROR; - ANNOTATION_VIOLATION(SOToleranceViolation); GetExecutionEngine()->TLS_SetValue(slot, pData); END_PRESERVE_LAST_ERROR; } } -typedef LPVOID (*FastAllocInProcessHeapFunc)(DWORD dwFlags, SIZE_T dwBytes); -extern FastAllocInProcessHeapFunc __ClrAllocInProcessHeap; +#ifndef SELF_NO_HOST +LPVOID EEHeapAllocInProcessHeap(DWORD dwFlags, SIZE_T dwBytes); +BOOL EEHeapFreeInProcessHeap(DWORD dwFlags, LPVOID lpMem); +#endif + inline LPVOID ClrAllocInProcessHeap(DWORD dwFlags, S_SIZE_T dwBytes) { STATIC_CONTRACT_SUPPORTS_DAC_HOST_ONLY; @@ -202,7 +196,7 @@ inline LPVOID ClrAllocInProcessHeap(DWORD dwFlags, S_SIZE_T dwBytes) } #ifndef SELF_NO_HOST - return __ClrAllocInProcessHeap(dwFlags, dwBytes.Value()); + return EEHeapAllocInProcessHeap(dwFlags, dwBytes.Value()); #else #undef HeapAlloc #undef GetProcessHeap @@ -215,13 +209,11 @@ inline LPVOID ClrAllocInProcessHeap(DWORD dwFlags, S_SIZE_T dwBytes) #endif } -typedef BOOL (*FastFreeInProcessHeapFunc)(DWORD dwFlags, LPVOID lpMem); -extern FastFreeInProcessHeapFunc __ClrFreeInProcessHeap; inline BOOL ClrFreeInProcessHeap(DWORD dwFlags, LPVOID lpMem) { STATIC_CONTRACT_SUPPORTS_DAC_HOST_ONLY; #ifndef SELF_NO_HOST - return __ClrFreeInProcessHeap(dwFlags, lpMem); + return EEHeapFreeInProcessHeap(dwFlags, lpMem); #else #undef HeapFree #undef GetProcessHeap @@ -366,227 +358,6 @@ class Semaphore { HMODULE GetCLRModule (); -#ifndef FEATURE_NO_HOST -/* - Here we start the list of functions we want to deprecate. - We use a define to generate a linker error. - We must insure to include the header file that has the definition we are about - to deprecate before we use the #define otherwise we will run into a linker error - when legitimately undef'ing the function -*/ - -// -// following are windows deprecates -// -#include - -/* - If you are reading this, you have probably tracked down the fact that memory Alloc, - etc. don't work inside your DLL because you are using src\inc & src\utilcode - services. - You need to use the ClrXXX equivalent functions to properly guarantee your code - works correctly wrt hosting and others execution engine requirements. - Check the list of Clr functions above -*/ - -#define GetProcessHeap() \ - Dont_Use_GetProcessHeap() - -#define VirtualAlloc(lpAddress, dwSize, flAllocationType, flProtect) \ - Dont_Use_VirtualAlloc(lpAddress, dwSize, flAllocationType, flProtect) - -#define VirtualFree(lpAddress, dwSize, dwFreeType) \ - Dont_Use_VirtualFree(lpAddress, dwSize, dwFreeType) - -#define VirtualQuery(lpAddress, lpBuffer, dwLength) \ - Dont_Use_VirtualQuery(lpAddress, lpBuffer, dwLength) - -#define VirtualProtect(lpAddress, dwSize, flNewProtect, lpflOldProtect) \ - Dont_Use_VirtualProtect(lpAddress, dwSize, flNewProtect, lpflOldProtect) - -#define HeapCreate(flOptions, dwInitialSize, dwMaximumSize) \ - Dont_Use_HeapCreate(flOptions, dwInitialSize, dwMaximumSize) - -#define HeapDestroy(hHeap) \ - Dont_Use_HeapDestroy(hHeap) - -#define HeapAlloc(hHeap, dwFlags, dwBytes) \ - Dont_Use_HeapAlloc(hHeap, dwFlags, dwBytes) - -#define HeapReAlloc(hHeap, dwFlags, lpMem, dwBytes) \ - Dont_Use_HeapReAlloc(hHeap, dwFlags, lpMem, dwBytes) - -#define HeapFree(hHeap, dwFlags, lpMem) \ - Dont_Use_HeapFree(hHeap, dwFlags, lpMem) - -#define HeapValidate(hHeap, dwFlags, lpMem) \ - Dont_Use_HeapValidate(hHeap, dwFlags, lpMem) - -#define LocalAlloc(uFlags, uBytes) \ - Dont_Use_LocalAlloc(uFlags, uBytes) - -#define LocalFree(hMem) \ - Dont_Use_LocalFree(hMem) - -#define LocalReAlloc(hMem, uBytes, uFlags) \ - Dont_Use_LocalReAlloc(hMem, uBytes, uFlags) - -#define GlobalAlloc(uFlags, dwBytes) \ - Dont_Use_GlobalAlloc(uFlags, dwBytes) - -#define GlobalFree(hMem) \ - Dont_Use_GlobalFree(hMem) - -//#define ExitThread Dont_Use_ExitThread - -#define ExitProcess Dont_Use_ExitProcess - -/* - If you are reading this, you have probably tracked down the fact that TlsAlloc, - etc. don't work inside your DLL because you are using src\inc & src\utilcode - services. - - This is because the CLR can operate in a fiberized environment under host control. - When this is the case, logical thread local storage must be fiber-relative rather - than thread-relative. - - Although the OS provides FLS routines on .NET Server, it does not yet provide - those services on WinXP or Win2K. So you cannot just use fiber routines from - the OS. - - Instead, you must use the ClrFls_ routines described above. However, there are - some important differences between these EE-provided services and the OS TLS - services that you are used to: - - 1) There is no TlsAlloc/FlsAlloc equivalent. You must statically describe - your needs via the PredefinedTlsSlots below. If you have dynamic requirements, - you should give yourself a single static slot and then build your dynamic - requirements on top of this. The lack of a dynamic API is a deliberate - choice on my part, rather than lack of time. - - 2) You can provide a cleanup routine, which we will call on your behalf. However, - this can be called on a different thread than the "thread" (fiber or thread) - which holds the data. It can be called after that thread has actually been - terminated. It can be called before you see a DLL_THREAD_DETACH on your - physical thread. The circumstances vary based on whether the process is hosted - and based on whether TS_WeOwn is set on the internal Thread object. Make - no assumptions here. -*/ -#define TlsAlloc() \ - Dont_Use_TlsAlloc() - -#define TlsSetValue(dwTlsIndex, lpTlsValue) \ - Dont_Use_TlsSetValue(dwTlsIndex, lpTlsValue) - -#define TlsGetValue(dwTlsIndex) \ - Dont_Use_TlsGetValue(dwTlsIndex) - -#define TlsFree(dwTlsIndex) \ - Dont_Use_TlsFree(dwTlsIndex) - - -/* - If you are reading this, you have probably tracked down the fact that synchronization objects - and critical sections don't work inside your DLL because you are using src\inc & src\utilcode services. - Please refer to the ClrXXX functions described above to make proper use of synchronization obejct, etc. - - Also it's extremely useful to look at the Holder classes defined above. - Those classes provide a nice encapsulation for synchronization object that allows automatic release of locks. -*/ -#define InitializeCriticalSection(lpCriticalSection) \ - Dont_Use_InitializeCriticalSection(lpCriticalSection) - -#define InitializeCriticalSectionAndSpinCount(lpCriticalSection, dwSpinCount) \ - Dont_Use_InitializeCriticalSectionAndSpinCount(lpCriticalSection, dwSpinCount) - -#define DeleteCriticalSection(lpCriticalSection) \ - Dont_Use_DeleteCriticalSection(lpCriticalSection) - -#define EnterCriticalSection(lpCriticalSection) \ - Dont_Use_EnterCriticalSection(lpCriticalSection) - -#define TryEnterCriticalSection(lpCriticalSection) \ - Dont_Use_TryEnterCriticalSection(lpCriticalSection) - -#define LeaveCriticalSection(lpCriticalSection) \ - Dont_Use_LeaveCriticalSection(lpCriticalSection) - -#ifdef CreateEvent -#undef CreateEvent -#endif -#define CreateEvent(lpEventAttributes, bManualReset, bInitialState, lpName) \ - Dont_Use_CreateEvent(lpEventAttributes, bManualReset, bInitialState, lpName) - -#ifdef OpenEvent -#undef OpenEvent -#endif -#define OpenEvent(dwDesiredAccess, bInheritHandle, lpName) \ - Dont_Use_OpenEvent(dwDesiredAccess, bInheritHandle, lpName) - -#define ResetEvent(hEvent) \ - Dont_Use_ResetEvent(hEvent) - -#define SetEvent(hEvent) \ - Dont_Use_SetEvent(hEvent) - -#define PulseEvent(hEvent) \ - Dont_Use_PulseEvent(hEvent) - -#ifdef CreateSemaphore -#undef CreateSemaphore -#endif -#define CreateSemaphore(lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName) \ - Dont_Use_CreateSemaphore(lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName) - -#ifdef OpenSemaphore -#undef OpenSemaphore -#endif -#define OpenSemaphore(dwDesiredAccess, bInheritHandle, lpName) \ - Dont_Use_OpenSemaphore(dwDesiredAccess, bInheritHandle, lpName) - -#define ReleaseSemaphore(hSemaphore, lReleaseCount, lpPreviousCount) \ - Dont_Use_ReleaseSemaphore(hSemaphore, lReleaseCount, lpPreviousCount) - -#ifdef Sleep -#undef Sleep -#endif -#define Sleep(dwMilliseconds) \ - Dont_Use_Sleep(dwMilliseconds) - -#ifdef SleepEx -#undef SleepEx -#endif -#define SleepEx(dwMilliseconds,bAlertable) \ - Dont_Use_SleepEx(dwMilliseconds,bAlertable) - -// -// following are clib deprecates -// -#include -#include - -#ifdef malloc -#undef malloc -#endif - -#define _CRT_EXCEPTION_NO_MALLOC -#define malloc(size) \ - Dont_Use_malloc(size) - -#ifdef realloc -#undef realloc -#endif -#define realloc(memblock, size) \ - Dont_Use_realloc(memblock, size) - -#ifdef free -#undef free -#endif -#define free(memblock) \ - Dont_Use_free(memblock) - -#endif //!FEATURE_NO_HOST - extern void IncCantAllocCount(); extern void DecCantAllocCount(); @@ -618,6 +389,4 @@ inline bool IsInCantAllocRegion () // for stress log the rule is more restrict, we have to check the global counter too extern BOOL IsInCantAllocStressLogRegion(); -#include "genericstackprobe.inl" - #endif diff --git a/lib/coreclr/src/inc/clrnt.h b/lib/coreclr/src/inc/clrnt.h index 487a370d024e..135666602492 100644 --- a/lib/coreclr/src/inc/clrnt.h +++ b/lib/coreclr/src/inc/clrnt.h @@ -907,7 +907,7 @@ FORCEINLINE ULONG RtlpGetFunctionEndAddress ( __in PT_RUNTIME_FUNCTION FunctionEntry, - __in ULONG ImageBase + __in TADDR ImageBase ) { ULONG FunctionLength; @@ -933,6 +933,7 @@ typedef struct _UNWIND_INFO { // dummy } UNWIND_INFO, *PUNWIND_INFO; +#if defined(FEATURE_PAL) || defined(_X86_) EXTERN_C NTSYSAPI VOID @@ -960,6 +961,7 @@ RtlVirtualUnwind ( __out PDWORD EstablisherFrame, __inout_opt PT_KNONVOLATILE_CONTEXT_POINTERS ContextPointers ); +#endif // FEATURE_PAL || _X86_ #define UNW_FLAG_NHANDLER 0x0 diff --git a/lib/coreclr/src/inc/clrprivbinderutil.h b/lib/coreclr/src/inc/clrprivbinderutil.h index d42f2b8d665e..023f72c6dfdd 100644 --- a/lib/coreclr/src/inc/clrprivbinderutil.h +++ b/lib/coreclr/src/inc/clrprivbinderutil.h @@ -115,26 +115,6 @@ namespace CLRPrivBinderUtil return _pWrapped->BindAssemblyByName(pAssemblyName, ppAssembly); } - //----------------------------------------------------------------------------------------------------------------- - // Forwards to wrapped binder. - STDMETHOD(VerifyBind)( - IAssemblyName *pAssemblyName, - ICLRPrivAssembly *pAssembly, - ICLRPrivAssemblyInfo *pAssemblyInfo) - { - WRAPPER_NO_CONTRACT; - return _pWrapped->VerifyBind(pAssemblyName, pAssembly, pAssemblyInfo); - } - - //--------------------------------------------------------------------------------------------- - // Forwards to wrapped binder. - STDMETHOD(GetBinderFlags)( - DWORD *pBinderFlags) - { - WRAPPER_NO_CONTRACT; - return _pWrapped->GetBinderFlags(pBinderFlags); - } - //----------------------------------------------------------------------------------------------------------------- // Forwards to wrapped binder. STDMETHOD(GetBinderID)( @@ -146,12 +126,12 @@ namespace CLRPrivBinderUtil //----------------------------------------------------------------------------------------------------------------- // Forwards to wrapped binder. - STDMETHOD(FindAssemblyBySpec)( - LPVOID pvAppDomain, - LPVOID pvAssemblySpec, - HRESULT * pResult, - ICLRPrivAssembly ** ppAssembly) - { STATIC_CONTRACT_WRAPPER; return _pWrapped->FindAssemblyBySpec(pvAppDomain, pvAssemblySpec, pResult, ppAssembly); } + STDMETHOD(GetLoaderAllocator)( + LPVOID * pLoaderAllocator) + { + WRAPPER_NO_CONTRACT; + return _pWrapped->GetLoaderAllocator(pLoaderAllocator); + } //----------------------------------------------------------------------------------------------------------------- // ICLRPrivAssembly method is unsupported. @@ -442,16 +422,6 @@ namespace CLRPrivBinderUtil CLRPrivBinderUtil::PublicKeyToken KeyToken; }; - //================================================================================================================= - HRESULT VerifyBind( - IAssemblyName *pRefAssemblyName, - ICLRPrivAssemblyInfo *pDefAssemblyInfo); - - //================================================================================================================= - HRESULT VerifyBind( - CLRPrivBinderUtil::AssemblyIdentity const & refIdentity, - CLRPrivBinderUtil::AssemblyIdentity const & defIdentity); - //================================================================================================= template struct CLRPrivResourceBase : diff --git a/lib/coreclr/src/inc/clrprivbinding.idl b/lib/coreclr/src/inc/clrprivbinding.idl index 5261f076d192..c30ed62d5e09 100644 --- a/lib/coreclr/src/inc/clrprivbinding.idl +++ b/lib/coreclr/src/inc/clrprivbinding.idl @@ -50,21 +50,6 @@ interface ICLRPrivBinder : IUnknown [in] IAssemblyName * pAssemblyName, [out, retval] ICLRPrivAssembly ** ppAssembly); - /********************************************************************************** - ** VerifyBind - **********************************************************************************/ - HRESULT VerifyBind( - [in] IAssemblyName * AssemblyName, - [in] ICLRPrivAssembly * pAssembly, - [in] ICLRPrivAssemblyInfo * pAssemblyInfo); - - /********************************************************************************** - ** GetBinderFlags - ** pBinderFlags, pointer to binder flags. - **********************************************************************************/ - HRESULT GetBinderFlags( - [out, retval] DWORD *pBinderFlags); - /********************************************************************************** ** GetBinderID ** pBinderId, pointer to binder id. The binder id has the following properties @@ -76,30 +61,16 @@ interface ICLRPrivBinder : IUnknown [out, retval] UINT_PTR *pBinderId); /********************************************************************************** - ** FindAssemblyBySpec -- if it has been previously bound, guarantees that the same - ** result will be returned; if previous result was successful, the bound - ** ICLRPrivAssembly will be returned, and if previous result was not successful - ** the same failure HRESULT will be assigned to *pResult. Returns failure HR if - ** identity has not been requested previously. + ** GetLoaderAllocator + ** Get LoaderAllocator for binders that contain it. For other binders, return + ** E_FAIL ** - ** pvAssemblySpec - the AssemblySpec identity to bind. - ** pResult - the result of the previous bind request. - ** ppAssembly - when successful, contains the corresponding assembly object. + ** pLoaderAllocator - when successful, constains the returned LoaderAllocator **********************************************************************************/ - HRESULT FindAssemblyBySpec( - [in] LPVOID pvAppDomain, - [in] LPVOID pvAssemblySpec, - [out] HRESULT * pResult, - [out] ICLRPrivAssembly ** ppAssembly); + HRESULT GetLoaderAllocator( + [out, retval] LPVOID * pLoaderAllocator); }; -enum CLR_PRIV_BINDER_FLAGS -{ - BINDER_NONE = 0x0, - BINDER_DESIGNER_BINDING_CONTEXT = 0x1, - BINDER_FINDASSEMBLYBYSPEC_REQUIRES_EXACT_MATCH = 0x2, -}; - /************************************************************************************** ** ASSEMBLY_IMAGE_TYPES - The set of assembly image formats. **************************************************************************************/ diff --git a/lib/coreclr/src/inc/clrtypes.h b/lib/coreclr/src/inc/clrtypes.h index b0b1fc23f400..15387aa79676 100644 --- a/lib/coreclr/src/inc/clrtypes.h +++ b/lib/coreclr/src/inc/clrtypes.h @@ -295,7 +295,6 @@ template T Min(T v1, T v2) { STATIC_CONTRACT_LEAF; - STATIC_CONTRACT_SO_TOLERANT; return v1 < v2 ? v1 : v2; } @@ -303,7 +302,6 @@ template T Max(T v1, T v2) { STATIC_CONTRACT_LEAF; - STATIC_CONTRACT_SO_TOLERANT; return v1 > v2 ? v1 : v2; } @@ -322,7 +320,6 @@ T Max(T v1, T v2) inline UINT AlignUp(UINT value, UINT alignment) { STATIC_CONTRACT_LEAF; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_SUPPORTS_DAC; return (value+alignment-1)&~(alignment-1); } @@ -331,7 +328,6 @@ inline UINT AlignUp(UINT value, UINT alignment) inline ULONG AlignUp(ULONG value, UINT alignment) { STATIC_CONTRACT_LEAF; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_SUPPORTS_DAC; return (value+alignment-1)&~(alignment-1); } @@ -340,7 +336,6 @@ inline ULONG AlignUp(ULONG value, UINT alignment) inline UINT64 AlignUp(UINT64 value, UINT alignment) { STATIC_CONTRACT_LEAF; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_SUPPORTS_DAC; return (value+alignment-1)&~(UINT64)(alignment-1); } @@ -348,7 +343,6 @@ inline UINT64 AlignUp(UINT64 value, UINT alignment) inline UINT AlignDown(UINT value, UINT alignment) { STATIC_CONTRACT_LEAF; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_SUPPORTS_DAC; return (value&~(alignment-1)); } @@ -357,7 +351,6 @@ inline UINT AlignDown(UINT value, UINT alignment) inline ULONG AlignDown(ULONG value, UINT alignment) { STATIC_CONTRACT_LEAF; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_SUPPORTS_DAC; return (value&~(ULONG)(alignment-1)); } @@ -366,7 +359,6 @@ inline ULONG AlignDown(ULONG value, UINT alignment) inline UINT64 AlignDown(UINT64 value, UINT alignment) { STATIC_CONTRACT_LEAF; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_SUPPORTS_DAC; return (value&~(UINT64)(alignment-1)); } @@ -394,7 +386,6 @@ inline UINT AlignmentPad(UINT64 value, UINT alignment) inline UINT AlignmentTrim(UINT value, UINT alignment) { STATIC_CONTRACT_LEAF; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_SUPPORTS_DAC; return value&(alignment-1); } @@ -405,7 +396,6 @@ inline UINT AlignmentTrim(UINT value, UINT alignment) inline UINT AlignmentTrim(ULONG value, UINT alignment) { STATIC_CONTRACT_LEAF; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_SUPPORTS_DAC; return value&(alignment-1); } @@ -414,7 +404,6 @@ inline UINT AlignmentTrim(ULONG value, UINT alignment) inline UINT AlignmentTrim(UINT64 value, UINT alignment) { STATIC_CONTRACT_LEAF; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_SUPPORTS_DAC; return ((UINT)value)&(alignment-1); } diff --git a/lib/coreclr/src/inc/configuration.h b/lib/coreclr/src/inc/configuration.h index d8f8dff72bb7..876abf2530a8 100644 --- a/lib/coreclr/src/inc/configuration.h +++ b/lib/coreclr/src/inc/configuration.h @@ -31,6 +31,12 @@ class Configuration // - The default value passed in static DWORD GetKnobDWORDValue(LPCWSTR name, DWORD defaultValue); + // Unfortunately our traditional config system insists on interpreting numbers as 32-bit so intepret the config + // in the traditional way separately if you need to. + // + // Returns value for name if found in config. + static ULONGLONG GetKnobULONGLONGValue(LPCWSTR name); + // Returns (in priority order): // - The value of the ConfigStringInfo if it's set // - The value of the ConfigurationKnob (searched by name) if it's set diff --git a/lib/coreclr/src/inc/contract.h b/lib/coreclr/src/inc/contract.h index dd66d2a6e014..3913e56b8a1c 100644 --- a/lib/coreclr/src/inc/contract.h +++ b/lib/coreclr/src/inc/contract.h @@ -46,18 +46,6 @@ // // LOADS_TYPE(level) the function promises not to load any types beyond "level" // -// SO_INTOLERANT the function cannot tolerate an SO at any point and must run behind an -// an SO probe via BEGIN_SO_INTOLERANT_XXX. This is the default. We want most -// of our code to run behind an SO probe. The only time you need to explicitly -// mark something as SO_INTOLERANT is if the static analysis tool incorrectly -// flags it as an entry point. -// -or- SO_TOLERANT the function can tolerate an SO. It either does not update any global state -// that needs to be cleaned up should a random SO occur, or it protects those -// updates behind an SO probe. -// -or- SO_NOT_MAINLINE the function is not hardened to SO and should never run on a managed thread -// where we need to be hardened to SO. You can use this for functions that run -// only for ngen or Win9X etc. -// // CAN_TAKE_LOCK the function has a code path that takes a lock // _or_ (CAN_TAKE_LOCK and CANNOT_RETAKE_LOCK) // the function has a code path that takes a lock, but never tries to reenter @@ -144,9 +132,6 @@ // STATIC_CONTRACT_GCNOTRIGGER // STATIC_CONTRACT_FAULT // STATIC_CONTRACT_FORBID_FAULT -// STATIC_CONTRACT_SO_INTOLERANT -// STATIC_CONTRACT_SO_TOLERANT -// STATIC_CONTRACT_SO_NOT_MAINLINE // use to implement statically checkable contracts // when runtime contracts cannot be used. // @@ -171,7 +156,6 @@ // GCViolation // ModeViolation // FaultViolation -// SOToleranceViolation // FaultNotFatal // HostViolation // LoadsTypeViolation @@ -255,8 +239,7 @@ #endif // Also, we won't enable contracts if this is a DAC build. -// @ARMTODO: Disable for ARM for now, contracts slow down the debug build far too much -#if defined(ENABLE_CONTRACTS_DATA) && !defined(DACCESS_COMPILE) && !defined(CROSS_COMPILE) && !defined(_TARGET_ARM_) +#if defined(ENABLE_CONTRACTS_DATA) && !defined(DACCESS_COMPILE) && !defined(CROSS_COMPILE) #define ENABLE_CONTRACTS #endif @@ -438,10 +421,6 @@ struct ClrDebugState UINT m_GCForbidCount; UINT m_maxLoadTypeLevel; // taken from enum ClassLoadLevel BOOL m_allowGetThread; // TRUE if GetThread() is ok in this scope -#ifdef FEATURE_STACK_PROBE //StackMarkerStack required only when SO infrastructure is enabled - /* Used to validate backout stack consumption required for StackOverflow infrastructure */ - StackMarkerStack m_StackMarkerStack; // The stack of stack markers -#endif DbgStateLockState m_LockState; public: @@ -478,10 +457,6 @@ struct ClrDebugState m_allowGetThread = TRUE; // By default, GetThread() is perfectly fine to call -#ifdef FEATURE_STACK_PROBE - m_StackMarkerStack.Init(); -#endif - m_LockState.SetStartingValues(); } @@ -582,32 +557,6 @@ struct ClrDebugState CONTRACT_BITMASK_RESET(CONTRACT_BITMASK_HOSTCALLS); } -#ifdef FEATURE_STACK_PROBE //SO contract functions only required when SO infrastructure is enabled - //--// - BOOL IsSOTolerant() - { - return CONTRACT_BITMASK_IS_SET(CONTRACT_BITMASK_SOTOLERANT); - } - - void SetSOTolerance() - { - CONTRACT_BITMASK_SET(CONTRACT_BITMASK_SOTOLERANT); - } - - BOOL SetSOTolerance(BOOL tolerance) - { - BOOL prevState = CONTRACT_BITMASK_IS_SET(CONTRACT_BITMASK_SOTOLERANT); - CONTRACT_BITMASK_UPDATE(CONTRACT_BITMASK_SOTOLERANT,tolerance); - return prevState; - } - - void ResetSOTolerance() - { - CONTRACT_BITMASK_RESET(CONTRACT_BITMASK_SOTOLERANT); - } - -#endif - //--// BOOL IsDebugOnly() { @@ -635,31 +584,6 @@ struct ClrDebugState CONTRACT_BITMASK_RESET(CONTRACT_BITMASK_DEBUGONLY); } - #ifdef FEATURE_STACK_PROBE - //--// - BOOL IsSONotMainline() - { - return CONTRACT_BITMASK_IS_SET(CONTRACT_BITMASK_SONOTMAINLINE); - } - - void SetSONotMainline() - { - CONTRACT_BITMASK_SET(CONTRACT_BITMASK_SONOTMAINLINE); - } - - BOOL SetSONotMainline(BOOL value) - { - BOOL prevState = CONTRACT_BITMASK_IS_SET(CONTRACT_BITMASK_SONOTMAINLINE); - CONTRACT_BITMASK_UPDATE(CONTRACT_BITMASK_SONOTMAINLINE,value); - return prevState; - } - - void ResetSONotMainline() - { - CONTRACT_BITMASK_RESET(CONTRACT_BITMASK_SONOTMAINLINE); - } -#endif - //--// BOOL IsGetThreadAllowed() { @@ -797,37 +721,6 @@ struct ClrDebugState m_LockState.OnEnterCannotRetakeLockFunction(); } -#ifdef FEATURE_STACK_PROBE //SO contract functions only required when SO infrastructure is enabled - BOOL IsSOIntolerant() - { - return !IsSOTolerant(); - } - - BOOL BeginSOTolerant() - { - return SetSOTolerance(TRUE); - } - - BOOL BeginSOIntolerant() - { - return SetSOTolerance(FALSE); - } - - - void CheckIfSOIntolerantOK(const char *szFunction, const char *szFile, int lineNum); - - - - - - //--// - - StackMarkerStack& GetStackMarkerStack() - { - return m_StackMarkerStack; - } -#endif - void CheckOkayToLock(__in_z const char *szFunction, __in_z const char *szFile, int lineNum); // Asserts if its not okay to lock BOOL CheckOkayToLockNoAssert(); // Returns if OK to lock void LockTaken(DbgStateLockType dbgStateLockType, @@ -856,7 +749,6 @@ ClrDebugState *GetClrDebugState(BOOL fAlloc = TRUE); inline ClrDebugState *CheckClrDebugState() { STATIC_CONTRACT_LIMITED_METHOD; - STATIC_CONTRACT_SO_TOLERANT; ClrDebugState *ret = (ClrDebugState*)ClrFlsGetValue(TlsIdx_ClrDebugState); return ret; } @@ -1045,30 +937,6 @@ class BaseContract MODE_Preempt = 0x00000040, MODE_Coop = 0x00000080, - // The following are used to assert the type of global state update being done by the function. - // This is used by the SO infrastructure to detect if we are probing properly. A CLR process will - // run in one of two states: SO-tolerant or SO-intolerant. In SO-tolerant mode, an SO is OK and we - // will not corrupt any global state. However, we cannot allow an SO to occur in SO-intolerant code - // because we might end up with our global state being corrupted. - // - // When we enter the EE from any entry point, we will begin in SO-tolerant mode and must probe for sufficient - // stack before entering SO-intolerant code. We will tell the differnce between SO-tolerant and SO-intolerant code - // by contract annotations on that function: SO_TOLERANT and SO_INTOLERANT. - - // We enter the EE in SO_TOLERANT mode. All entry point functions into the EE must be marked as SO_TOLERANT and - // and must probe before calling an SO-intolerant function. We have a static analsysis tool that ensures that every - // entry point is tagged as SO_TOLERANT and that it probes before calling an SO_TOLERANT function. - - // By default, all unannotated functions in the EE are SO_INTOLERANT which means that they must run behind a probe. - // Our contract checking will verify this at runtime. We only need to annotate a function explicilty as SO_INTOLERANT - // to tell our static analysis tool that they are not entry points (if it can't find a caller for a function, it assumes that the - // function is an entry point and should be marked SO_INTOLERANT.) - - SO_TOLERANCE_Mask = 0x00000300, - SO_TOLERANT_No = 0x00000000, // the default. - SO_TOLERANT_Yes = 0x00000100, - SO_TOLERANCE_Disabled = 0x00000200, - DEBUG_ONLY_Yes = 0x00000400, // code runs under debug only SO_MAINLINE_No = 0x00000800, // code is not part of our mainline SO scenario @@ -1108,7 +976,7 @@ class BaseContract LOADS_TYPE_Disabled = 0x00000000, // the default ALL_Disabled = THROWS_Disabled|GC_Disabled|FAULT_Disabled|MODE_Disabled|LOADS_TYPE_Disabled| - SO_TOLERANCE_Disabled|HOST_Disabled|EE_THREAD_Disabled|CAN_TAKE_LOCK_Disabled|CAN_RETAKE_LOCK_No_Disabled + HOST_Disabled|EE_THREAD_Disabled|CAN_TAKE_LOCK_Disabled|CAN_RETAKE_LOCK_No_Disabled }; @@ -1120,10 +988,10 @@ class BaseContract }; - __declspec(nothrow) BaseContract() : m_pClrDebugState(NULL), m_testmask(0) + NOTHROW_DECL BaseContract() : m_pClrDebugState(NULL), m_testmask(0) { } - __declspec(nothrow) void Restore() + NOTHROW_DECL void Restore() { // m_pClrDebugState is setup in BaseContract::DoChecks. If an SO happens after the // BaseContract object is constructed but before DoChecks is invoked, m_pClrDebugState @@ -1137,7 +1005,7 @@ class BaseContract } } - void DoChecks(UINT testmask, __in_z const char *szFunction, __in_z char *szFile, int lineNum); + void DoChecks(UINT testmask, __in_z const char *szFunction, __in_z const char *szFile, int lineNum); void Disable() { } @@ -1291,7 +1159,7 @@ class Contract: public BaseContract virtual void DestructorDefinedThatCallsRestore(){} public: - __declspec(nothrow) ~Contract() + NOTHROW_DECL ~Contract() { Restore(); } @@ -1310,7 +1178,6 @@ enum ContractViolationBits ModeViolation = 0x00000004, // suppress MODE_PREEMP and MODE_COOP tags in this scope FaultViolation = 0x00000008, // suppress INJECT_FAULT assertions in this scope FaultNotFatal = 0x00000010, // suppress INJECT_FAULT but not fault injection by harness - SOToleranceViolation = 0x00000020, // suppress SO_TOLERANCE tags in this scope LoadsTypeViolation = 0x00000040, // suppress LOADS_TYPE tags in this scope TakesLockViolation = 0x00000080, // suppress CAN_TAKE_LOCK tags in this scope HostViolation = 0x00000100, // suppress HOST_CALLS tags in this scope @@ -1380,8 +1247,9 @@ typedef __SafeToUsePostCondition __PostConditionOK; Contract::Returner<_returntype> ___returner(RETVAL); \ Contract::RanPostconditions ___ran(__FUNCTION__); \ Contract::Operation ___op = Contract::Setup; \ + BOOL ___contract_enabled = FALSE; \ DEBUG_ASSURE_NO_RETURN_BEGIN(CONTRACT) \ - BOOL ___contract_enabled = Contract::EnforceContract(); \ + ___contract_enabled = Contract::EnforceContract(); \ enum {___disabled = 0}; \ if (!___contract_enabled) \ ___contract.Disable(); \ @@ -1547,16 +1415,10 @@ typedef __SafeToUsePostCondition __PostConditionOK; #define NOTHROW do { STATIC_CONTRACT_NOTHROW; REQUEST_TEST(Contract::THROWS_No, Contract::THROWS_Disabled); } while(0) \ -#define ENTRY_POINT do { STATIC_CONTRACT_ENTRY_POINT; REQUEST_TEST(Contract::SO_TOLERANT_Yes, Contract::SO_TOLERANCE_Disabled); } while(0) +#define ENTRY_POINT STATIC_CONTRACT_ENTRY_POINT #define LOADS_TYPE(maxlevel) do { REQUEST_TEST( ((maxlevel) + 1) << Contract::LOADS_TYPE_Shift, Contract::LOADS_TYPE_Disabled ); } while(0) -#define SO_TOLERANT do { STATIC_CONTRACT_SO_TOLERANT; REQUEST_TEST(Contract::SO_TOLERANT_Yes, Contract::SO_TOLERANCE_Disabled); } while(0) - -#define SO_INTOLERANT do { STATIC_CONTRACT_SO_INTOLERANT; REQUEST_TEST(Contract::SO_TOLERANT_No, Contract::SO_TOLERANCE_Disabled); } while(0) - -#define SO_NOT_MAINLINE do { STATIC_CONTRACT_SO_NOT_MAINLINE; REQUEST_TEST(Contract::SO_MAINLINE_No, 0); } while (0) - #define CAN_TAKE_LOCK do { STATIC_CONTRACT_CAN_TAKE_LOCK; REQUEST_TEST(Contract::CAN_TAKE_LOCK_Yes, Contract::CAN_TAKE_LOCK_Disabled); } while(0) #define CANNOT_TAKE_LOCK do { STATIC_CONTRACT_CANNOT_TAKE_LOCK; REQUEST_TEST(Contract::CAN_TAKE_LOCK_No, Contract::CAN_TAKE_LOCK_Disabled); } while(0) @@ -1779,9 +1641,6 @@ typedef __SafeToUsePostCondition __PostConditionOK; #define CANNOT_TAKE_LOCK #define CANNOT_RETAKE_LOCK #define LOADS_TYPE(maxlevel) -#define SO_TOLERANT -#define SO_INTOLERANT -#define SO_NOT_MAINLINE #define ENTRY_POINT #ifdef _DEBUG @@ -1865,7 +1724,7 @@ class ContractViolationHolder FORCEINLINE void EnterInternal(UINT_PTR violationMask) { _ASSERTE(0 == (violationMask & ~(ThrowsViolation | GCViolation | ModeViolation | FaultViolation | - FaultNotFatal | SOToleranceViolation | HostViolation | + FaultNotFatal | HostViolation | TakesLockViolation | LoadsTypeViolation)) || violationMask == AllViolation); @@ -1897,7 +1756,7 @@ class AutoCleanupContractViolationHolder : ContractViolationHolderLeaveInternal(); }; }; @@ -2204,7 +2063,6 @@ class ClrTryMarkerHolder inline ClrDebugState *GetClrDebugState(BOOL fAlloc) { STATIC_CONTRACT_LIMITED_METHOD; - STATIC_CONTRACT_SO_NOT_MAINLINE; ClrDebugState *pState = CheckClrDebugState(); @@ -2222,90 +2080,6 @@ inline ClrDebugState *GetClrDebugState(BOOL fAlloc) } #endif // ENABLE_CONTRACTS_IMPL -#ifdef FEATURE_STACK_PROBE - -#ifdef ENABLE_CONTRACTS_IMPL -class SONotMainlineHolder -{ - public: - DEBUG_NOINLINE void Enter() - { - SCAN_SCOPE_BEGIN; - STATIC_CONTRACT_SO_NOT_MAINLINE; - - m_pClrDebugState = GetClrDebugState(); - if (m_pClrDebugState) - { - m_oldSONotMainlineValue = m_pClrDebugState->IsSONotMainline(); - m_pClrDebugState->SetSONotMainline(); - } - } - - DEBUG_NOINLINE void Leave() - { - SCAN_SCOPE_END; - - m_pClrDebugState = CheckClrDebugState(); - if (m_pClrDebugState) - { - m_pClrDebugState->SetSONotMainline( m_oldSONotMainlineValue ); - } - } - - private: - BOOL m_oldSONotMainlineValue; - ClrDebugState *m_pClrDebugState; -}; - -#define ENTER_SO_NOT_MAINLINE_CODE \ - SONotMainlineHolder __soNotMainlineHolder; \ - __soNotMainlineHolder.Enter(); - -#define LEAVE_SO_NOT_MAINLINE_CODE \ - __soNotMainlineHolder.Leave(); - - -class AutoCleanupSONotMainlineHolder : public SONotMainlineHolder -{ - public: - DEBUG_NOINLINE AutoCleanupSONotMainlineHolder() - { - SCAN_SCOPE_BEGIN; - STATIC_CONTRACT_SO_NOT_MAINLINE; - - Enter(); - } - - DEBUG_NOINLINE ~AutoCleanupSONotMainlineHolder() - { - SCAN_SCOPE_END; - - Leave(); - } -}; - -#define SO_NOT_MAINLINE_FUNCTION \ - AutoCleanupSONotMainlineHolder __soNotMainlineHolder; - -#define SO_NOT_MAINLINE_REGION() \ - AutoCleanupSONotMainlineHolder __soNotMainlineHolder; - -#else // ENABLE_CONTRACTS_IMPL -#define SO_NOT_MAINLINE_FUNCTION STATIC_CONTRACT_SO_NOT_MAINLINE -#define SO_NOT_MAINLINE_REGION() STATIC_CONTRACT_SO_NOT_MAINLINE -#define ENTER_SO_NOT_MAINLINE_CODE -#define LEAVE_SO_NOT_MAINLINE_CODE -#endif - -#else // FEATURE_STACK_PROBE - -#define SO_NOT_MAINLINE_FUNCTION -#define SO_NOT_MAINLINE_REGION() -#define ENTER_SO_NOT_MAINLINE_CODE -#define LEAVE_SO_NOT_MAINLINE_CODE - -#endif // FEATURE_STACK_PROBE - #ifdef ENABLE_CONTRACTS_IMPL class HostNoCallHolder @@ -2576,8 +2350,7 @@ extern Volatile g_DbgSuppressAllocationAsserts; // #define STANDARD_VM_CHECK \ - THROWS; \ - SO_INTOLERANT; \ + THROWS; #define STANDARD_VM_CONTRACT \ CONTRACTL \ @@ -2589,8 +2362,7 @@ extern Volatile g_DbgSuppressAllocationAsserts; #define STATIC_STANDARD_VM_CONTRACT \ STATIC_CONTRACT_THROWS; \ STATIC_CONTRACT_GC_TRIGGERS; \ - STATIC_CONTRACT_MODE_PREEMPTIVE; \ - STATIC_CONTRACT_SO_INTOLERANT + STATIC_CONTRACT_MODE_PREEMPTIVE; #define AFTER_CONTRACTS #include "volatile.h" diff --git a/lib/coreclr/src/inc/contract.inl b/lib/coreclr/src/inc/contract.inl index ff165cf55c17..3c794948a943 100644 --- a/lib/coreclr/src/inc/contract.inl +++ b/lib/coreclr/src/inc/contract.inl @@ -22,25 +22,7 @@ #ifdef ENABLE_CONTRACTS_IMPL -#ifdef FEATURE_STACK_PROBE -/* FLAG to turn on/off dynamic SO Contract checking */ -extern BOOL g_EnableDefaultRWValidation; - -/* Used to report any code with SO_NOT_MAINLINE being run in a test environment - * with COMPLUS_NO_SO_NOT_MAINLINE enabled - */ -void SONotMainlineViolation(const char *szFunction, const char *szFile, int lineNum); - -/* Wrapper over SOTolerantViolation(). Used to report SO_Intolerant functions being called - * from SO_tolerant funcs without stack probing. - */ -void SoTolerantViolationHelper(const char *szFunction, - const char *szFile, - int lineNum); -#endif - - -inline void BaseContract::DoChecks(UINT testmask, __in_z const char *szFunction, __in_z char *szFile, int lineNum) +inline void BaseContract::DoChecks(UINT testmask, __in_z const char *szFunction, __in_z const char *szFile, int lineNum) { STATIC_CONTRACT_DEBUG_ONLY; STATIC_CONTRACT_NOTHROW; @@ -73,29 +55,6 @@ inline void BaseContract::DoChecks(UINT testmask, __in_z const char *szFunction, m_pClrDebugState->SetDebugOnly(); } -#ifdef FEATURE_STACK_PROBE //Dynamic SO contract checks only required when SO infrastructure is present. - - if (testmask & SO_MAINLINE_No) - { - static DWORD dwCheckNotMainline = -1; - - // Some tests should never hit an SO_NOT_MAINLINE contract - if (dwCheckNotMainline == -1) - dwCheckNotMainline = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_NO_SO_NOT_MAINLINE); - - - if (dwCheckNotMainline) - { - SONotMainlineViolation(m_contractStackRecord.m_szFunction, - m_contractStackRecord.m_szFile, - m_contractStackRecord.m_lineNum); - } - - m_pClrDebugState->SetSONotMainline(); - } - -#endif // FEATURE_STACK_PROBE - switch (testmask & FAULT_Mask) { case FAULT_Forbid: @@ -175,30 +134,6 @@ inline void BaseContract::DoChecks(UINT testmask, __in_z const char *szFunction, break; } -#ifdef FEATURE_STACK_PROBE - - switch (testmask & SO_TOLERANCE_Mask) - { - case SO_TOLERANT_No: - if (g_EnableDefaultRWValidation) - { - m_pClrDebugState->CheckIfSOIntolerantOK(m_contractStackRecord.m_szFunction, - m_contractStackRecord.m_szFile, - m_contractStackRecord.m_lineNum); - } - break; - - case SO_TOLERANT_Yes: - case SO_TOLERANCE_Disabled: - // Nothing - break; - - default: - UNREACHABLE(); - } - -#endif // FEATURE_STACK_PROBE - if (testmask & CAN_RETAKE_LOCK_No) { m_pClrDebugState->OnEnterCannotRetakeLockFunction(); @@ -539,49 +474,6 @@ inline DbgStateLockData * DbgStateLockState::GetDbgStateLockData() return m_pLockData; } -#ifdef FEATURE_STACK_PROBE -// We don't want to allow functions that use holders to EX_TRY to be intolerant -// code... if an exception were to occur, the holders and EX_CATCH/FINALLY would -// have less than 1/4 clean up. -inline void EnsureSOIntolerantOK(const char *szFunction, - const char *szFile, - int lineNum) -{ - // We don't want to use a holder here, because a holder will - // call EnsureSOIntolerantOK - - DWORD error = GetLastError(); - if (! g_EnableDefaultRWValidation) - { - SetLastError(error); - return; - } - ClrDebugState *pClrDebugState = CheckClrDebugState(); - if (! pClrDebugState) - { - SetLastError(error); - return; - } - pClrDebugState->CheckIfSOIntolerantOK(szFunction, szFile, lineNum); - SetLastError(error); -} - -inline void ClrDebugState::CheckIfSOIntolerantOK(const char *szFunction, - const char *szFile, - int lineNum) - -{ - // If we are an RW function on a managed thread, we must be in SO-intolerant mode. Ie. we must be behind a probe. - if (IsSOIntolerant() || IsDebugOnly() || IsSONotMainline() || (m_violationmask & SOToleranceViolation) || - !g_fpShouldValidateSOToleranceOnThisThread || !g_fpShouldValidateSOToleranceOnThisThread()) - { - return; - } - SoTolerantViolationHelper(szFunction, szFile, lineNum); -} - -#endif - inline void CONTRACT_ASSERT(const char *szElaboration, UINT whichTest, diff --git a/lib/coreclr/src/inc/cor.h b/lib/coreclr/src/inc/cor.h index a050eb42aaf1..034801b05f5b 100644 --- a/lib/coreclr/src/inc/cor.h +++ b/lib/coreclr/src/inc/cor.h @@ -20,17 +20,6 @@ //***************************************************************************** -#if defined(_MSC_VER) && !defined(USE_DEPRECATED_CLR_API_WITHOUT_WARNING) -#define DEPRECATED_CLR_API_MESG "This API has been deprecated. Refer to http://go.microsoft.com/fwlink/?LinkId=143720 for more details." -#define DECLARE_DEPRECATED __declspec(deprecated(DEPRECATED_CLR_API_MESG)) -#define DEPRECATED_CLR_STDAPI EXTERN_C DECLARE_DEPRECATED HRESULT STDAPICALLTYPE -#define DEPRECATED_CLR_STDAPI_(type) EXTERN_C DECLARE_DEPRECATED type STDAPICALLTYPE -#else // _MSC_VER && !USE_DEPRECATED_CLR_API_WITHOUT_WARNING -#define DECLARE_DEPRECATED -#define DEPRECATED_CLR_STDAPI STDAPI -#define DEPRECATED_CLR_STDAPI_(type) STDAPI_(type) -#endif // _MSC_VER && !USE_DEPRECATED_CLR_API_WITHOUT_WARNING - #ifdef __cplusplus extern "C" { #endif @@ -145,32 +134,6 @@ typedef UNALIGNED void const *UVCP_CONSTANT; #define INVALID_TASK_ID 0x0 #define MAX_CONNECTION_NAME MAX_PATH -//***************************************************************************** -//***************************************************************************** -// -// D L L P U B L I C E N T R Y P O I N T D E C L A R A T I O N S -// -//***************************************************************************** -//***************************************************************************** - -BOOL STDMETHODCALLTYPE _CorDllMain(HINSTANCE hInst, DWORD dwReason, LPVOID lpReserved); -__int32 STDMETHODCALLTYPE _CorExeMain(); -__int32 STDMETHODCALLTYPE _CorExeMainInternal(); -__int32 STDMETHODCALLTYPE _CorExeMain2( // Executable exit code. - PBYTE pUnmappedPE, // -> memory mapped code - DWORD cUnmappedPE, // Size of memory mapped code - _In_ LPWSTR pImageNameIn, // -> Executable Name - _In_ LPWSTR pLoadersFileName, // -> Loaders Name - _In_ LPWSTR pCmdLine); // -> Command Line - -STDAPI _CorValidateImage(PVOID *ImageBase, LPCWSTR FileName); -STDAPI_(VOID) _CorImageUnloading(PVOID ImageBase); - -DEPRECATED_CLR_STDAPI CoInitializeEE(DWORD fFlags); -DEPRECATED_CLR_STDAPI_(void) CoUninitializeEE(BOOL fFlags); -DEPRECATED_CLR_STDAPI_(void) CoEEShutDownCOM(void); - - #define MAIN_CLR_MODULE_NAME_W W("coreclr") #define MAIN_CLR_MODULE_NAME_A "coreclr" @@ -179,21 +142,11 @@ DEPRECATED_CLR_STDAPI_(void) CoEEShutDownCOM(void); #define MAIN_CLR_DLL_NAME_A MAKEDLLNAME_A(MAIN_CLR_MODULE_NAME_A) - #define MSCOREE_SHIM_W MAIN_CLR_DLL_NAME_W #define MSCOREE_SHIM_A MAIN_CLR_DLL_NAME_A #define SWITCHOUT_HANDLE_VALUE ((HANDLE)(LONG_PTR)-2) - -// -// CoInitializeCor flags. -// -typedef enum tagCOINITCOR -{ - COINITCOR_DEFAULT = 0x0 // Default initialization mode. -} COINITICOR; - // // CoInitializeEE flags. // @@ -204,15 +157,6 @@ typedef enum tagCOINITEE COINITEE_MAIN = 0x2 // Initialize prior to entering the main routine } COINITIEE; -// -// CoInitializeEE flags. -// -typedef enum tagCOUNINITEE -{ - COUNINITEE_DEFAULT = 0x0, // Default uninitialization mode. - COUNINITEE_DLL = 0x1 // Uninitialization mode for unloading DLL. -} COUNINITIEE; - //***************************************************************************** //***************************************************************************** // @@ -227,18 +171,6 @@ typedef enum tagCOUNINITEE #include #endif // updates -//***************************************************************************** -//***************************************************************************** -// -// D L L P U B L I C E N T R Y P O I N T D E C L A R A T I O N S -// -//***************************************************************************** -//***************************************************************************** - -DEPRECATED_CLR_STDAPI CoInitializeCor(DWORD fFlags); -DEPRECATED_CLR_STDAPI_(void) CoUninitializeCor(void); - -// //***************************************************************************** //***************************************************************************** @@ -1956,7 +1888,6 @@ typedef enum nltAnsi = 2, // ansi keyword specified nltUnicode = 3, // unicode keyword specified nltAuto = 4, // auto keyword specified - nltOle = 5, // ole keyword specified nltMaxValue = 7, // used so we can assert how many bits are required for this enum } CorNativeLinkType; @@ -2027,20 +1958,12 @@ typedef enum #ifndef DEBUG_NOINLINE #if defined(_DEBUG) -#define DEBUG_NOINLINE __declspec(noinline) +#define DEBUG_NOINLINE NOINLINE #else #define DEBUG_NOINLINE #endif #endif -#ifndef DBG_NOINLINE_X86__RET_INLINE -#if defined(_DEBUG) && defined(_X86_) -#define DBG_NOINLINE_X86__RET_INLINE __declspec(noinline) -#else -#define DBG_NOINLINE_X86__RET_INLINE FORCEINLINE -#endif -#endif - #ifndef NOINLINE #ifdef _MSC_VER #define NOINLINE __declspec(noinline) @@ -2204,8 +2127,12 @@ inline ULONG CorSigUncompressData( // return number of bytes of that compre #if !defined(SELECTANY) +#if defined(__GNUC__) + #define SELECTANY extern __attribute__((weak)) +#else #define SELECTANY extern __declspec(selectany) #endif +#endif SELECTANY const mdToken g_tkCorEncodeToken[4] ={mdtTypeDef, mdtTypeRef, mdtTypeSpec, mdtBaseType}; @@ -2499,10 +2426,5 @@ inline ULONG CorSigUncompressPointer( // return number of bytes of that compre #endif // __cplusplus -#undef DEPRECATED_CLR_STDAPI_ -#undef DEPRECATED_CLR_STDAPI -#undef DECLARE_DEPRECATED -#undef DEPRECATED_CLR_API_MESG - #endif // _COR_H_ // EOF ======================================================================= diff --git a/lib/coreclr/src/inc/corbbtprof.h b/lib/coreclr/src/inc/corbbtprof.h index 5aa7782544b9..f7258c1e5bc1 100644 --- a/lib/coreclr/src/inc/corbbtprof.h +++ b/lib/coreclr/src/inc/corbbtprof.h @@ -402,10 +402,10 @@ struct CORBBTPROF_METHOD_BLOCK_COUNTS_SECTION_HEADER DWORD NumMethods; }; -struct CORBBTPROF_BLOCK_DATA // Also defined here code:ICorJitInfo.ProfileBuffer +struct CORBBTPROF_BLOCK_DATA // This struct is also defined by: ICorJitInfo.BlockCounts { - DWORD ILOffset; - DWORD ExecutionCount; + UINT32 ILOffset; + UINT32 ExecutionCount; }; struct CORBBTPROF_METHOD_DETAIL_HEADER diff --git a/lib/coreclr/src/inc/corcompile.h b/lib/coreclr/src/inc/corcompile.h index 6de9c8e3402d..755c846f51e0 100644 --- a/lib/coreclr/src/inc/corcompile.h +++ b/lib/coreclr/src/inc/corcompile.h @@ -18,10 +18,6 @@ #ifndef _COR_COMPILE_H_ #define _COR_COMPILE_H_ -#ifndef FEATURE_PREJIT -#error FEATURE_PREJIT is required for this file -#endif // FEATURE_PREJIT - #if !defined(_TARGET_X86_) || defined(FEATURE_PAL) #ifndef WIN64EXCEPTIONS #define WIN64EXCEPTIONS @@ -45,8 +41,6 @@ typedef DPTR(struct CORCOMPILE_EE_INFO_TABLE) PTR_CORCOMPILE_EE_INFO_TABLE; typedef DPTR(struct CORCOMPILE_HEADER) PTR_CORCOMPILE_HEADER; -typedef DPTR(struct CORCOMPILE_IMPORT_TABLE_ENTRY) - PTR_CORCOMPILE_IMPORT_TABLE_ENTRY; typedef DPTR(struct CORCOMPILE_COLD_METHOD_ENTRY) PTR_CORCOMPILE_COLD_METHOD_ENTRY; typedef DPTR(struct CORCOMPILE_EXCEPTION_LOOKUP_TABLE) @@ -238,7 +232,7 @@ struct CORCOMPILE_HEADER IMAGE_DATA_DIRECTORY HelperTable; // Table of function pointers to JIT helpers indexed by helper number IMAGE_DATA_DIRECTORY ImportSections; // points to array of code:CORCOMPILE_IMPORT_SECTION - IMAGE_DATA_DIRECTORY ImportTable; // points to table CORCOMPILE_IMPORT_TABLE_ENTRY + IMAGE_DATA_DIRECTORY Dummy0; IMAGE_DATA_DIRECTORY StubsData; // contains the value to register with the stub manager for the delegate stubs & AMD64 tail call stubs IMAGE_DATA_DIRECTORY VersionInfo; // points to a code:CORCOMPILE_VERSION_INFO IMAGE_DATA_DIRECTORY Dependencies; // points to an array of code:CORCOMPILE_DEPENDENCY @@ -451,12 +445,6 @@ public : } }; -struct CORCOMPILE_IMPORT_TABLE_ENTRY -{ - USHORT wAssemblyRid; - USHORT wModuleRid; -}; - struct CORCOMPILE_EE_INFO_TABLE { TADDR inlinedCallFrameVptr; @@ -706,13 +694,14 @@ enum CORCOMPILE_FIXUP_BLOB_KIND ENCODE_DECLARINGTYPE_HANDLE, + ENCODE_INDIRECT_PINVOKE_TARGET, /* For calling a pinvoke method ptr */ + ENCODE_MODULE_HANDLE = 0x50, /* Module token */ ENCODE_STATIC_FIELD_ADDRESS, /* For accessing a static field */ ENCODE_MODULE_ID_FOR_STATICS, /* For accessing static fields */ ENCODE_MODULE_ID_FOR_GENERIC_STATICS, /* For accessing static fields */ ENCODE_CLASS_ID_FOR_STATICS, /* For accessing static fields */ ENCODE_SYNC_LOCK, /* For synchronizing access to a type */ - ENCODE_INDIRECT_PINVOKE_TARGET, /* For calling a pinvoke method ptr */ ENCODE_PROFILING_HANDLE, /* For the method's profiling counter */ ENCODE_VARARGS_METHODDEF, /* For calling a varargs method */ ENCODE_VARARGS_METHODREF, @@ -1331,7 +1320,8 @@ class ICorCompilePreloader CORCOMPILE_SECTION(READONLY_HOT) \ CORCOMPILE_SECTION(READONLY_WARM) \ CORCOMPILE_SECTION(READONLY_COLD) \ - CORCOMPILE_SECTION(READONLY_VCHUNKS_AND_DICTIONARY) \ + CORCOMPILE_SECTION(READONLY_VCHUNKS) \ + CORCOMPILE_SECTION(READONLY_DICTIONARY) \ CORCOMPILE_SECTION(CLASS_COLD) \ CORCOMPILE_SECTION(CROSS_DOMAIN_INFO) \ CORCOMPILE_SECTION(METHOD_PRECODE_COLD) \ @@ -1423,8 +1413,6 @@ typedef DWORD (*ENCODEMODULE_CALLBACK)(LPVOID pModuleContext, CORINFO_MODULE_HAN // Define function pointer DEFINETOKEN_CALLBACK typedef void (*DEFINETOKEN_CALLBACK)(LPVOID pModuleContext, CORINFO_MODULE_HANDLE moduleHandle, DWORD index, mdTypeRef* token); -typedef HRESULT (*CROSS_DOMAIN_CALLBACK)(LPVOID pArgs); - class ICorCompileInfo { public: @@ -1463,13 +1451,6 @@ class ICorCompileInfo BOOL fForceInstrument ) = 0; - // calls pfnCallback in the specified domain - virtual HRESULT MakeCrossDomainCallback( - ICorCompilationDomain* pDomain, - CROSS_DOMAIN_CALLBACK pfnCallback, - LPVOID pArgs - ) = 0; - // Destroys a compilation domain virtual HRESULT DestroyDomain( ICorCompilationDomain *pDomain @@ -1635,11 +1616,10 @@ class ICorCompileInfo ) = 0; // Encode a module for the imports table - virtual void EncodeModuleAsIndexes( + virtual void EncodeModuleAsIndex( CORINFO_MODULE_HANDLE fromHandle, CORINFO_MODULE_HANDLE handle, - DWORD *pAssemblyIndex, - DWORD *pModuleIndex, + DWORD *pIndex, IMetaDataAssemblyEmit *pAssemblyEmit) = 0; @@ -1719,7 +1699,8 @@ class ICorCompileInfo // virtual void GetCallRefMap( CORINFO_METHOD_HANDLE hMethod, - GCRefMapBuilder * pBuilder) = 0; + GCRefMapBuilder * pBuilder, + bool isDispatchCell) = 0; // Returns a compressed block of debug information // @@ -1745,6 +1726,8 @@ class ICorCompileInfo IN CORINFO_METHOD_HANDLE hMethod, OUT CORJIT_FLAGS *pFlags) = 0; + virtual ICorJitHost* GetJitHost() = 0; + // needed for stubs to obtain the number of bytes to copy into the native image // return the beginning of the stub and the size to copy (in bytes) virtual void* GetStubSize(void *pStubAddress, DWORD *pSizeToCopy) = 0; @@ -1773,6 +1756,11 @@ class ICorCompileInfo virtual int GetVersionResilientTypeHashCode(CORINFO_MODULE_HANDLE moduleHandle, mdToken token) = 0; virtual int GetVersionResilientMethodHashCode(CORINFO_METHOD_HANDLE methodHandle) = 0; + + virtual BOOL EnumMethodsForStub(CORINFO_METHOD_HANDLE hMethod, void** enumerator) = 0; + virtual BOOL EnumNextMethodForStub(void * enumerator, CORINFO_METHOD_HANDLE *hMethod) = 0; + virtual void EnumCloseForStubEnumerator(void *enumerator) = 0; + #endif virtual BOOL HasCustomAttribute(CORINFO_METHOD_HANDLE method, LPCSTR customAttributeName) = 0; @@ -1817,6 +1805,7 @@ extern bool g_fNGenWinMDResilient; #ifdef FEATURE_READYTORUN_COMPILER extern bool g_fReadyToRunCompilation; +extern bool g_fLargeVersionBubble; #endif inline bool IsReadyToRunCompilation() @@ -1828,4 +1817,11 @@ inline bool IsReadyToRunCompilation() #endif } +#ifdef FEATURE_READYTORUN_COMPILER +inline bool IsLargeVersionBubbleEnabled() +{ + return g_fLargeVersionBubble; +} +#endif + #endif /* COR_COMPILE_H_ */ diff --git a/lib/coreclr/src/inc/cordebug.idl b/lib/coreclr/src/inc/cordebug.idl index d556ebc7cc44..c0dcb7670b10 100644 --- a/lib/coreclr/src/inc/cordebug.idl +++ b/lib/coreclr/src/inc/cordebug.idl @@ -225,19 +225,19 @@ typedef struct CorDebugGuidToTypeMapping /* * Callback interface for providing access to a particular target process. The - * debugging services will call functions on this interface to access memory - * and other data in the target process. The debugger client must implement + * debugging services will call functions on this interface to access memory + * and other data in the target process. The debugger client must implement * this interface as appropriate for the particular target (for example, a live * process or a memory dump). The DataTarget will only be invoked from within - * the implementation of other ICorDebug APIs (i.e. the debugger client has - * control over which thread it is invoked on, and when) + * the implementation of other ICorDebug APIs (i.e. the debugger client has + * control over which thread it is invoked on, and when) * * Error HRESULTS returned by DataTarget APIs will propagate up and be returned * by the active ICorDebug API call. * * The DataTarget implementation must always return up-to-date information - * about the target. The target process should be stopped (not changing - * in any way) while ICorDebug APIs (and hence DataTarget APIs) are being + * about the target. The target process should be stopped (not changing + * in any way) while ICorDebug APIs (and hence DataTarget APIs) are being * called. If the target is a live process and it's state changes, * OpenVirtualProcess needs to be called again to provide a replacement * ICorDebugProcess instance. @@ -251,18 +251,18 @@ typedef struct CorDebugGuidToTypeMapping interface ICorDebugDataTarget : IUnknown { /* - * GetPlatform returns the processor architecture and operating system on - * which the target process is (or was) running. + * GetPlatform returns the processor architecture and operating system on + * which the target process is (or was) running. * - * This is used by ICorDebug to determine details of the target process - * such as its pointer size, address space layout, register set, + * This is used by ICorDebug to determine details of the target process + * such as its pointer size, address space layout, register set, * instruction format, context layout, and calling conventions, etc. * This platforms in this list are the only ones supported by this version * of ICorDebug, but more may be added in future versions. * - * Note that this may actually indicate the platform which is being + * Note that this may actually indicate the platform which is being * emulated for the target, not the actual hardware in use. For example, - * a process running in the WOW on Windows x64 should use + * a process running in the WOW on Windows x64 should use * CORDB_PLATFORM_WINDOWS_X86. * * Implementations should be sure to describe what the platform of the @@ -282,7 +282,7 @@ interface ICorDebugDataTarget : IUnknown CORDB_PLATFORM_WINDOWS_ARM64, // Windows on ARM64 CORDB_PLATFORM_POSIX_AMD64, // Posix supporting OS on Intel x64 - CORDB_PLATFORM_POSIX_X86, // Posix supporting OS on Intel x86 + CORDB_PLATFORM_POSIX_X86, // Posix supporting OS on Intel x86 CORDB_PLATFORM_POSIX_ARM, // Posix supporting OS on ARM32 CORDB_PLATFORM_POSIX_ARM64 // Posix supporting OS on ARM64 } CorDebugPlatform; @@ -292,13 +292,13 @@ interface ICorDebugDataTarget : IUnknown /* * ReadVirtual - Read virtual memory from the target process. * - * Requests contiguous memory starting at the specified target address to - * be read from the target process into the supplied buffer. If at least - * the first byte (at the specified start address) can be read, the call + * Requests contiguous memory starting at the specified target address to + * be read from the target process into the supplied buffer. If at least + * the first byte (at the specified start address) can be read, the call * should return success (to support efficient reading of data structures * with self-describing length, like null-terminated strings). * - * On success, the actual number of bytes read must be stored into + * On success, the actual number of bytes read must be stored into * pBytesRead. */ HRESULT ReadVirtual([in] CORDB_ADDRESS address, @@ -309,12 +309,12 @@ interface ICorDebugDataTarget : IUnknown /* * GetThreadContext - Get the thread context (register values) for a thread. * - * Requests the current thread context for the specified (operating-system - * defined) thread identifier. The size and format of the context record - * is platform dependant, and is determined by the result of the call to - * GetPlatform. - * - * The context flags specify, in a platform-dependent manor, which portions + * Requests the current thread context for the specified (operating-system + * defined) thread identifier. The size and format of the context record + * is platform dependant, and is determined by the result of the call to + * GetPlatform. + * + * The context flags specify, in a platform-dependent manor, which portions * of the context should be read. contextSize specifies the size of the * supplied buffer, but the function is free to not fill the whole buffer * if it is possible to determine the actual size from the context. @@ -488,7 +488,7 @@ interface ICorDebugMergedAssemblyRecord : IUnknown * These names do not include qualifiers such as file extensions, culture, version, or public key token */ HRESULT GetSimpleName([in] ULONG32 cchName, [out] ULONG32 *pcchName, [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[]); - + /* * GetVersion - Gives the assembly version information */ @@ -507,7 +507,7 @@ interface ICorDebugMergedAssemblyRecord : IUnknown /* * GetPublicKeyToken - Gives the assembly public key token (the last 8 bytes of a SHA1 hash of the public key) */ - HRESULT GetPublicKeyToken([in] ULONG32 cbPublicKeyToken, [out] ULONG32 *pcbPublicKeyToken, + HRESULT GetPublicKeyToken([in] ULONG32 cbPublicKeyToken, [out] ULONG32 *pcbPublicKeyToken, [out, size_is(cbPublicKeyToken), length_is(*pcbPublicKeyToken)] BYTE pbPublicKeyToken[]); /* @@ -696,7 +696,7 @@ interface ICorDebugVirtualUnwinder : IUnknown [out] ULONG32* contextSize, [out, size_is(cbContextBuf)] BYTE contextBuf[]); - /* + /* * Advances to the callers context. * * If a failing HRESULT is returned ICorDebug APIs will return CORDBG_E_DATA_TARGET_ERROR. @@ -812,7 +812,7 @@ interface ICorDebugDataTarget3 : IUnknown }; /* - * Data target that knows how to obtain debugee's process id. + * Data target that knows how to obtain debugee's process id. * Debugee is not necessarily a living process at that time or on the same machine. */ [ @@ -832,20 +832,20 @@ interface ICorDebugDataTarget4 : IUnknown }; /* - * Mutable extension to the data target. This version of ICorDebugDataTarget - * can be implemented by targets that wish to support modification of the target + * Mutable extension to the data target. This version of ICorDebugDataTarget + * can be implemented by targets that wish to support modification of the target * process (such as for live invasive debugging). * - * All of these APIs are optional in the sense that no core inspection-based + * All of these APIs are optional in the sense that no core inspection-based * debugging functionality will be lost by not implementing this interface or * by the failure of these methods. Any failure HRESULT from these APIs will * propagate out as the HRESULT from the ICorDebug API call. * * Note that a single ICorDebug API call may result in multiple mutations, - * and there is no mechanism for ensuring related mutations are applied + * and there is no mechanism for ensuring related mutations are applied * transactionally (all-or-none). This means that if a mutation fails after * others (for the same ICorDebug call) have succeeded, the target process may - * be left in an inconsistent state and debugging may become unreliable. + * be left in an inconsistent state and debugging may become unreliable. */ [ object, @@ -879,7 +879,7 @@ interface ICorDebugMutableDataTarget : ICorDebugDataTarget [in] ULONG32 contextSize, [in, size_is(contextSize)] const BYTE * pContext); - /* + /* * Invoke to change the continue-status for the outstanding debug-event on * the specified thread. * @@ -887,7 +887,7 @@ interface ICorDebugMutableDataTarget : ICorDebugDataTarget * dwThreadId - OS Thread Id of the debug event * continueStatus - New continue status being requested. See the * definition of CORDB_CONTINUE_STATUS for details. - * + * * This API is used when the Debugger makes an ICorDebug API request * which requires the current debug event to be handled in a way that is * potentially different from which it would be otherwise. For example, @@ -902,8 +902,8 @@ interface ICorDebugMutableDataTarget : ICorDebugDataTarget /* - * Interface used by the data access services layer to locate metadata - * of assemblies in a target. + * Interface used by the data access services layer to locate metadata + * of assemblies in a target. * * The API client must implement this interface as appropriate for the * particular target (for example, a live process or a memory dump). @@ -1131,7 +1131,7 @@ interface ICorDebugManagedCallback : IUnknown [in] ICorDebugThread *thread); /* - * ExitThread is called when a thread which has run managed code exits. + * ExitThread is called when a thread which has run managed code exits. * Once this callback is fired, the thread no longer will appear in thread enumerations. */ @@ -1289,14 +1289,14 @@ interface ICorDebugManagedCallback : IUnknown [in] ICorDebugThread *pThread); /* - * UpdateModuleSymbols is called when PDB debug symbols are available for an - * in-memory module. This is a debugger's chance to load the symbols + * UpdateModuleSymbols is called when PDB debug symbols are available for an + * in-memory module. This is a debugger's chance to load the symbols * (using ISymUnmanagedBinder::GetReaderForStream), and bind source-level * breakpoints for the module. - * + * * This callback is no longer dispatched for dynamic modules. Instead, * debuggers should call ICorDebugModule3::CreateReaderForInMemorySymbols - * to obtain a symbol reader for a dynamic module. + * to obtain a symbol reader for a dynamic module. */ HRESULT UpdateModuleSymbols([in] ICorDebugAppDomain *pAppDomain, [in] ICorDebugModule *pModule, @@ -1335,21 +1335,66 @@ interface ICorDebugManagedCallback : IUnknown interface ICorDebugManagedCallback3 : IUnknown { /* Callback indicating an enabled custom debugger notification has been - * raised. pThread points to the thread that issued the notification. - * A subsequent call to GetCurrentCustomDebuggerNotification will retrieve the object that was passed to + * raised. pThread points to the thread that issued the notification. + * A subsequent call to GetCurrentCustomDebuggerNotification will retrieve the object that was passed to * System.Diagnostics.Debugger.CustomNotification, whose type will be one * that has been enabled via SetEnableCustomNotification. - * Note that this will return non-null if and only if we are currently inside a CustomNotification - * callback. + * Note that this will return non-null if and only if we are currently inside a CustomNotification + * callback. * The debugger can read type-specific parameters from fields of the data - * object, and store responses into fields. + * object, and store responses into fields. * ICorDebug imposes no policy on the types of notifications or their * contents, and their semantics are strictly a contract between - * debuggers and applications/frameworks. + * debuggers and applications/frameworks. */ HRESULT CustomNotification([in] ICorDebugThread * pThread, [in] ICorDebugAppDomain * pAppDomain); } +[ + object, + local, + uuid(322911AE-16A5-49BA-84A3-ED69678138A3), + pointer_default(unique) +] + +interface ICorDebugManagedCallback4 : IUnknown +{ + // + // Callback indicating a garbage collection is about to start. + // + // Parameters + // pProcess - the process that is going to perform garbage collection. + // + // Returns + // S_OK - on success + // + HRESULT BeforeGarbageCollection([in] ICorDebugProcess* pProcess); + + // + // Callback indicating a garbage collection is about to complete. + // + // Parameters + // pProcess - the process that is going to complete garbage collection. + // + // Returns + // S_OK - on success + // + HRESULT AfterGarbageCollection([in] ICorDebugProcess* pProcess); + + // + // Callback indicating a data breakpoint is hit + // + // Parameters + // pProcess - the process that hits the data breakpoint + // pThread - the thread that hits the data breakpoint + // pContext - a pointer to the CONTEXT structure + // contextSize - the size of the CONTEXT structure + // + // Returns + // S_OK - on success + // + HRESULT DataBreakpoint([in] ICorDebugProcess* pProcess, [in] ICorDebugThread* pThread, [in] BYTE* pContext, [in] ULONG32 contextSize); +} #pragma warning(disable:28718) /* disable warning 28718 for interface ICorDebugManagedCallback2 */ @@ -1442,7 +1487,7 @@ interface ICorDebugManagedCallback2 : IUnknown /* - * For non-intercepted exceptions, ExceptionUnwind is called at the beginning of the second pass + * For non-intercepted exceptions, ExceptionUnwind is called at the beginning of the second pass * when we start to unwind the stack. For intercepted exceptions, ExceptionUnwind is called when * the interception is complete, conceptually at the end of the second pass. * @@ -1635,15 +1680,15 @@ interface ICorDebug : IUnknown * * This should be set after Initialize and before any calls to CreateProcess or DebugActiveProcess. * - * However, for legacy purposes, it is not absolutely required to set this until - * before the first native debug event is fired. Specifically, if CreateProcess has the + * However, for legacy purposes, it is not absolutely required to set this until + * before the first native debug event is fired. Specifically, if CreateProcess has the * CREATE_SUSPENDED flag, native debug events will not be dispatched until the main thread * is resumed. - * DebugActiveProcess will dispatch native debug events immediately, and so the unmanaged callback + * DebugActiveProcess will dispatch native debug events immediately, and so the unmanaged callback * must be set before DebugActiveProcess is called. * - * Returns: - * S_OK if callback pointer is successfully updated. + * Returns: + * S_OK if callback pointer is successfully updated. * failure on any failure. * */ @@ -1730,7 +1775,7 @@ interface ICorDebug : IUnknown #pragma warning(pop) /* - * A debugger can implement this interface and pass it to ICorDebugRemote to specify the host name of the + * A debugger can implement this interface and pass it to ICorDebugRemote to specify the host name of the * target machine in Mac remote debugging scenarios. This is only supported on Silverlight. */ [ @@ -1743,26 +1788,26 @@ interface ICorDebugRemoteTarget : IUnknown { /* * Return the host name of the target machine. The host name can either be a fully qualified domain name or - * an IPv4 address. If cchHostName is 0 and szHostName is NULL, this function just returns the number of + * an IPv4 address. If cchHostName is 0 and szHostName is NULL, this function just returns the number of * characters including the NULL character in the host name. * - * cchHostName is the number of characters in the buffer szHostName. If this is 0, then szHostName must + * cchHostName is the number of characters in the buffer szHostName. If this is 0, then szHostName must * be NULL. If it is not 0, then szHostName must be non-NULL. - * - * pcchHostName returns the number of characters including the NULL character in the host name. This can + * + * pcchHostName returns the number of characters including the NULL character in the host name. This can * be NULL. - * + * * szHostName is the buffer for returning the host name. */ HRESULT GetHostName([in] ULONG32 cchHostName, [out, annotation("_Out_")] ULONG32 * pcchHostName, - [out, size_is(cchHostName), length_is(*pcchHostName), annotation("_Out_writes_to_opt_(cchHostName, *pcchHostName)")] + [out, size_is(cchHostName), length_is(*pcchHostName), annotation("_Out_writes_to_opt_(cchHostName, *pcchHostName)")] WCHAR szHostName[]); } /* - * A debugger can QI for this interface from an ICorDebug interface in order to specify a target machine in + * A debugger can QI for this interface from an ICorDebug interface in order to specify a target machine in * Mac remote debugging scenarios. This is only supported on Silverlight. */ [ @@ -1911,7 +1956,7 @@ interface ICorDebug2 : IUnknown ver_ICorDebugAppDomain3 = CorDebugVersion_4_5, ver_ICorDebugCode3 = CorDebugVersion_4_5, ver_ICorDebugILFrame3 = CorDebugVersion_4_5, - + CorDebugLatestVersion = CorDebugVersion_4_5 } CorDebugInterfaceVersion; @@ -2064,7 +2109,7 @@ interface ICorDebugController : IUnknown * * Note that currently if unmanaged debugging is enabled this call will * fail due to OS limitations. - * + * * Returns S_OK on success. * */ @@ -2172,13 +2217,13 @@ interface ICorDebugAppDomain : ICorDebugController * callers know the full size of buffer they'd need to allocate to get the full string. * * if (cchName == 0) then we're in "query" mode: - * This fails if szName is non-null or pcchName is null + * This fails if szName is non-null or pcchName is null * Else this function will set pcchName to let the caller know how large of a buffer to allocate * and return S_OK. * - * if (cchName != 0) then + * if (cchName != 0) then * This fails if szName is null. - * Else this copies as much as can fit into szName (it will always null terminate szName) and returns S_OK. + * Else this copies as much as can fit into szName (it will always null terminate szName) and returns S_OK. * pcchName can be null. If it's non-null, we set it. * * The expected usage pattern is that a client will call once to get the size of a buffer needed for the name, @@ -2203,7 +2248,7 @@ interface ICorDebugAppDomain : ICorDebugController HRESULT GetObject([out] ICorDebugValue **ppObject); - /* + /* * DEPRECATED. This does nothing in V3. Attaching is process-wide. */ @@ -2360,7 +2405,7 @@ interface ICorDebugAssembly : IUnknown /* * GetName returns the full path and filename of the assembly. * If the assembly has no filename (i.e. it is in-memory only), - * S_FALSE is returned, and a fabricated string is stored into szName. + * S_FALSE is returned, and a fabricated string is stored into szName. */ HRESULT GetName([in] ULONG32 cchName, @@ -2405,7 +2450,7 @@ interface ICorDebugAssembly3 : IUnknown /* * Gets an enumeration for all the assemblies contained within this assembly * If the assembly isn't a container, the result is S_FALSE and the enumeration - * will be empty. Symbols are needed to compute this result; if they aren't + * will be empty. Symbols are needed to compute this result; if they aren't * present an error will be returned and no enumeration provided. */ HRESULT EnumerateContainedAssemblies(ICorDebugAssemblyEnum **ppAssemblies); @@ -2541,7 +2586,7 @@ typedef struct COR_GC_REFERENCE ICorDebugAppDomain *Domain; // The AppDomain of the handle/object, may be null. ICorDebugValue *Location; // A reference to the object CorGCReferenceType Type; // Where the root came from. - + /* DependentSource - for HandleDependent RefCount - for HandleStrongRefCount @@ -2570,13 +2615,13 @@ cpp_quote("#define _DEF_COR_ARRAY_LAYOUT_") typedef struct COR_ARRAY_LAYOUT { COR_TYPEID componentID; // The type of objects the array contains - + CorElementType componentType; // Whether the component itself is a GC reference, value class, or primitive - + ULONG32 firstElementOffset; // The offset to the first element ULONG32 elementSize; // The size of each element ULONG32 countOffset; // The offset to the number of elements in the array. - + // For multidimensional arrays (works with normal arrays too). ULONG32 rankSize; // The size of the rank ULONG32 numRanks; // The number of ranks in the array (1 for array, N for multidimensional array) @@ -2605,7 +2650,7 @@ typedef struct COR_FIELD mdFieldDef token; // FieldDef token to get the field info ULONG32 offset; // Offset in object of data. COR_TYPEID id; // TYPEID of the field - + CorElementType fieldType; } COR_FIELD; cpp_quote("#endif // _DEF_COR_FIELD_") @@ -2939,15 +2984,15 @@ interface ICorDebugProcess2 : IUnknown interface ICorDebugProcess3 : IUnknown { /* Enables (or disables) custom debugger notifications of a specified - * type (which implements ICustomDebuggerNotification). + * type (which implements ICustomDebuggerNotification). * When this has been enabled, calls to * System.Diagnostics.Debugger.CustomNotification with a data argument * of the specified class will trigger a CustomNotification callback. * Notifications are disabled by default and the debugger must opt-into * any notification types it knows of and wishes to handle. - * Since ICorDebugClass is scoped by appdomains, the debugger needs to - * call this API for every appdomain in the process if it's interested in - * receiving the notification across the entire process. + * Since ICorDebugClass is scoped by appdomains, the debugger needs to + * call this API for every appdomain in the process if it's interested in + * receiving the notification across the entire process. */ HRESULT SetEnableCustomNotification(ICorDebugClass * pClass, BOOL fEnable); @@ -2967,14 +3012,14 @@ interface ICorDebugProcess5 : IUnknown HRESULT GetObject([in] CORDB_ADDRESS addr, [out] ICorDebugObjectValue **pObject); HRESULT EnumerateGCReferences([in] BOOL enumerateWeakReferences, [out] ICorDebugGCReferenceEnum **ppEnum); HRESULT EnumerateHandles([in] CorGCReferenceType types, [out] ICorDebugGCReferenceEnum **ppEnum); - + HRESULT GetTypeID([in] CORDB_ADDRESS obj, [out] COR_TYPEID *pId); HRESULT GetTypeForTypeID([in] COR_TYPEID id, [out] ICorDebugType **ppType); - + HRESULT GetArrayLayout([in] COR_TYPEID id, [out] COR_ARRAY_LAYOUT *pLayout); HRESULT GetTypeLayout([in] COR_TYPEID id, [out] COR_TYPE_LAYOUT *pLayout); HRESULT GetTypeFields([in] COR_TYPEID id, ULONG32 celt, COR_FIELD fields[], ULONG32 *pceltNeeded); - + /* * Enables the specified policy. */ @@ -2985,12 +3030,12 @@ interface ICorDebugProcess5 : IUnknown // Describes formats of pRecord byte blob in DecodeEvent. // This is dependent on the target architecture. typedef enum CorDebugRecordFormat -{ +{ FORMAT_WINDOWS_EXCEPTIONRECORD32 = 1, FORMAT_WINDOWS_EXCEPTIONRECORD64 = 2, } CorDebugRecordFormat; -// dwFlags in DecodeEvent is dependent on the target architecture. +// dwFlags in DecodeEvent is dependent on the target architecture. // Definition of DecodeEvent flags on Windows. typedef enum CorDebugDecodeEventFlagsWindows { @@ -3008,13 +3053,13 @@ typedef enum CorDebugDebugEventKind DEBUG_EVENT_KIND_MANAGED_EXCEPTION_UNHANDLED = 6 } CorDebugDebugEventKind; -// Describes what amount of cached data must be discarded based on changes to the +// Describes what amount of cached data must be discarded based on changes to the // process typedef enum CorDebugStateChange { - PROCESS_RUNNING = 0x0000001, // The process reached a new memory state via - // forward execution. - FLUSH_ALL = 0x0000002, // The process' memory might be arbitrarily + PROCESS_RUNNING = 0x0000001, // The process reached a new memory state via + // forward execution. + FLUSH_ALL = 0x0000002, // The process' memory might be arbitrarily // different than it was before. } CorDebugStateChange; @@ -3058,7 +3103,7 @@ typedef enum CorDebugCodeInvokePurpose CODE_INVOKE_PURPOSE_NONE, CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION, // The managed code will run any managed entrypoint // such as a reverse p-invoke. Any more detailed purpose - // is unknown by the runtime. + // is unknown by the runtime. CODE_INVOKE_PURPOSE_CLASS_INIT, // The managed code will run a static constructor CODE_INVOKE_PURPOSE_INTERFACE_DISPATCH, // The managed code will run the implementation for // some interface method that was called @@ -3072,20 +3117,20 @@ typedef enum CorDebugCodeInvokePurpose ] interface ICorDebugProcess6 : IUnknown { - //Decodes managed debug events which have been encapsulated in the payload of + //Decodes managed debug events which have been encapsulated in the payload of //specially crafted native exception debug events HRESULT DecodeEvent( [in, length_is(countBytes), size_is(countBytes)] const BYTE pRecord[], [in] DWORD countBytes, [in] CorDebugRecordFormat format, - [in] DWORD dwFlags, - [in] DWORD dwThreadId, + [in] DWORD dwFlags, + [in] DWORD dwThreadId, [out] ICorDebugDebugEvent **ppEvent); // Debugger calls this to notify ICorDebug that the process is running. // // Notes: - // ProcessStateChanged(PROCESS_RUNNING) has similar semantics to + // ProcessStateChanged(PROCESS_RUNNING) has similar semantics to // ICorDebugProcess::Continue(); HRESULT ProcessStateChanged([in] CorDebugStateChange change); @@ -3098,13 +3143,13 @@ interface ICorDebugProcess6 : IUnknown // various ICorDebug APIs described below. // // Terminology - // The aggregate modules are called containers, the modules inside are called - // sub-modules or virtual modules. Both container modules and sub-modules are - // represented with the ICorDebugModule interface, however the behavior of the + // The aggregate modules are called containers, the modules inside are called + // sub-modules or virtual modules. Both container modules and sub-modules are + // represented with the ICorDebugModule interface, however the behavior of the // interface is slightly different in each case, as described below. - // In addition there may still be modules loaded that weren't merged during build. + // In addition there may still be modules loaded that weren't merged during build. // These modules, called regular modules, are neither container modules nor - // sub-modules. + // sub-modules. // // Modules and assemblies // Multi-module assemblies are not supported for assembly merging scenarios @@ -3127,7 +3172,7 @@ interface ICorDebugProcess6 : IUnknown // -have a reduced set of metadata that corresponds only to the original // assembly that was merged in. // -The metadata names have no mangling. - // -Metadata tokens are unlikely to match with the tokens in the original + // -Metadata tokens are unlikely to match with the tokens in the original // assembly before it was merged in the build process // -ICorDebugModule.GetName() returns the assembly name (not a file path) // -ICorDebug.GetSize() returns the original unmerged image size. @@ -3157,7 +3202,7 @@ interface ICorDebugProcess6 : IUnknown // Disabled - Returns a list of container assemblies + regular assemblies // (no sub-assemblies are shown) // Enabled - Returns the list of sub-assemblies + regular assemblies - // (no container assemblies are shown). + // (no container assemblies are shown). // Note: If any container assembly is missing symbols, none of its // sub-assemblies will be enumerated. If any regular assembly is // missing symbols it may or may not be enumerated. @@ -3178,10 +3223,10 @@ interface ICorDebugProcess6 : IUnknown HRESULT EnableVirtualModuleSplitting(BOOL enableSplitting); // Changes internal state of the debuggee so that the System.Debugger.IsAttached API in the BCL - // returns true. + // returns true. // // Returns - // S_OK - debuggee is succesfully updated + // S_OK - debuggee is succesfully updated // CORDBG_E_MODULE_NOT_LOADED - assembly containing System.Debugger.IsAttached API is not loaded // or some other error is preventing it from being recognized such as missing metadata. This error // is common and benign - it is recommended to try the call again when future assemblies load. @@ -3205,7 +3250,7 @@ interface ICorDebugProcess6 : IUnknown HRESULT GetExportStepInfo([in]LPCWSTR pszExportName, [out]CorDebugCodeInvokeKind* pInvokeKind, [out]CorDebugCodeInvokePurpose* pInvokePurpose); } -typedef enum WriteableMetadataUpdateMode +typedef enum WriteableMetadataUpdateMode { LegacyCompatPolicy, AlwaysShowUpdates @@ -3238,7 +3283,7 @@ interface ICorDebugProcess8 : IUnknown * EnableExceptionCallbacksOutsideOfMyCode enables/disables certain types of exception callback to ICorDebugManagedCallback2. * If the flag is FALSE: * 1) DEBUG_EXCEPTION_FIRST_CHANCE callbacks won't called in the debugger. - * 2) DEBUG_EXCEPTION_CATCH_HANDLER_FOUND callbacks won't be called if an exception never escapes into user code. + * 2) DEBUG_EXCEPTION_CATCH_HANDLER_FOUND callbacks won't be called if an exception never escapes into user code. * (i.e. a path from an exception origin to an exception handler has no methods marked as JMC) * * Default value of this flag is TRUE. @@ -3246,6 +3291,27 @@ interface ICorDebugProcess8 : IUnknown HRESULT EnableExceptionCallbacksOutsideOfMyCode([in] BOOL enableExceptionsOutsideOfJMC); } +[ + object, + local, + uuid(8F378F6F-1017-4461-9890-ECF64C54079F), + pointer_default(unique) +] +interface ICorDebugProcess10 : IUnknown +{ + // + // Enable or disable the GC notification events. The GC notification events are turned off by default + // They will be delivered through ICorDebugManagedCallback4 + // + // Parameters + // fEnable - true to enable the events, false to disable + // + // Returns + // S_OK - on success + // + HRESULT EnableGCNotificationEvents(BOOL fEnable); +} + // Event types MODULE_LOADED and MODULE_UNLOADED implement this interface [ object, @@ -3275,23 +3341,23 @@ interface ICorDebugModuleDebugEvent : ICorDebugDebugEvent ] interface ICorDebugExceptionDebugEvent : ICorDebugDebugEvent { - // The meaning of this stack pointer varies based on event type (available from + // The meaning of this stack pointer varies based on event type (available from // ICorDebugDebugEvent.GetEventType()) // // MANAGED_EXCEPTION_FIRST_CHANCE -> The stack pointer for the frame that threw the exception - // MANAGED_EXCEPTION_USER_FIRST_CHANCE -> The stack pointer for the user-code frame closest to the point of + // MANAGED_EXCEPTION_USER_FIRST_CHANCE -> The stack pointer for the user-code frame closest to the point of // the thrown exception // MANAGED_EXCEPTION_CATCH_HANDLER_FOUND -> The stack pointer for the frame that contains the catch handler // MANAGED_EXCEPTION_UNHANDLED -> *pStackPointer will be NULL HRESULT GetStackPointer([out]CORDB_ADDRESS *pStackPointer); - // The meaning of the IP varies based on event type (available from + // The meaning of the IP varies based on event type (available from // ICorDebugDebugEvent.GetEventType()) // // MANAGED_EXCEPTION_FIRST_CHANCE -> The address of the faulting instruction - // MANAGED_EXCEPTION_USER_FIRST_CHANCE -> Within the frame indicated by GetStackPointer(), - // this is the code address where execution would resume if no exception had been - // raised. The exception may or may not cause different code to be executed in this + // MANAGED_EXCEPTION_USER_FIRST_CHANCE -> Within the frame indicated by GetStackPointer(), + // this is the code address where execution would resume if no exception had been + // raised. The exception may or may not cause different code to be executed in this // frame such as a catch of finally clause. // MANAGED_EXCEPTION_CATCH_HANDLER_FOUND -> Within the frame indicated by GetStackPointer(), // this is the code address where catch handler execution will start @@ -3701,9 +3767,42 @@ interface ICorDebugRegisterSet : IUnknown REGISTER_ARM_R11, REGISTER_ARM_R12, REGISTER_ARM_LR, + REGISTER_ARM_D0, + REGISTER_ARM_D1, + REGISTER_ARM_D2, + REGISTER_ARM_D3, + REGISTER_ARM_D4, + REGISTER_ARM_D5, + REGISTER_ARM_D6, + REGISTER_ARM_D7, + REGISTER_ARM_D8, + REGISTER_ARM_D9, + REGISTER_ARM_D10, + REGISTER_ARM_D11, + REGISTER_ARM_D12, + REGISTER_ARM_D13, + REGISTER_ARM_D14, + REGISTER_ARM_D15, + REGISTER_ARM_D16, + REGISTER_ARM_D17, + REGISTER_ARM_D18, + REGISTER_ARM_D19, + REGISTER_ARM_D20, + REGISTER_ARM_D21, + REGISTER_ARM_D22, + REGISTER_ARM_D23, + REGISTER_ARM_D24, + REGISTER_ARM_D25, + REGISTER_ARM_D26, + REGISTER_ARM_D27, + REGISTER_ARM_D28, + REGISTER_ARM_D29, + REGISTER_ARM_D30, + REGISTER_ARM_D31, + // ARM64 registers - + REGISTER_ARM64_PC = 0, REGISTER_ARM64_SP, REGISTER_ARM64_FP, @@ -3960,7 +4059,7 @@ interface ICorDebugThread : IUnknown * If the thread's user state includes USER_UNSAFE_POINT, then the thread may block a GC. * This means the suspended thread has a mcuh higher chance of causing a deadlock. * - * This may not affect debug events already queued. Thus a debugger should drain the entire + * This may not affect debug events already queued. Thus a debugger should drain the entire * event queue (via calling HasQueuedCallbacks) before suspending or resuming threads. Else it * may get events on a thread that it believes it has already suspended. * @@ -4211,7 +4310,7 @@ interface ICorDebugThread4 : IUnknown { /* * Returns S_OK if ICorDebugThread::GetCurrentException() is non-NULL and the exception - * it refers to has completed the first pass of exception handling without locating + * it refers to has completed the first pass of exception handling without locating * a catch clause. * Returns S_FALSE if there is no exception, it hasn't completed first pass handling, * or a catch handler was located @@ -4220,13 +4319,13 @@ interface ICorDebugThread4 : IUnknown HRESULT HasUnhandledException(); HRESULT GetBlockingObjects([out] ICorDebugBlockingObjectEnum **ppBlockingObjectEnum); - /* + /* * Gets the current CustomNotification object on the current thread. This could be NULL if no * current notification object exists. If we aren't currently inside a CustomNotification callback, * this will always return NULL. - * A debugger can examine this object to determine how to handle the notification. - * See ICorDebugManagedCallback3::CustomNotification for more information about - * custom notifications. + * A debugger can examine this object to determine how to handle the notification. + * See ICorDebugManagedCallback3::CustomNotification for more information about + * custom notifications. */ HRESULT GetCurrentCustomDebuggerNotification([out] ICorDebugValue ** ppNotificationObject); }; @@ -4248,11 +4347,11 @@ interface ICorDebugStackWalk : IUnknown SET_CONTEXT_FLAG_UNWIND_FRAME = 0x2, } CorDebugSetContextFlag; - /* + /* * Get the current context of this stack frame. - * - * The CONTEXT is retrieved from the ICorDebugStackWalk. As unwinding may only restore a subset of the - * registers, such as only non-volatile registers, the context may not exactly match the register state at + * + * The CONTEXT is retrieved from the ICorDebugStackWalk. As unwinding may only restore a subset of the + * registers, such as only non-volatile registers, the context may not exactly match the register state at * the time of the actual call. */ HRESULT GetContext([in] ULONG32 contextFlags, @@ -4260,14 +4359,14 @@ interface ICorDebugStackWalk : IUnknown [out] ULONG32* contextSize, [out, size_is(contextBufSize)] BYTE contextBuf[]); - /* + /* * Change the current context of this stack walk, allowing the * debugger to move it to an arbitrary context. Does not actually * alter the current context of the thread whose stack is being walked. * * The CONTEXT has to be a valid CONTEXT of a stack frame on the thread. * If the CONTEXT is outside of the current thread's stack range, we'll - * return a failure HRESULT. Otherwise, in the case of an invalid CONTEXT, + * return a failure HRESULT. Otherwise, in the case of an invalid CONTEXT, * the result is undefined. */ HRESULT SetContext([in] CorDebugSetContextFlag flag, @@ -4275,11 +4374,11 @@ interface ICorDebugStackWalk : IUnknown [in, size_is(contextSize)] BYTE context[]); /* - * Attempt to advance the stackwalk to the next frame. + * Attempt to advance the stackwalk to the next frame. * If the current frame type is a native stack frame, Next() will not advance to the caller frame. * Instead, Next() will advance to the next managed stack frame or the next internal frame marker. * - * If a debugger wants to unwind unmanaged stack frames, it needs to start from the + * If a debugger wants to unwind unmanaged stack frames, it needs to start from the * native stack frame itself. It can seed the unwind by calling GetContext(). * * This function will return CORDBG_S_AT_END_OF_STACK when there are no more frames. @@ -4322,7 +4421,7 @@ interface ICorDebugChain : IUnknown * call chain. Note that you cannot make any assumptions about * what is actually stored on the stack - the numeric range is to compare * stack frame locations only. - * The start of a stack range is the leafmost boundary of the chain, and + * The start of a stack range is the leafmost boundary of the chain, and * the end of a stack range is the rootmost boundary of the chain. */ @@ -4454,9 +4553,9 @@ interface ICorDebugFrame : IUnknown HRESULT GetCode([out] ICorDebugCode **ppCode); /* - * GetFunction returns the function for the code which this stack - * frame is running. - * For ICorDebugInternalFrames, this may point to a method the + * GetFunction returns the function for the code which this stack + * frame is running. + * For ICorDebugInternalFrames, this may point to a method the * frame is associated with (which may be in a different AppDomain * from the frame itself), or may fail if the frame doesn't relate to any * particular function. @@ -4467,7 +4566,7 @@ interface ICorDebugFrame : IUnknown /* * GetFunctionToken is a convenience routine to return the token for the * function for the code which this stack frame is running. - * The scope to resolve the token can be gotten from the ICorDebugFunction + * The scope to resolve the token can be gotten from the ICorDebugFunction * associated with this frame. */ @@ -4480,7 +4579,7 @@ interface ICorDebugFrame : IUnknown * cannot make any assumptions about what is actually stored on * the stack - the numeric range is to compare stack frame * locations only. - * The start of a stack range is the leafmost boundary of the frame, and + * The start of a stack range is the leafmost boundary of the frame, and * the end of a stack range is the rootmost boundary of the frame. */ @@ -4584,7 +4683,7 @@ interface ICorDebugInternalFrame2 : IUnknown /* * Check if an internal frame is closer to the leaf than pFrameToCompare. */ - HRESULT IsCloserToLeaf([in] ICorDebugFrame * pFrameToCompare, + HRESULT IsCloserToLeaf([in] ICorDebugFrame * pFrameToCompare, [out] BOOL * pIsCloser); }; @@ -4683,7 +4782,7 @@ interface ICorDebugILFrame : ICorDebugFrame /* * EnumerateArguments returns a list of the arguments available in the * frame. Note that this will include varargs arguments as well as - * arguments declared by the function signature (inlucding the implicit + * arguments declared by the function signature (inlucding the implicit * "this" argument if any). */ @@ -4739,8 +4838,8 @@ interface ICorDebugILFrame2 : IUnknown { /* * Performs an on-stack replacement for an outstanding function remap opportunity. - * This is used to update execution of an edited function to the latest version, - * preserving the current frame state (such as the values of all locals). + * This is used to update execution of an edited function to the latest version, + * preserving the current frame state (such as the values of all locals). * This can only be called when a FunctionRemapOpportunity callback has been delivered * for this leaf frame, and the callback has not yet been continued. newILOffset * is the offset into the new function at which execution should continue. @@ -4813,7 +4912,7 @@ interface ICorDebugILFrame4 : IUnknown * instrumented IL. If the IL is not instrumented the enumeration will * be empty and S_OK is returned. */ - + HRESULT EnumerateLocalVariablesEx([in] ILCodeKind flags, [out] ICorDebugValueEnum **ppValueEnum); /* @@ -4850,7 +4949,7 @@ interface ICorDebugILFrame4 : IUnknown }; /* - * ICorDebugNativeFrame is a specialized interface of ICorDebugFrame for jitted frames, i.e. + * ICorDebugNativeFrame is a specialized interface of ICorDebugFrame for jitted frames, i.e. * native frames for managed methods. * (Note that jitted frames implement both ICorDebugILFrame and ICorDebugNativeFrame.) */ @@ -5002,7 +5101,7 @@ interface ICorDebugNativeFrame2 : IUnknown interface ICorDebugModule3 : IUnknown { /* - * CreateReaderForInMemorySymbols creates a debug symbol reader object (eg. + * CreateReaderForInMemorySymbols creates a debug symbol reader object (eg. * ISymUnmanagedReader) for a dynamic module. This symbol reader becomes stale * and is usually discarded whenever a LoadClass callback is delivered for the * module. @@ -5019,7 +5118,7 @@ interface ICorDebugModule3 : IUnknown * yet available. * * Notes: - * This API can also be used to create a symbol reader object for in-memory + * This API can also be used to create a symbol reader object for in-memory * (non-dynamic) modules, but only after the symbols are first available * (indicated by the UpdateModuleSymbols callback). * @@ -5028,7 +5127,7 @@ interface ICorDebugModule3 : IUnknown * the underlying data may have changed (i.e. a LoadClass event). * * Dynamic modules do not have any symbols available until the first type has been - * loaded into them (as indicated by the LoadClass callback). + * loaded into them (as indicated by the LoadClass callback). */ HRESULT CreateReaderForInMemorySymbols([in] REFIID riid, [out][iid_is(riid)] void **ppObj); @@ -5038,7 +5137,7 @@ interface ICorDebugModule3 : IUnknown * ICorDebugRuntimeUnwindableFrame is a specialized interface of ICorDebugFrame for unmanaged methods * which requires special knowledge to unwind. They are not jitted code. When the debugger sees this type * of frames, it should use ICorDebugStackWalk::Next() to unwind, but it should do inspection itself. - * The debugger can call ICorDebugStackWalk::GetContext() to retrieve the CONTEXT of the frame when it gets + * The debugger can call ICorDebugStackWalk::GetContext() to retrieve the CONTEXT of the frame when it gets * an ICorDebugRuntimeUnwindableFrame. */ @@ -5091,8 +5190,8 @@ interface ICorDebugModule : IUnknown /* * GetName returns a name identifying the module. * - * For on-disk modules this is a full path. For dynamic modules this - * is just the filename if one was provided. Otherwise, and for other + * For on-disk modules this is a full path. For dynamic modules this + * is just the filename if one was provided. Otherwise, and for other * in-memory modules, this is just the simple name stored in the module's * metadata. */ @@ -5411,7 +5510,7 @@ ICorDebugFunction3 is a logical extension to ICorDebugFunction. interface ICorDebugFunction3 : IUnknown { /* - * If this function has an active rejit request it will be returned in + * If this function has an active rejit request it will be returned in * pRejitedILCode. * If there is no active request (a common case) then *ppRejitedILCode = NULL * @@ -5419,7 +5518,7 @@ interface ICorDebugFunction3 : IUnknown * ICorProfilerCallback4::GetReJITParameters(). It may not yet be jitted * and threads may still be executing in the original version of the code. * - * A rejit request becomes inactive during the profiler's call to + * A rejit request becomes inactive during the profiler's call to * ICorProfInfo::RequestRevert. Even after being reverted a thread can still * be executing in the rejited code. */ @@ -5438,20 +5537,20 @@ ICorDebugFunction4 is a logical extension to ICorDebugFunction. interface ICorDebugFunction4 : IUnknown { /* - * Sets a breakpoint at offset 0 of any current or future jitted methods. + * Sets a breakpoint at offset 0 of any current or future jitted methods. */ HRESULT CreateNativeBreakpoint(ICorDebugFunctionBreakpoint **ppBreakpoint); }; /* ICorDebugCode represents an IL or native code blob. - + For methods that take offsets, the units are the same as the units on the CordbCode object. (eg, IL offsets for an IL code object, and native offsets for a native code object) - + V2 allows multiple code-regions. CordbCode presents an abstraction where these are merged together in a single linear, continuous space. So if the code is split - with 0x5 bytes at address 0x1000, and 0x10 bytes at address 0x2000, + with 0x5 bytes at address 0x1000, and 0x10 bytes at address 0x2000, then: - GetAddress() yields a start address of 0x1000. - GetSize() is the size of the merged regions = 0x5+ 0x10 = 0x15 bytes. @@ -5499,7 +5598,7 @@ interface ICorDebugCode : IUnknown /* * CreateBreakpoint creates a breakpoint in the function at the - * given offset. + * given offset. * * If this code is IL code, and there is a jitted native version * of the code, the breakpoint will be applied in the jitted code @@ -5697,25 +5796,25 @@ interface ICorDebugILCode2 : IUnknown /* ICorDebugClass represents a Class (mdTypeDef) in the IL image. - For generic types, it represents the generic type definition (eg. List) not any of - the specific instantiations (eg. List). - + For generic types, it represents the generic type definition (eg. List) not any of + the specific instantiations (eg. List). + Use ICorDebugClass2::GetParameterizedType to build an ICorDebugType from an ICorDebugClass and type parameters. - Classes live in a module and are uniquely identified by a mdTypeDef. + Classes live in a module and are uniquely identified by a mdTypeDef. In other words, you can round-trip a class like so: ICorDebugClass * pClass1 = ...; // some initial class - - ICorDebugModule * pModule = NULL; + + ICorDebugModule * pModule = NULL; pClass1->GetModule(&pModule); mdTypeDef token; pClass1->GetToken(&token); - + ICorDebugClass * pClass2; - pModule->GetClassFromToken(token, &pClass2); - // Now: pClass1 == pClass2 + pModule->GetClassFromToken(token, &pClass2); + // Now: pClass1 == pClass2 */ [ @@ -5747,12 +5846,12 @@ interface ICorDebugClass : IUnknown * Note that if the class accepts type parameters, then you should * use GetStaticField on an appropriate ICorDebugType rather than on the * ICorDebugClass. - * + * * Returns: * S_OK on success. * CORDBG_E_FIELD_NOT_STATIC if the field is not static. * CORDBG_E_STATIC_VAR_NOT_AVAILABLE if field is not yet available (storage for statics - * may be lazily allocated). + * may be lazily allocated). * CORDBG_E_VARIABLE_IS_ACTUALLY_LITERAL if the field is actually a metadata literal. In this * case, the debugger should get the value from the metadata. * error on other errors. @@ -5850,7 +5949,7 @@ interface ICorDebugEval : IUnknown * CallFunction sets up a function call. Note that if the function * is virtual, this will perform virtual dispatch. If the function is * not static, then the first argument must be the "this" object. - * If the function is in an a different AppDomain, a transition will + * If the function is in an a different AppDomain, a transition will * occur (but all arguments must also be in the target AppDomain) */ @@ -6132,7 +6231,7 @@ interface ICorDebugValue3 : IUnknown { /* * GetSize returns the size of the value in bytes. It has the same - * semantics as ICorDebugValue::GetSize except that it works + * semantics as ICorDebugValue::GetSize except that it works * for arrays >4GB. */ @@ -6298,7 +6397,7 @@ interface ICorDebugHeapValue2 : IUnknown interface ICorDebugHeapValue3 : IUnknown { - /* + /* * Gets the owning thread for a monitor lock */ HRESULT GetThreadOwningMonitorLock([out] ICorDebugThread **ppThread, [out] DWORD *pAcquisitionCount); @@ -6392,6 +6491,40 @@ interface ICorDebugObjectValue2 : IUnknown [out] ICorDebugType **ppType); }; +[ + object, + local, + uuid(3AF70CC7-6047-47F6-A5C5-090A1A622638), + pointer_default(unique) +] +interface ICorDebugDelegateObjectValue : IUnknown +{ + /* + * GetTarget retrieves the object on which the delegate calls the function. + * Returns: + * - S_OK: + * - The ICorDebugReferenceValue object targeted by the function. + * - NULL if the delegate function is a static function or an open delegate + * - HRESULT CORDBG_E_UNSUPPORTED_DELEGATE for curently unsupported delegates. + * In this case, the value of ppObject should not be used. Some of these + * include: Secure wrappers, Open Virual delegates. + */ + HRESULT GetTarget([out] ICorDebugReferenceValue **ppObject); + + /* + * GetFunction returns the function that gets run by the delegate. + * - S_OK: + * - The ICorDebugFunction function for the function the delegate would invoke. + * - There are a few cases where the ICorDebugFunction can be different from what's expected, + * such as generic methods, which won't contain the instantiation. + * - HRESULT CORDBG_E_UNSUPPORTED_DELEGATE for curently unsupported delegates. + * In this case, the value of ppObject should not be used. Some of these + * include: Secure wrappers, Open Virual delegates. + */ + HRESULT GetFunction([out] ICorDebugFunction **ppFunction); +} + + /* * ICorDebugBoxValue is a subclass of ICorDebugValue which * represents a boxed value class object. @@ -6541,7 +6674,7 @@ interface ICorDebugVariableHome : IUnknown * Returns E_FAIL if the variable is a function argument. */ HRESULT GetSlotIndex([out] ULONG32 *pSlotIndex); - + /* * GetArgumentIndex - gives the argument index of a function argument. * The argument index can be used to retrieve the metadata for this @@ -6566,7 +6699,7 @@ interface ICorDebugVariableHome : IUnknown // location VLT_INVALID } VariableLocationType; - + /* * GetLocationType - gives the type of native location. See * VariableLocationType. @@ -6583,7 +6716,7 @@ interface ICorDebugVariableHome : IUnknown * register-relative location. */ HRESULT GetRegister([out] CorDebugRegister *pRegister); - + /* * GetOffset - gives the offset from the base register for a variable. * Returns E_FAIL if the variable is not in a register-relative memory @@ -6594,7 +6727,7 @@ interface ICorDebugVariableHome : IUnknown -/* +/* * ICorDebugHandleValue represents a reference value that the debugger has * explicitly created a GC handle to. It does not represent GC Handles in the debuggee process, @@ -6665,18 +6798,18 @@ interface ICorDebugComObjectValue : IUnknown * that are cached by the COM object. */ HRESULT GetCachedInterfaceTypes( - [in] BOOL bIInspectableOnly, + [in] BOOL bIInspectableOnly, [out] ICorDebugTypeEnum **ppInterfacesEnum); /* * GetCachedInterfacePointers returns at most celt values of the * interface pointer values cached by the COM object. It fills - * pcEltFetched with the actual number of fetched elements. + * pcEltFetched with the actual number of fetched elements. * When called with NULL for ptrs, and 0 for celt, it simply returns * the number of elements it needs. */ HRESULT GetCachedInterfacePointers( - [in] BOOL bIInspectableOnly, + [in] BOOL bIInspectableOnly, [in] ULONG32 celt, [out] ULONG32 *pcEltFetched, [out, size_is(celt), length_is(*pcEltFetched)] CORDB_ADDRESS * ptrs); @@ -6925,7 +7058,7 @@ interface ICorDebugVariableHomeEnum : ICorDebugEnum ICorDebugVariableHome *homes[], [out] ULONG *pceltFetched); }; - + [ object, local, @@ -6974,7 +7107,7 @@ interface ICorDebugTypeEnum : ICorDebugEnum * represent instantiated generic types (Eg, List) * Use the metadata interfaces to get static (Compile-time) information about the type. * - * A type (and all of its type parameters) lives in an single AppDomain and becomes + * A type (and all of its type parameters) lives in an single AppDomain and becomes * invalid once the containing ICorDebugAppDomain is unloaded. * * Types may be lazily loaded, so if the debugger queries for a type that hasn't been @@ -7233,7 +7366,7 @@ interface ICorDebugMDA : IUnknown // Get the flags associated w/ the MDA. New flags may be added in future versions. typedef enum CorDebugMDAFlags { - // If this flag is high, then the thread may have slipped since the MDA was fired. + // If this flag is high, then the thread may have slipped since the MDA was fired. MDA_FLAG_SLIP = 0x2 } CorDebugMDAFlags; HRESULT GetFlags([in] CorDebugMDAFlags * pFlags); diff --git a/lib/coreclr/src/inc/cordebuginfo.h b/lib/coreclr/src/inc/cordebuginfo.h index b065c5fc06b5..bbe4de8739b5 100644 --- a/lib/coreclr/src/inc/cordebuginfo.h +++ b/lib/coreclr/src/inc/cordebuginfo.h @@ -2,6 +2,10 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +// +// Keep in sync with https://github.com/dotnet/corert/blob/master/src/Native/ObjWriter/cordebuginfo.h +// + /**********************************************************************************/ // DebugInfo types shared by JIT-EE interface and EE-Debugger interface @@ -191,104 +195,114 @@ class ICorDebugInfo VLT_INVALID, }; + // VLT_REG/VLT_REG_FP -- Any pointer-sized enregistered value (TYP_INT, TYP_REF, etc) + // eg. EAX + // VLT_REG_BYREF -- the specified register contains the address of the variable + // eg. [EAX] + + struct vlReg + { + RegNum vlrReg; + }; + + // VLT_STK -- Any 32 bit value which is on the stack + // eg. [ESP+0x20], or [EBP-0x28] + // VLT_STK_BYREF -- the specified stack location contains the address of the variable + // eg. mov EAX, [ESP+0x20]; [EAX] + + struct vlStk + { + RegNum vlsBaseReg; + signed vlsOffset; + }; + + // VLT_REG_REG -- TYP_LONG with both DWords enregistred + // eg. RBM_EAXEDX + + struct vlRegReg + { + RegNum vlrrReg1; + RegNum vlrrReg2; + }; + + // VLT_REG_STK -- Partly enregistered TYP_LONG + // eg { LowerDWord=EAX UpperDWord=[ESP+0x8] } + + struct vlRegStk + { + RegNum vlrsReg; + struct + { + RegNum vlrssBaseReg; + signed vlrssOffset; + } vlrsStk; + }; + + // VLT_STK_REG -- Partly enregistered TYP_LONG + // eg { LowerDWord=[ESP+0x8] UpperDWord=EAX } + + struct vlStkReg + { + struct + { + RegNum vlsrsBaseReg; + signed vlsrsOffset; + } vlsrStk; + RegNum vlsrReg; + }; + + // VLT_STK2 -- Any 64 bit value which is on the stack, + // in 2 successsive DWords. + // eg 2 DWords at [ESP+0x10] + + struct vlStk2 + { + RegNum vls2BaseReg; + signed vls2Offset; + }; + + // VLT_FPSTK -- enregisterd TYP_DOUBLE (on the FP stack) + // eg. ST(3). Actually it is ST("FPstkHeigth - vpFpStk") + + struct vlFPstk + { + unsigned vlfReg; + }; + + // VLT_FIXED_VA -- fixed argument of a varargs function. + // The argument location depends on the size of the variable + // arguments (...). Inspecting the VARARGS_HANDLE indicates the + // location of the first arg. This argument can then be accessed + // relative to the position of the first arg + + struct vlFixedVarArg + { + unsigned vlfvOffset; + }; + + // VLT_MEMORY + + struct vlMemory + { + void *rpValue; // pointer to the in-process + // location of the value. + }; + struct VarLoc { VarLocType vlType; union { - // VLT_REG/VLT_REG_FP -- Any pointer-sized enregistered value (TYP_INT, TYP_REF, etc) - // eg. EAX - // VLT_REG_BYREF -- the specified register contains the address of the variable - // eg. [EAX] - - struct - { - RegNum vlrReg; - } vlReg; - - // VLT_STK -- Any 32 bit value which is on the stack - // eg. [ESP+0x20], or [EBP-0x28] - // VLT_STK_BYREF -- the specified stack location contains the address of the variable - // eg. mov EAX, [ESP+0x20]; [EAX] - - struct - { - RegNum vlsBaseReg; - signed vlsOffset; - } vlStk; - - // VLT_REG_REG -- TYP_LONG with both DWords enregistred - // eg. RBM_EAXEDX - - struct - { - RegNum vlrrReg1; - RegNum vlrrReg2; - } vlRegReg; - - // VLT_REG_STK -- Partly enregistered TYP_LONG - // eg { LowerDWord=EAX UpperDWord=[ESP+0x8] } - - struct - { - RegNum vlrsReg; - struct - { - RegNum vlrssBaseReg; - signed vlrssOffset; - } vlrsStk; - } vlRegStk; - - // VLT_STK_REG -- Partly enregistered TYP_LONG - // eg { LowerDWord=[ESP+0x8] UpperDWord=EAX } - - struct - { - struct - { - RegNum vlsrsBaseReg; - signed vlsrsOffset; - } vlsrStk; - RegNum vlsrReg; - } vlStkReg; - - // VLT_STK2 -- Any 64 bit value which is on the stack, - // in 2 successsive DWords. - // eg 2 DWords at [ESP+0x10] - - struct - { - RegNum vls2BaseReg; - signed vls2Offset; - } vlStk2; - - // VLT_FPSTK -- enregisterd TYP_DOUBLE (on the FP stack) - // eg. ST(3). Actually it is ST("FPstkHeigth - vpFpStk") - - struct - { - unsigned vlfReg; - } vlFPstk; - - // VLT_FIXED_VA -- fixed argument of a varargs function. - // The argument location depends on the size of the variable - // arguments (...). Inspecting the VARARGS_HANDLE indicates the - // location of the first arg. This argument can then be accessed - // relative to the position of the first arg - - struct - { - unsigned vlfvOffset; - } vlFixedVarArg; - - // VLT_MEMORY - - struct - { - void *rpValue; // pointer to the in-process - // location of the value. - } vlMemory; + ICorDebugInfo::vlReg vlReg; + ICorDebugInfo::vlStk vlStk; + ICorDebugInfo::vlRegReg vlRegReg; + ICorDebugInfo::vlRegStk vlRegStk; + ICorDebugInfo::vlStkReg vlStkReg; + ICorDebugInfo::vlStk2 vlStk2; + ICorDebugInfo::vlFPstk vlFPstk; + ICorDebugInfo::vlFixedVarArg vlFixedVarArg; + ICorDebugInfo::vlMemory vlMemory; }; }; diff --git a/lib/coreclr/src/inc/coregen.h b/lib/coreclr/src/inc/coregen.h index f8d07a57ad8b..a286c27174b1 100644 --- a/lib/coreclr/src/inc/coregen.h +++ b/lib/coreclr/src/inc/coregen.h @@ -13,11 +13,13 @@ #define NGENWORKER_FLAGS_TUNING 0x0001 #define NGENWORKER_FLAGS_MISSINGDEPENDENCIESOK 0x0004 +#define NGENWORKER_FLAGS_LARGEVERSIONBUBBLE 0x0008 #define NGENWORKER_FLAGS_WINMD_RESILIENT 0x1000 #define NGENWORKER_FLAGS_READYTORUN 0x2000 #define NGENWORKER_FLAGS_NO_METADATA 0x4000 #define NGENWORKER_FLAGS_SILENT 0x8000 #define NGENWORKER_FLAGS_VERBOSE 0x10000 +#define NGENWORKER_FLAGS_SUPPRESS_WARNINGS 0x20000 #endif // _NGENCOMMON_H_ diff --git a/lib/coreclr/src/inc/corerror.xml b/lib/coreclr/src/inc/corerror.xml index a859cfac5d40..38efe0d6deed 100644 --- a/lib/coreclr/src/inc/corerror.xml +++ b/lib/coreclr/src/inc/corerror.xml @@ -71,166 +71,11 @@ STATUS: Data value was truncated. - - CLDB_S_NULL - NULL data value. - - - - CLDB_S_INDEX_TABLESCANREQUIRED - Table scan required to run query. - - - - TLBX_I_TYPEINFO_IMPORTED - Typelib import: progress report. - - - - TLBX_I_PIA_REGISTERED_FOR_TLB - Primary interop assembly '{0}' is already registered for type library '{1}'. - - - - TLBX_I_AGNOSTIC_ASSEMBLY - Importing a type library into a platform agnostic assembly. This can cause errors if the type library is not truly platform agnostic. - - - - TLBX_I_USEIUNKNOWN - Typelib export: substituted IUnknown for type. - - - - TLBX_I_UNCONVERTABLE_ARGS - Typelib import: signature can't be converted (eg, struct**) - - - - TLBX_I_UNCONVERTABLE_FIELD - Typelib import: signature can't be converted (eg, struct**) - - - - TLBX_W_WARNING_MESSAGE - Typelib export: Warning message wrapper. - - - - TLBX_W_ASSEMBLY_HAS_EMBEDDED_TLB - Type library is being exported for assembly '{0}' which already contains an embedded type library - - - - TLBX_W_CROSS_COMPILE_NO_REFS - When cross-compiling, all type library references should be included on the command line to ensure the correct bit-specific type libraries are loaded. - - - - TLBX_W_PURE_CROSS_COMPILE - Performing cross-compile of 32-bit non-agnostic assembly to 64-bit type library or 64-bit non-agnostic assembly to 32-bit type library. This is dangerous as pointer sizes and processor dependence will likely cause incompatibility between the assembly and resultant type library. - - - - TLBX_I_TYPE_EXPORTED - Typelib export: type exported - - - - TLBX_I_DUPLICATE_DISPID - Typelib export: duplicate dispid -- auto corrected. - - - - TLBX_I_REF_TYPE_AS_STRUCT - Typelib export: reference type had layout, exported as struct. - - - - TLBX_I_GENERIC_TYPE - TypeLib export: generic type definition - - - - TLBX_W_NON_INTEGRAL_CA_TYPE - TypeLib import: Ignoring IDL custom attribute -- does not have an integral value. - - - - TLBX_W_IENUM_CA_ON_IUNK - TypeLib import: Ignoring IDL custom attribute -- using IEnum CA on an IUnknown derived interface. - - - - META_S_PARAM_MISMATCH - Merge: Parameter information mismatched. - - META_S_DUPLICATE Attempt to define an object that already exists in valid scenerios. - - TLBX_S_REFERENCED_TYPELIB - TypeLib import: reference to an external typelib. - - - - TLBX_S_NOSTDINTERFACE - Typelib export: Found an interface marked as IID_IDispatch or IID_IUnknown. - - - - TLBX_S_DUPLICATE_DISPID - Typelib export: duplicate dispid found; ignored. - - - - TLBX_W_ENUM_VALUE_TOOBIG - Typelib export: The enum value is not legal for a typelib. - - - - TLBX_W_EXPORTING_AUTO_LAYOUT - TypeLib export: Exporting an auto-layout type. - - - - TLBX_W_DEFAULT_INTF_NOT_VISIBLE - TypeLib export: ComDefaultInterface is not COMVisible. - - - - TLBX_W_BAD_SAFEARRAYFIELD_NO_ELEMENTVT - TypeLib export: System.Array SAFEARRAY field without a SafeArraySubType. - - - - TLBX_W_LAYOUTCLASS_AS_INTERFACE - TypeLib export: Class with layout parameter of field marked with UnmanagedType.Interface - - - - TLBX_I_GENERIC_BASE_TYPE - TypeLib export: type deriving from a generic type. - - - - VLDTR_S_WRN - Warnings found in the validator. - - - - VLDTR_S_ERR - Errors found in the validator. - - - - VLDTR_S_WRNERR - Warnings and errors found in the validator. - - CORDBG_S_BAD_START_SEQUENCE_POINT Attempt to SetIP not at a sequence point sequence point. @@ -241,11 +86,6 @@ Attempt to SetIP when not going to a sequence point. If both this and CORDBG_E_BAD_START_SEQUENCE_POINT are true, only CORDBG_E_BAD_START_SEQUENCE_POINT will be reported. - - CORDBG_S_INSUFFICIENT_INFO_FOR_SET_IP - SetIP is possible, but the debugger doesn't have enough info to fix variable locations, GC refs, or anything else. Use at your own risk. - - CORDBG_S_FUNC_EVAL_HAS_NO_RESULT Some Func evals will lack a return value, @@ -272,36 +112,12 @@ Not all bits specified were successfully applied - - CEE_E_ENTRYPOINT - "Invalid entrypoint information." - The entry point info is invalid. - - CEE_E_CVTRES_NOT_FOUND "cvtres.exe not found." cannot find cvtres.exe - - MSEE_E_LOADLIBFAILED - "Failed to delayload a library." - Failed to delay load library %s (Win32 error: %d). - - - - MSEE_E_GETPROCFAILED - "Failed to get dll entrypoint." - Failed to get entry point %s (Win32 error: %d). - - - - MSEE_E_MULTCOPIESLOADED - "Multiple copies of mscoree.dll have been loaded into the same process." - Multiple copies of MSCOREE.dll have been loaded by the same process. - - COR_E_TYPEUNLOADED "Type has been unloaded." @@ -326,12 +142,6 @@ Assembly is being currently being loaded - - MSEE_E_CANNOTCREATEAPPDOMAIN - "Attempt to create appdomain failed." - Attempt to create appdomain failed - - COR_E_ASSEMBLYEXPECTED "The module was expected to contain an assembly manifest." @@ -344,30 +154,12 @@ Attempt to load an unverifiable exe with fixups (IAT with more than 2 sections or a TLS section) - - COR_E_NO_LOADLIBRARY_ALLOWED - "Attempt to LoadLibrary a managed image in an improper way (only assemblies with EAT area allowed)." - Attempt to LoadLibrary a managed image in an improper way (only assemblies with EAT's area allowed.) - - COR_E_NEWER_RUNTIME "This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded." The assembly is built by a runtime newer than the currently loaded runtime, and cannot be loaded. - - COR_E_CANNOT_SET_POLICY - "Cannot set security policy under MultiDomain after non-GAC assemblies have been loaded in appdomain." - Unable to set app domain security policy after non-GAC domain neutral assemblies are loaded - - - - COR_E_CANNOT_SPECIFY_EVIDENCE - "Cannot specify assembly evidence under MultiDomain after non-GAC assemblies with default evidence have been loaded in appdomain." - Unable to use assembly evidence after non-GAC domain neutral assemblies are loaded - - COR_E_MULTIMODULEASSEMBLIESDIALLOWED "The module cannot be loaded because only single file assemblies are supported." @@ -380,12 +172,6 @@ Host detects deadlock on a blocking operation - - HOST_E_INTERRUPTED - "Host interrupted a wait." - Host interrupts a wait, similar to APC - - HOST_E_INVALIDOPERATION "Invalid operation." @@ -398,24 +184,6 @@ CLR has been disabled due to unrecoverable error - - HOST_E_TIMEOUT - "A wait has timed out." - A wait times out - - - - HOST_E_NOT_OWNER - "The leave operation has been attempted on a synchronization primitive that is not owned by the current thread." - - - - - HOST_E_ABANDONED - "An event has been abandoned." - An event is abandoned - - HOST_E_EXITPROCESS_THREADABORT "Process exited due to ThreadAbort escalation." @@ -440,12 +208,6 @@ ExitProcess due to OutOfMemory escalation - - HOST_E_EXITPROCESS_STACKOVERFLOW - "Process exited due to StackOverflow escalation." - ExitProcess due to StackOverflow escalation - - COR_E_MODULE_HASH_CHECK_FAILED "The check of the module's hash failed." @@ -470,12 +232,6 @@ A module specified in the manifest was not found. - - FUSION_E_UNEXPECTED_MODULE_FOUND - "Modules which are not in the manifest were streamed in." - Modules which are not in the manifest were streamed in. - - FUSION_E_PRIVATE_ASM_DISALLOWED "A strongly-named assembly is required." @@ -488,12 +244,6 @@ The check of the signature failed. - - FUSION_E_DATABASE_ERROR - "An unexpected error was encountered in the Assembly Cache database." - An unexpected error was encountered in the Assembly Cache database. - - FUSION_E_INVALID_NAME "The given assembly name or codebase was invalid." @@ -506,18 +256,6 @@ HTTP download of assemblies has been disabled for this appdomain. - - FUSION_E_UNINSTALL_DISALLOWED - "Uninstall of given assembly is not allowed." - Uninstall of given assembly is not allowed. - - - - CLR_E_APP_CONFIG_NOT_ALLOWED_IN_APPX_PROCESS - "Application configuration file not allowed in AppX process." - Application configuration file not allowed in AppX process. - - FUSION_E_HOST_GAC_ASM_MISMATCH "Assembly in host store has a different signature than assembly in GAC." @@ -554,18 +292,6 @@ Unexpected error while parsing the specified manifest - - FUSION_E_INVALID_ASSEMBLY_REFERENCE - "The given assembly name is invalid because a processor architecture is specified." - The given assembly name is invalid because a processor architecture is specified - - - - COR_E_ASSEMBLY_NOT_EXPECTED - "The module was expected to not contain an assembly manifest." - The module was expected to not contain an assembly manifest. - - COR_E_LOADING_REFERENCE_ASSEMBLY "Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context." @@ -584,6 +310,12 @@ Contract Windows Runtime assemblies cannot be loaded for execution. Make sure your application only contains non-contract Windows Runtime assemblies + + COR_E_AMBIGUOUSIMPLEMENTATION + "Ambiguous implementation found." + Ambiguous implementation found + + CLDB_E_FILE_BADREAD "Error occurred during a read." @@ -596,36 +328,12 @@ Error occurred during a write. - - CLDB_E_FILE_READONLY - "File is read only." - File is read only. - - - - CLDB_E_NAME_ERROR - "Ill-formed name." - An ill-formed name was given. - - - - CLDB_E_TRUNCATION - "Data value was truncated." - ERROR: Data value was truncated. - - CLDB_E_FILE_OLDVER "Old version error." Old version error. - - CLDB_E_RELOCATED - "A shared memory open failed to open at the originally assigned memory address." - A shared mem open failed to open at the originally - - CLDB_E_SMDUPLICATE "Create of shared memory failed. A memory mapping of the same name already exists." @@ -638,12 +346,6 @@ There isn't .CLB data in the memory or stream. - - CLDB_E_READONLY - "Database is read only." - Database is read only. - - CLDB_E_INCOMPATIBLE "Importing scope is not compatible with the emitting scope." @@ -656,36 +358,12 @@ File is corrupt. - - CLDB_E_SCHEMA_VERNOTFOUND - "Required version of schema not found." - Version %d of schema '%s' not found. - - CLDB_E_BADUPDATEMODE "Cannot open a incrementally build scope for full update." cannot open a incrementally build scope for full update - - CLDB_E_INDEX_NONULLKEYS - "Null value not allowed in unique index or primary key." - Null value not allowed in unique index or primary key. - - - - CLDB_E_INDEX_DUPLICATE - "Index has been duplicated." - Unique index %s has been violated. - - - - CLDB_E_INDEX_BADTYPE - "The columns data type is not allowed in an index." - The columns data type is not allowed in an index. - - CLDB_E_INDEX_NOTFOUND "Index not found." @@ -698,84 +376,12 @@ Record wasn't found on lookup. - - CLDB_E_RECORD_OVERFLOW - "Too many records were returned for criteria." - Too many records were returned for criteria. - - - - CLDB_E_RECORD_DUPLICATE - "Record is a duplicate." - Record is a duplicate. - - - - CLDB_E_RECORD_PKREQUIRED - "Primary key value is required." - Primary key value is required. - - - - CLDB_E_RECORD_DELETED - "Record is valid but deleted." - Record is valid but deleted. - - CLDB_E_RECORD_OUTOFORDER "Record is emitted out of order." Record is emitted out of order. - - CLDB_E_COLUMN_OVERFLOW - "Data too large." - Data too large. - - - - CLDB_E_COLUMN_READONLY - "Column cannot be changed." - Column cannot be changed. - - - - CLDB_E_COLUMN_SPECIALCOL - "Too many RID or primary key columns, 1 is max." - Too many RID or primary key columns, 1 is max. - - - - CLDB_E_COLUMN_PKNONULLS - "Primary key column may not allow the null value." - Primary key column %s may not allow the null value. - - - - CLDB_E_TABLE_CANTDROP - "Attempted auto-drop of table while open." - Can't auto-drop table while open. - - - - CLDB_E_OBJECT_NOTFOUND - "Object not found in the database." - Object was not found in the database. - - - - CLDB_E_OBJECT_COLNOTFOUND - "Column not found." - The column was not found. - - - - CLDB_E_VECTOR_BADINDEX - "Invalid index." - The index given was invalid. - - CLDB_E_TOO_BIG "A blob or string was too big." @@ -788,239 +394,18 @@ A token of the wrong type passed to a metadata function. - - TLBX_E_INVALID_TYPEINFO - "Typelib import: Invalid type, not converted." - Typelib import: invalid type, not converted. - - - - TLBX_E_INVALID_TYPEINFO_UNNAMED - "Typelib import: Invalid type, not converted - name unknown." - Typelib import: invalid type, not converted -- name unknown. - - - - TLBX_E_CTX_NESTED - "Typelib export: TLBX_E_CTX_NESTED" - Typelib export: Format string for nested contexts. - - - - TLBX_E_ERROR_MESSAGE - "Typelib export: General error. See IError info for more information." - Typelib export: Error message wrapper. - - - - TLBX_E_CANT_SAVE - "Typelib export: SaveAllChanges() failed." - Typelib export: cant "SaveAllChanges()" - - - TLBX_W_LIBNOTREGISTERED + TLBX_E_LIBNOTREGISTERED "Typelib export: Type library is not registered." Typelib export: type library is not registered. - - TLBX_E_CANTLOADLIBRARY - "Typelib export: Type library could not be loaded." - Typelib export: type library cannot be loaded. - - - - TLBX_E_BAD_VT_TYPE - "Typelib import: Invalid vartype, not converted." - Typelib import: invalid VT_*, not converted. - - - - TLBX_E_NO_MSCOREE_TLB - "Typelib export: Could not load mscoree.tlb." - Typelib export: can't load mscoree.tlb - - - - TLBX_E_BAD_MSCOREE_TLB - "Typelib export: Could not get a required typeinfo from mscoree.tlb." - Typelib export: can't get a required typeinfo from mscoree.tlb. - - - - TLBX_E_TLB_EXCEPTION - "Typelib import: Fault reading a typelib." - Typelib import: fault reading a typelib. - - - - TLBX_E_MULTIPLE_LCIDS - "Typelib import: Multiple [lcid] parameters on a method." - Typelib import: Multiple LCID's parameters on a method. - - - - TLBX_E_AMBIGUOUS_RETURN - "Typelib import: Duplicate or ambiguous return types." - Typelib import: duplicate or ambiguous return types. - - - - TLBX_E_DUPLICATE_TYPE_NAME - "Typelib import: Duplicate name (due to user-defined name)." - Typelib import: duplicate name (due to user-defined name). - - - - TLBX_I_NONSEQUENTIALSTRUCT - "Typelib export: Cannot convert non-sequential structs." - Typelib export: Can't convert non-sequential structs. - - - - TLBX_I_RESOLVEREFFAILED - "Typelib import: The resolve ref call failed." - Typelib import: The resolve ref call failed. - - - - TLBX_E_ASANY - "Typelib export: Encountered AsAny - ignored." - Typelib export: Encounterd "AsAny" -- ignored. - - - - TLBX_E_INVALIDLCIDPARAM - "Typelib export: Encountered an [lcid] attribute set to an invalid parameter." - Typelib export: Encounterd an LCID attribute set to an invalid param. - - - - TLBX_E_LCIDONDISPONLYITF - "Typelib export: Encountered an [lcid] attribute on a pure dispatch interface." - Typelib export: Encounterd an LCID attribute on a disp only interface. - - - - TLBX_E_NONPUBLIC_FIELD - "Typelib export: Non-public field in public struct." - Typelib export: Non-public field in public struct. - - - - TLBX_E_BAD_NAMES - "Typelib export: Bad names list." - Typelib export: bad names list. - - - - TLBX_E_GENERICINST_SIGNATURE - "TypeLib export: generic type instance in signature." - TypeLib export: generic type instance in signature. - - - - TLBX_E_GENERICPAR_SIGNATURE - "TypeLib export: generic type parameter in signature." - TypeLib export: generic type parameter in signature. - - - - META_E_DUPLICATE - "Attempted to define an object that already exists." - Attempt to define an object that already exists. - - - - META_E_GUID_REQUIRED - "A guid was not provided where one was required." - A guid was not provided where one was required. - - - - META_E_TYPEDEF_MISMATCH - "Merge: an import typedef matched ns.name, but not version and guid." - Merge: an import typedef matched ns.name, but not version and guid. - - - - META_E_MERGE_COLLISION - "Merge: conflict between import and emit." - Merge: conflict between import and emit - - - - TLBX_E_NO_SAFEHANDLE_ARRAYS - "TypeLib export: Detected array of SafeHandles." - TypeLib export: detected array of SafeHandles - - - - META_E_METHD_NOT_FOUND - "Merge: Class already in emit scope, but member not found." - Merge: Class already in emit scope, but member not found - - - - META_E_FIELD_NOT_FOUND - "Merge: Class already in emit scope, but member not found." - Merge: Class already in emit scope, but member not found - - - - META_E_PARAM_MISMATCH - "Merge: Parameter information mismatched." - Merge: Parameter information mismatched. - - META_E_BADMETADATA "Merge: Inconsistency in meta data import scope." Merge: Inconsistency in meta data import scope - - META_E_INTFCEIMPL_NOT_FOUND - "Merge: Class already in emit scope, but interfaceimpl not found." - Merge: Class already in emit scope, but interfaceimpl not found - - - - TLBX_E_NO_CRITICALHANDLE_ARRAYS - "TypeLib export: Detected array of CriticalHandles." - TypeLib export: detected array of CriticalHandles - - - - META_E_CLASS_LAYOUT_INCONSISTENT - "Merge: Duplicate classes have inconsistent class layout information." - Merge: Class is duplicated but class layout information is not consistent - - - - META_E_FIELD_MARSHAL_NOT_FOUND - "Merge: Field is duplicated but no matching FieldMarshal information." - Merge: Field is duplicated but we cannot find the matching FieldMarshal information - - - - META_E_METHODSEM_NOT_FOUND - Merge: - - - - META_E_EVENT_NOT_FOUND - "Merge: Method is duplicated but no matching event info." - Merge: Method is duplicated but we cannot find the matching event info. - - - - META_E_PROP_NOT_FOUND - "Merge: Method is duplicated but no matching property info." - Merge: Method is duplicated but we cannot find the maching property info. - - META_E_BAD_SIGNATURE "Bad binary signature." @@ -1033,18 +418,6 @@ Bad input parameters - - META_E_METHDIMPL_INCONSISTENT - "Merge: duplicated methods have inconsistent ImplFlags." - Merge: duplicated methods have inconsistent ImplFlags - - - - META_E_MD_INCONSISTENCY - "Merge: Inconsistency in meta data." - Merge: Inconsistency in meta data - - META_E_CANNOTRESOLVETYPEREF "Cannot resolve typeref." @@ -1057,12 +430,6 @@ No logical space left to create more user strings. - - META_E_UNEXPECTED_REMAP - "Unexpected TokenRemap." - A TokenRemap occurred which we weren't prepared to handle. - - META_E_HAS_UNMARKALL "Unmark all has been called already." @@ -1075,262 +442,46 @@ Must call UnmarkAll first before marking. - - META_E_GENERICPARAM_INCONSISTENT - "Merge: duplicated types or methods have inconsistent GenericParams." - Merge: duplicated types/methods have inconsistent GenericParams - - - - META_E_EVENT_COUNTS - "Merge: different event counts in import and emit scopes." - Merge: different event counts in import and emit scopes. + + META_E_CA_INVALID_TARGET + "Known custom attribute on invalid target." + Known custom attribute on invalid target. - - META_E_PROPERTY_COUNTS - "Merge: different property counts in import and emit scopes." - Merge: different property counts in import and emit scopes. + + META_E_CA_INVALID_VALUE + "Known custom attribute had invalid value." + Known custom attribute had invalid value. - - META_E_TYPEDEF_MISSING - "Merge: An input scope has a TypeRef which does not have a matching TypeDef." - Merge: An input scope has a TypeRef which should but doesn't have a matching TypeDef. + + META_E_CA_INVALID_BLOB + "Known custom attribute blob has bad format." + Known custom attribute blob is bad format. - - TLBX_E_CANT_LOAD_MODULE - "TypeLib export: cannot open the module to export." - TypeLib export: can't open the module to export. + + META_E_CA_REPEATED_ARG + "Known custom attribute blob has repeated named argument." + Known custom attribute blob has repeated named argument. - - TLBX_E_CANT_LOAD_CLASS - "TypeLib export: cannot load a class." - TypeLib export: can't load a class. + + META_E_CA_UNKNOWN_ARGUMENT + "Known custom attribute named argument not recognized." + Known custom attrubte named arg not recognized. - - TLBX_E_NULL_MODULE - "TypeLib export: the hModule of a loaded class is 0; cannot export it." - TypeLib export: the hMod of a loaded class is 0; can't export it. + + META_E_CA_UNEXPECTED_TYPE + "Known attribute parser found unexpected type." + Known attribute parser found unexpected type. - - TLBX_E_NO_CLSID_KEY - "TypeLib export: no CLSID or Interface subkey to HKCR." - TypeLib export: no CLSID or Interface subkey to HKCR. - - - - TLBX_E_CIRCULAR_EXPORT - "TypeLib export: attempted to export an Assembly imported from a TLB." - TypeLib export: attempt to export a CLB imported from a TLB. - - - - TLBX_E_CIRCULAR_IMPORT - "TypeLib import: attempted to import a TLB exported from an Assembly." - TypeLib import: attempt to import a TLB exported from a CLB. - - - - TLBX_E_BAD_NATIVETYPE - "TypeLib export: bad Native type in method signature." - TypeLib export: bad Native type in method signature. - - - - TLBX_E_BAD_VTABLE - "TypeLib import: non-increasing vtable (duplicate slots)." - TypeLib import: non-increasing vtable (duplicate slots). - - - - TLBX_E_CRM_NON_STATIC - "TypeLib export: the COM register method is non static." - TypeLib export: the COM register method is non static. - - - - TLBX_E_CRM_INVALID_SIG - "TypeLib export: the specified COM register method does not have the correct signature." - TypeLib export: the specified COM register method does not have the correct signature. - - - - TLBX_E_CLASS_LOAD_EXCEPTION - "TypeLib export: cannot load CLR type." - TypeLib export: can't load, have the class load exception. - - - - TLBX_E_UNKNOWN_SIGNATURE - "TypeLib export: unknown element in signature." - TypeLib export: unknown element in signature. - - - - TLBX_E_REFERENCED_TYPELIB - "TypeLib import: reference to an external typelib." - TypeLib import: reference to an external typelib. - - - - TLBX_E_INVALID_NAMESPACE - "TypeLib import: an imported typelib has an invalid namespace name." - TypeLib import: an imported typelib has an invalid namespace name. - - - - TLBX_E_LAYOUT_ERROR - "Typelib export: an error on Layout()" - Typelib export: an error on Layout() - - - - TLBX_E_NOTIUNKNOWN - "Typelib import: Interface not derived from IUnknown." - Typelib import: Interface not derived from IUnknown. - - - - TLBX_E_NONVISIBLEVALUECLASS - "Typelib export: Non COM visible value type in method signature." - Typelib export: Non COM visible value type in method signature. - - - - TLBX_E_LPTSTR_NOT_ALLOWED - "Typelib export: Types which contain the native type NATIVE_TYPE_LPTSTR are not allowed to be exported to COM." - Typelib export: Types which contain the native type NATIVE_TYPE_LPTSTR are not allowed to be exported to COM. - - - - TLBX_E_AUTO_CS_NOT_ALLOWED - "Typelib export: Types with a charset of auto are not allowed to be exported to COM." - Typelib export: Types with a char set of auto are not allowed to be exported to COM. - - - - TLBX_E_ENUM_VALUE_INVALID - "Typelib export: The enum value is not legal for a typelib." - Typelib export: The enum value is not legal for a typelib. - - - - TLBX_E_DUPLICATE_IID - "Typelib export: Duplicate IID." - Typelib export: Duplicate IID - - - - TLBX_E_NO_NESTED_ARRAYS - "Typelib export: detected nested arrays." - Tyeplib export: detected nested arrays. - - - - TLBX_E_PARAM_ERROR_NAMED - "Typelib import: parameter type could not be converted." - Typelib import: param type couldn't be converted. - - - - TLBX_E_PARAM_ERROR_UNNAMED - "Typelib import: parameter type could not be converted - parameter name unknown." - Typelib import: param type couldn't be converted -- param name unknown. - - - - TLBX_E_AGNOST_SIGNATURE - "TypeLib export: size agnostic element in signature." - TypeLib export: size agnostic element in signature. - - - - TLBX_E_CONVERT_FAIL - "TypeLib export: exporter failed." - TypeLib export: exporter failed. - - - - TLBX_W_DUAL_NOT_DISPATCH - "Typelib import: [dual] interface not derived from IDispatch." - Typelib import: [dual] interface not derived from IDispatch. - - - - TLBX_E_BAD_SIGNATURE - "Typelib export: bad signature." - Typelib export: unconvertable signature (use specific error for reporting!) - - - - TLBX_E_ARRAY_NEEDS_NT_FIXED - "Typelib export: non-fixed or non-safearray array in struct." - Typelib export: non-fixed/non-safearray array in struct - - - - TLBX_E_CLASS_NEEDS_NT_INTF - "Typelib export: non-interface class in struct." - Typelib export: non-interface class in struct - - - - META_E_CA_INVALID_TARGET - "Known custom attribute on invalid target." - Known custom attribute on invalid target. - - - - META_E_CA_INVALID_VALUE - "Known custom attribute had invalid value." - Known custom attribute had invalid value. - - - - META_E_CA_INVALID_BLOB - "Known custom attribute blob has bad format." - Known custom attribute blob is bad format. - - - - META_E_CA_REPEATED_ARG - "Known custom attribute blob has repeated named argument." - Known custom attribute blob has repeated named argument. - - - - META_E_CA_UNKNOWN_ARGUMENT - "Known custom attribute named argument not recognized." - Known custom attrubte named arg not recognized. - - - - META_E_CA_VARIANT_NYI - "Known attribute named argument does not support variant." - Known attribute named argument doesn't support variant. - - - - META_E_CA_ARRAY_NYI - "Known attribute named argument does not support array." - Known attribute named argument doesn't support array. - - - - META_E_CA_UNEXPECTED_TYPE - "Known attribute parser found unexpected type." - Known attribute parser found unexpected type. - - - - META_E_CA_INVALID_ARGTYPE - "Known attribute parser only handles fields, not properties." - Known attribute parser only handles fields -- no properties. + + META_E_CA_INVALID_ARGTYPE + "Known attribute parser only handles fields, not properties." + Known attribute parser only handles fields -- no properties. @@ -1363,12 +514,6 @@ The parameter index cannot be negative. - - META_E_CA_NEGATIVE_MULTIPLIER - "The multiplier cannot be negative." - The multiplier cannot be negative. - - META_E_CA_NEGATIVE_CONSTSIZE "The constant size cannot be negative." @@ -1387,69 +532,12 @@ A custom marshaler requires the custom marshaler type. - - META_E_CA_FILENAME_REQUIRED - "A DllImport attribute requires a filename." - A DllImport attribute requires a filename. - - - - TLBX_W_NO_PROPS_IN_EVENTS - "TypeLib import: Detected properties in a source dispinterface." - TypeLib import: Detected properties in a source dispinterface. - - META_E_NOT_IN_ENC_MODE "SaveDelta was called without being in EnC mode." SaveDelta was called without being in EnC mode - - META_E_METHOD_COUNTS - "Merge: different method counts in import and emit scopes." - Merge: different method counts in import and emit scopes. - - - - META_E_FIELD_COUNTS - "Merge: different field counts in import and emit scopes." - Merge: different field counts in import and emit scopes. - - - - META_E_PARAM_COUNTS - "Merge: different parameter counts in import and emit scopes." - Merge: different param counts in import and emit scopes. - - - - TLBX_E_TYPED_REF - "TypeLib export: Exporting a TypedReference." - TypeLib export: Exporting a TypedReference. - - - - TLBX_E_BITNESS_MISMATCH - "TypeLib export: bitness of assembly does not match bitness of output type library." - TypeLib export: bitness of assembly doesn't match bitness of output type library - - - - TLBX_E_EVENT_WITH_NEWENUM - TypeLib import: source interface with NewEnum member. - - - - TLBX_E_PROPGET_WITHOUT_RETURN - TypeLib import: propget without return type - - - - META_E_MISMATCHED_VISIBLITY - Merge - Match found for type/method/etc but differs in visiblity - - META_E_CA_BAD_FRIENDS_ARGS "InternalsVisibleTo can't have a version, culture, or processor architecture." @@ -1467,18 +555,6 @@ Rid is out of range. - - VLDTR_E_CDTKN_OUTOFRANGE - "Coded token type is out of range." - Coded token type is out of range. - - - - VLDTR_E_CDRID_OUTOFRANGE - "Coded rid is out of range." - Coded rid is out of range. - - VLDTR_E_STRING_INVALID "String offset is invalid." @@ -1497,294 +573,18 @@ Blob offset if invalid. - - VLDTR_E_MOD_MULTI - "Multiple module records found." - Multiple module records found. - - - - VLDTR_E_MOD_NULLMVID - "Module has null MVID." - Module has null MVID. - - - - VLDTR_E_TR_NAMENULL - "TypeRef name is NULL." - TypeRef name is NULL. - - - - VLDTR_E_TR_DUP - "TypeRef has a duplicate." - TypeRef has a dup. - - - - VLDTR_E_TD_NAMENULL - "TypeDef name is NULL." - TypeDef name is NULL. - - - - VLDTR_E_TD_DUPNAME - "TypeDef has a duplicate based on name+namespace." - TypeDef has a dup based on name+namespace. - - - - VLDTR_E_TD_DUPGUID - "TypeDef has a duplicate based on GUID." - TypeDef has a dup based on GUID. - - - - VLDTR_E_TD_NOTIFACEOBJEXTNULL - "TypeDef that is not an Interface and not System.Object extends nil parent." - TypeDef that's not an Interface and not System.Object extends nil parent. - - - - VLDTR_E_TD_OBJEXTENDSNONNULL - "System.Object extends a non-nil parent." - System.Object extends a non-nil parent. - - - - VLDTR_E_TD_EXTENDSSEALED - "TypeDef extends sealed class." - TypeDef extends sealed class. - - - - VLDTR_E_TD_DLTNORTSPCL - "TypeDef is Deleted but not marked with RTSpecialName." - TypeDef is Deleted but not marked with RTSpecialName. - - - - VLDTR_E_TD_RTSPCLNOTDLT - "TypeDef is marked RTSpecialName, but is not a Deleted record." - TypeDef is marked RTSpecialName, but is not a Deleted record. - - - - VLDTR_E_MI_DECLPRIV - "MethodImpl's Decl is private." - MethodImpl's Decl is private - - - - VLDTR_E_AS_BADNAME - "Assembly [Ref] name has path and/or extension." - Assembly [Ref] name has path and/or extension. - - - - VLDTR_E_FILE_SYSNAME - "File has a system name (con, com, aux, etc.)." - File has a system name (con, com, aux, etc.). - - - - VLDTR_E_MI_BODYSTATIC - "MethodImpl's body is static." - MethodImpl's body is static. - - - - VLDTR_E_TD_IFACENOTABS - "TypeDef is marked Interface but not Abstract." - TypeDef is marked Interface but not Abstract. - - - - VLDTR_E_TD_IFACEPARNOTNIL - "TypeDef is marked Interface but parent is not Nil." - TypeDef is marked Interface but parent is not Nil. - - - - VLDTR_E_TD_IFACEGUIDNULL - "TypeDef is marked Interface but GUID is NULL." - TypeDef is marked Interface but GUID is NULL. - - - - VLDTR_E_MI_DECLFINAL - "TMethodImpl's Decl is final." - TMethodImpl's Decl is final. - - - - VLDTR_E_TD_VTNOTSEAL - "TypeDef is marked ValueType but not marked Sealed." - TypeDef is marked ValueType but not marked Sealed. - - - - VLDTR_E_PD_BADFLAGS - "Parameter has extra bits in flags." - Param has extra bits in flags. - - - - VLDTR_E_IFACE_DUP - "InterfaceImpl has a duplicate." - InterfaceImpl has a dup. - - - - VLDTR_E_MR_NAMENULL - "MemberRef name is NULL." - MemberRef name is NULL. - - - - VLDTR_E_MR_VTBLNAME - "MemberRef has an invalid name, _VtblGap*." - MemberRef has an invalid name, _VtblGap*. - - - - VLDTR_E_MR_DELNAME - "MemberRef has an invalid name, _Deleted*." - MemberRef has an invalid name, _Deleted*. - - - - VLDTR_E_MR_PARNIL - "MemberRef parent Nil in a PE file." - MemberRef parent Nil in a PE file. - - VLDTR_E_MR_BADCALLINGCONV "MemberRef has invalid calling convention." MemberRef has invalid calling convention. - - VLDTR_E_MR_NOTVARARG - "MemberRef has Method parent but calling convention is not VARARG." - MemberRef has Method parent but calling convention is not VARARG. - - - - VLDTR_E_MR_NAMEDIFF - "MemberRef name different from parent MethodDef." - MemberRef name different from parent MethodDef. - - - - VLDTR_E_MR_SIGDIFF - "MemberRef signature different from parent MethodDef." - MemberRef signature different from parent MethodDef. - - - - VLDTR_E_MR_DUP - "MemberRef has a duplicate." - MemberRef has a dup. - - - - VLDTR_E_CL_TDAUTO - "ClassLayout parent TypeDef is marked AutoLayout." - ClassLayout parent TypeDef is marked AutoLayout. - - - - VLDTR_E_CL_BADPCKSZ - "ClassLayout has bad PackingSize." - ClassLayout has bad PackingSize. - - - - VLDTR_E_CL_DUP - "ClassLayout has a duplicate." - ClassLayout has dup. - - - - VLDTR_E_FL_BADOFFSET - "FieldLayout2 has bad offset." - FieldLayout2 has bad offset. - - - - VLDTR_E_FL_TDNIL - "FieldLayout2 has field with nil parent." - FieldLayout2 has field with nil parent. - - - - VLDTR_E_FL_NOCL - "FieldLayout2 has no ClassLayout record." - FieldLayout2 has no ClassLayout record. - - - - VLDTR_E_FL_TDNOTEXPLCT - "FieldLayout2 parent TypeDef is not marked with ExplicitLayout." - FieldLayout2 parent TypeDef is not marked with ExplicitLayout. - - - - VLDTR_E_FL_FLDSTATIC - "FieldLayout2 has field marked Static." - FieldLayout2 has field marked Static. - - - - VLDTR_E_FL_DUP - "FieldLayout2 has a duplicate." - FieldLayout2 has a dup. - - - - VLDTR_E_MODREF_NAMENULL - "ModuleRef name is NULL." - ModuleRef name is NULL. - - - - VLDTR_E_MODREF_DUP - "ModuleRef has a duplicate." - ModuleRef has a dup. - - - - VLDTR_E_TR_BADSCOPE - "TypeRef has a bad resolution scope." - TypeRef has a bad resolution scope. - - - - VLDTR_E_TD_NESTEDNOENCL - "TypeDef marked nested has no encloser." - TypeDef marked nested has no encloser. - - - - VLDTR_E_TD_EXTTRRES - "TypeDef extends a TypeRef which resolves to a TypeDef in the same module." - TypeDef extends a TypeRef which resolves to a TypeDef in the same module. - - VLDTR_E_SIGNULL "Signature specified is zero-sized." Signature specified is zero-sized. - - VLDTR_E_SIGNODATA - "Signature does not have enough data at specified byte." - Signature does not have enough data at specified byte. - - VLDTR_E_MD_BADCALLINGCONV "Method signature has invalid calling convention." @@ -1875,4372 +675,1157 @@ Signature has bad element type. - - VLDTR_E_SIG_MISSVASIZE - "Signature has value array missing size." - Signature has value array missing size. + + VLDTR_E_TD_ENCLNOTNESTED + "TypeDef not nested has encloser." + TypeDef not nested has encloser. - - VLDTR_E_FD_BADCALLINGCONV - "Field signature has invalid calling convention." - Field signature has invalid calling convention. + + VLDTR_E_FMD_PINVOKENOTSTATIC + "Field or method is PInvoke but is not marked Static." + Field/method is PInvoke but is not marked Static. - - VLDTR_E_MD_NAMENULL - "Method name is NULL." - Method name is NULL. + + VLDTR_E_SIG_SENTINMETHODDEF + "E_T_SENTINEL in MethodDef signature." + E_T_SENTINEL in MethodDef signature - - VLDTR_E_MD_PARNIL - "Method has parent NIL." - Method has parent NIL. + + VLDTR_E_SIG_SENTMUSTVARARG + "E_T_SENTINEL <=> VARARG." + E_T_SENTINEL <=> VARARG - - VLDTR_E_MD_DUP - "Method has a duplicate." - Method has dup. + + VLDTR_E_SIG_MULTSENTINELS + "Multiple E_T_SENTINELs." + Multiple E_T_SENTINELs - - VLDTR_E_FD_NAMENULL - "Field name is NULL." - Field name is NULL. + + VLDTR_E_SIG_MISSARG + "Signature missing argument." + Signature missing argument - - VLDTR_E_FD_PARNIL - "Field parent is Nil." - Field parent is Nil. + + VLDTR_E_SIG_BYREFINFIELD + "Field of ByRef type." + Field of ByRef type - - VLDTR_E_FD_DUP - "Field has a duplicate." - Field has dup. + + CORDBG_E_UNRECOVERABLE_ERROR + "Unrecoverable API error." + Unrecoverable API error. - - VLDTR_E_AS_MULTI - "Multiple Assembly records found." - Multiple Assembly records found. + + CORDBG_E_PROCESS_TERMINATED + "Process was terminated." + Process was terminated. - - VLDTR_E_AS_NAMENULL - "Assembly name is NULL." - Assembly name is NULL. + + CORDBG_E_PROCESS_NOT_SYNCHRONIZED + "Process not synchronized." + Process not synchronized. - - VLDTR_E_SIG_TOKTYPEMISMATCH - "E_T_VALUETYPE<class token> or E_T_CLASS<vtype token>." - E_T_VALUETYPE<class token> or E_T_CLASS<vtype token>. - - - - VLDTR_E_CL_TDINTF - "Class layout on an Interface." - Class layout on an Interface. - - - - VLDTR_E_ASOS_OSPLTFRMIDINVAL - "AssemblyOS platform ID invalid." - AssemblyOS platform ID invalid. - - - - VLDTR_E_AR_NAMENULL - "AssemblyRef name is NULL." - AssemblyRef name is NULL. - - - - VLDTR_E_TD_ENCLNOTNESTED - "TypeDef not nested has encloser." - TypeDef not nested has encloser. - - - - VLDTR_E_AROS_OSPLTFRMIDINVAL - "AssemblyRefOS has invalid platform ID." - AssemblyRefOS has invalid platform ID. - - - - VLDTR_E_FILE_NAMENULL - "File name is NULL." - File name is NULL. - - - - VLDTR_E_CT_NAMENULL - "ExportedType name is NULL." - ExportedType name is NULL. - - - - VLDTR_E_TD_EXTENDSCHILD - "TypeDef extends its own child." - TypeDef extends its own child. - - - - VLDTR_E_MAR_NAMENULL - "ManifestResource name is NULL." - ManifestResource name is NULL. - - - - VLDTR_E_FILE_DUP - "File has a duplicate." - File has dup. - - - - VLDTR_E_FILE_NAMEFULLQLFD - "File name is fully qualified." - File name is fully qualified. - - - - VLDTR_E_CT_DUP - "ExportedType has a duplicate." - ExportedType has dup. - - - - VLDTR_E_MAR_DUP - "ManifestResource has a duplicate." - ManifestResource has dup. - - - - VLDTR_E_MAR_NOTPUBPRIV - "ManifestResource is neither Public nor Private." - ManifestResource is neither Public not Private. - - - - VLDTR_E_TD_ENUMNOVALUE - "Enum has no value__ field." - Enum has no "value__" field. - - - - VLDTR_E_TD_ENUMVALSTATIC - "Enum's value__ field is static." - Enum's "value__" field is static. - - - - VLDTR_E_TD_ENUMVALNOTSN - "Enum's value__ field is not SpecialName." - Enum's "value__" field is not SpecialName. - - - - VLDTR_E_TD_ENUMFLDNOTST - "Enum's field is not static." - Enum's field is not static. - - - - VLDTR_E_TD_ENUMFLDNOTLIT - "Enum's field is not literal." - Enum's field is not literal. - - - - VLDTR_E_TD_ENUMNOLITFLDS - "Enum has no literal fields." - Enum has no literal fields. - - - - VLDTR_E_TD_ENUMFLDSIGMISMATCH - "Enum's field signature does not match value__ signature." - Enum's field sig does not match value__ sig. - - - - VLDTR_E_TD_ENUMVALNOT1ST - "Enum's value__ field is not first." - Enum's "value__" field is not first. - - - - VLDTR_E_FD_NOTVALUERTSN - "Field is RTSpecialName but name is not value__." - Field is RTSpecialName but name is not "value__". - - - - VLDTR_E_FD_VALUEPARNOTENUM - "Field value__ in not Enum class." - Field "value__" in not Enum class. - - - - VLDTR_E_FD_INSTINIFACE - "Instance field in interface." - Instance field in interface. - - - - VLDTR_E_FD_NOTPUBINIFACE - "Non-public field in interface." - Non-public field in interface. - - - - VLDTR_E_FMD_GLOBALNOTPUBPRIVSC - "Global field or method is neither Public nor PrivateScope." - Global field/method neither Public nor PrivateScope. - - - - VLDTR_E_FMD_GLOBALNOTSTATIC - "Global field or method is not static." - Global field/method not static. - - - - VLDTR_E_FD_GLOBALNORVA - "Global field has no RVA." - Global field has no RVA. - - - - VLDTR_E_MD_CTORZERORVA - ".ctor or .cctor has zero RVA." - .ctor,.cctor has zero RVA. - - - - VLDTR_E_FD_MARKEDNOMARSHAL - "Field is marked marshaled but has no marshaling record." - Field is marked marshaled but has no marshaling rec. - - - - VLDTR_E_FD_MARSHALNOTMARKED - "Field has marshaling record but is not marked marshaled." - Field has marshaling rec but is not marked marshaled. - - - - VLDTR_E_FD_MARKEDNODEFLT - "Field is marked HasDefault but has no const value." - Field is marked HasDefault but has no const value. - - - - VLDTR_E_FD_DEFLTNOTMARKED - "Field has const value record but is not marked HasDefault." - Field has const value rec but is not marked HasDefault. - - - - VLDTR_E_FMD_MARKEDNOSECUR - "Field or method is marked HasSecurity but has no security record." - Field/method is marked HasSecurity but has no security rec. - - - - VLDTR_E_FMD_SECURNOTMARKED - "Field or method has security record but is not marked HasSecurity." - Field/method has security rec but is not marked HasSecurity. - - - - VLDTR_E_FMD_PINVOKENOTSTATIC - "Field or method is PInvoke but is not marked Static." - Field/method is PInvoke but is not marked Static. - - - - VLDTR_E_FMD_MARKEDNOPINVOKE - "Field or method is marked PInvoke but has no ImplMap." - Field/method is marked PInvoke but has no ImplMap. - - - - VLDTR_E_FMD_PINVOKENOTMARKED - "Field or method has ImplMap but is not marked PInvoke." - Field/method has ImplMap but is not marked PInvoke. - - - - VLDTR_E_FMD_BADIMPLMAP - "Field or method has invalid ImplMap." - Field/method has invalid ImplMap - - - - VLDTR_E_IMAP_BADMODREF - "ImplMap has invalid ModuleRef." - ImplMap has invalid ModuleRef - - - - VLDTR_E_IMAP_BADMEMBER - "ImplMap has invalid MemberForwarded." - ImplMap has invalid MemberForwarded - - - - VLDTR_E_IMAP_BADIMPORTNAME - "ImplMap has invalid ImportName." - ImplMap has invalid ImportName - - - - VLDTR_E_IMAP_BADCALLCONV - "ImplMap has invalid call conv." - ImplMap has invalid call conv - - - - VLDTR_E_FMD_BADACCESSFLAG - "Field or method has invalid access flag." - Field/method has invalid access flag - - - - VLDTR_E_FD_INITONLYANDLITERAL - "Field is InitOnly and Literal." - Field is InitOnly and Literal - - - - VLDTR_E_FD_LITERALNOTSTATIC - "Field is Literal but not Static." - Field is Literal but not Static - - - - VLDTR_E_FMD_RTSNNOTSN - "Field or method is RTSpec.Name but not Spec.Name." - Field/method is RTSpec.Name but not Spec.Name - - - - VLDTR_E_MD_ABSTPARNOTABST - "Method is abstract, parent is not." - Method is abstract, parent is not - - - - VLDTR_E_MD_NOTSTATABSTININTF - "Method not static or abstract in interface." - Method not static or abstract in interface - - - - VLDTR_E_MD_NOTPUBININTF - "Method not public in interface." - Method not public in interface - - - - VLDTR_E_MD_CTORININTF - ".ctor in interface." - ctor in interface - - - - VLDTR_E_MD_GLOBALCTORCCTOR - "global .ctor or .cctor." - global ctor or cctor - - - - VLDTR_E_MD_CTORSTATIC - "static .ctor." - static ctor - - - - VLDTR_E_MD_CTORNOTSNRTSN - ".ctor or .cctor not marked SpecialName or RTSpecialName." - ctor,cctor not marked SpecialName,RTSpecialName - - - - VLDTR_E_MD_CTORVIRT - "virtual .ctor or .cctor." - virtual ctor,cctor - - - - VLDTR_E_MD_CTORABST - "abstract .ctor or .cctor." - abstract ctor,cctor - - - - VLDTR_E_MD_CCTORNOTSTATIC - "instance .cctor." - instance cctor - - - - VLDTR_E_MD_ZERORVA - "RVA set to zero, but method not abstract or pinvoke or runtime, or reverse." - RVA=0, method not abstract or pinvoke or runtime, or reverse - - - - VLDTR_E_MD_FINNOTVIRT - "Method is final and not virtual." - Method is final and not virtual - - - - VLDTR_E_MD_STATANDFINORVIRT - "Method is static and final or virtual." - Method is static and final or virtual - - - - VLDTR_E_MD_ABSTANDFINAL - "Method is abstract and final." - Method is abstract and final - - - - VLDTR_E_MD_ABSTANDIMPL - "Method is abstract and implemented." - Method is abstract and implemented - - - - VLDTR_E_MD_ABSTANDPINVOKE - "Method is abstract and pinvoke." - Method is abstract and pinvoke - - - - VLDTR_E_MD_ABSTNOTVIRT - "Method is abstract and not virtual." - Method is abstract and not virtual - - - - VLDTR_E_MD_NOTABSTNOTIMPL - "Method is not abstract and not implemented." - Method is not abstract and not implemented - - - - VLDTR_E_MD_NOTABSTBADFLAGSRVA - "Method is not abstract and not (non-zero RVA or PInvoke or runtime)." - Method is not abstract and not (RVA!=0 or pinvoke or runtime) - - - - VLDTR_E_MD_PRIVSCOPENORVA - "Method is PrivateScope and has RVA set to zero." - Method is PrivateScope and has RVA==0 - - - - VLDTR_E_MD_GLOBALABSTORVIRT - "Global method is abstract or virtual." - Global method is abstract or virtual - - - - VLDTR_E_SIG_LONGFORM - "Signature uses long form." - Signature uses long form - - - - VLDTR_E_MD_MULTIPLESEMANTICS - "Method has multiple semantics (warning)." - Method has multiple semantics (warning) - - - - VLDTR_E_MD_INVALIDSEMANTICS - "Method has invalid semantics (not event or property.)" - Method has invalid semantics (not event or prop) - - - - VLDTR_E_MD_SEMANTICSNOTEXIST - "Method has semantics association that does not exist." - Method has semantics assoc that does not exist - - - - VLDTR_E_MI_DECLNOTVIRT - "MethodImpl's Decl is not virtual." - MethodImpl's Decl is not virtual - - - - VLDTR_E_FMD_GLOBALITEM - "Global field or method (warning, CLS)." - Global field/method (warning,CLS) - - - - VLDTR_E_MD_MULTSEMANTICFLAGS - "Method has multiple semantic flags set." - Method has multiple semantic flags set - - - - VLDTR_E_MD_NOSEMANTICFLAGS - "Method has no semantic flags set." - Method has no semantic flags set - - - - VLDTR_E_FD_FLDINIFACE - "Field in Interface (warning, CLS)." - Field in Interface (warning, CLS) - - - - VLDTR_E_AS_HASHALGID - "Unrecognized Hash Alg ID (warning)." - Unrecognized Hash Alg ID (warning) - - - - VLDTR_E_AS_PROCID - "Unrecognized Processor ID in Assembly(warning)." - Unrecognized Processor ID in Assembly(warning) - - - - VLDTR_E_AR_PROCID - "Unrecognized Processor ID in AssemblyRef(warning)." - Unrecognized Processor ID in AssemblyRef(warning) - - - - VLDTR_E_CN_PARENTRANGE - "Constant: parent token out of range." - Constant: parent token out of range - - - - VLDTR_E_AS_BADFLAGS - "Invalid flags in Assembly." - Invalid flags in Assembly - - - - VLDTR_E_TR_HASTYPEDEF - "There is TypeDef with same name as TypeRef (warning)." - There is TypeDef with same name as TypeRef (warning) - - - - VLDTR_E_IFACE_BADIMPL - "In InterfaceImpl, the implementing token is not TypeDef." - In InterfaceImpl, the implementing token is not TypeDef - - - - VLDTR_E_IFACE_BADIFACE - "In InterfaceImpl, the implemented token is not TypeDef or TypeRef." - In InterfaceImpl, the implemented token is not TypeDef or TypeRef - - - - VLDTR_E_TD_SECURNOTMARKED - "TypeDef has security record but it is not marked HasSecurity." - TypeDef has security rec but not marked HasSecurity - - - - VLDTR_E_TD_MARKEDNOSECUR - "TypeDef marked HasSecurity but has no security record." - TypeDef marked HasSecurity but has no security rec - - - - VLDTR_E_MD_CCTORHASARGS - ".cctor has arguments." - .cctor has arguments - - - - VLDTR_E_CT_BADIMPL - "ExportedType has invalid Implementation." - ExportedType has invalid Implementation - - - - VLDTR_E_MI_ALIENBODY - "MethodImpl has body from other class." - MethodImpl has body from other class - - - - VLDTR_E_MD_CCTORCALLCONV - ".cctor has invalid calling convention." - .cctor has invalid calling convention - - - - VLDTR_E_MI_BADCLASS - "MethodImpl has invalid Class token." - MethodImpl has invalid Class token - - - - VLDTR_E_MI_CLASSISINTF - "MethodImpl declared in Interface." - MethodImpl declared in Interface - - - - VLDTR_E_MI_BADDECL - "MethodImpl has invalid MethodDeclaration token." - MethodImpl has invalid MethodDeclaration token - - - - VLDTR_E_MI_BADBODY - "MethodImpl has invalid MethodBody token." - MethodImpl has invalid MethodBody token - - - - VLDTR_E_MI_DUP - "MethodImpl has duplicate." - MethodImpl has duplicate - - - - VLDTR_E_FD_BADPARENT - "Bad field parent." - Bad field parent - - - - VLDTR_E_MD_PARAMOUTOFSEQ - "Parameter out of sequence (warning)." - Param out of sequence (warning) - - - - VLDTR_E_MD_PARASEQTOOBIG - "Parameter's sequence number exceeds number of arguments." - Param's sequence num exceeds num of args - - - - VLDTR_E_MD_PARMMARKEDNOMARSHAL - "Parameter marked HasMarshal, has no marshaling info." - Param marked HasMarshal, has no marshaling info - - - - VLDTR_E_MD_PARMMARSHALNOTMARKED - "Parameter has marshaling info, not marked HasMarshal." - Param has marshaling info, not marked HasMarshal - - - - VLDTR_E_MD_PARMMARKEDNODEFLT - "Parameter marked HasDefault, has no const value." - Param marked HasDefault, has no const value - - - - VLDTR_E_MD_PARMDEFLTNOTMARKED - "Parameter has const value, not marked HasDefault." - Param has const value, not marked HasDefault - - - - VLDTR_E_PR_BADSCOPE - "Property has invalid scope." - Prop has invalid scope - - - - VLDTR_E_PR_NONAME - "Property has no name." - Prop has no name - - - - VLDTR_E_PR_NOSIG - "Property has no signature." - Prop has no signature - - - - VLDTR_E_PR_DUP - "Property has a duplicate." - Prop has a duplicate - - - - VLDTR_E_PR_BADCALLINGCONV - "Property has bad calling convention." - Prop has bad calling convention - - - - VLDTR_E_PR_MARKEDNODEFLT - "Property marked HasDefault, has no const value." - Prop marked HasDefault, has no const value - - - - VLDTR_E_PR_DEFLTNOTMARKED - "Property has const value, not marked HasDefault." - Prop has const value, not marked HasDefault - - - - VLDTR_E_PR_BADSEMANTICS - "Property has method that is neither a Setter nor a Getter." - Prop has method not (Setter,Getter, or Other) - - - - VLDTR_E_PR_BADMETHOD - "Property has method with invalid token." - Prop has method with invalid token - - - - VLDTR_E_PR_ALIENMETHOD - "Property has method from another class." - Prop has method from another class - - - - VLDTR_E_CN_BLOBNOTNULL - "Const has non-null blob when it should not." - Const has non-null blob when it should not - - - - VLDTR_E_CN_BLOBNULL - "Const has null value blob." - Const has null value blob - - - - VLDTR_E_EV_BADSCOPE - "Event has invalid scope." - Event has invalid scope - - - - VLDTR_E_EV_NONAME - "Event has no name." - Event has no name - - - - VLDTR_E_EV_DUP - "Event has a duplicate." - Event has a duplicate - - - - VLDTR_E_EV_BADEVTYPE - "Event has invalid EventType." - Event has invalid EventType - - - - VLDTR_E_EV_EVTYPENOTCLASS - "Event's EventType is not a class." - Event's EventType is not a class - - - - VLDTR_E_EV_BADSEMANTICS - "Event has method not (AddOn,RemoveOn,Fire,Other)." - Event has method not (AddOn,RemoveOn,Fire,Other) - - - - VLDTR_E_EV_BADMETHOD - "Event has method with invalid token." - Event has method with invalid token - - - - VLDTR_E_EV_ALIENMETHOD - "Event has method from another class." - Event has method from another class - - - - VLDTR_E_EV_NOADDON - "Event has no AddOn method." - Event has no AddOn method - - - - VLDTR_E_EV_NOREMOVEON - "Event has no RemoveOn method." - Event has no RemoveOn method - - - - VLDTR_E_CT_DUPTDNAME - "ExportedType has same name as TypeDef." - ExportedType has same name as TypeDef - - - - VLDTR_E_MAR_BADOFFSET - "MRes refers to non-PE file with non-zero offset." - MRes refers to non-PE file with offset !=0 - - - - VLDTR_E_DS_BADOWNER - "Declarative security has invalid owner token." - Decl.security has invalid owner token - - - - VLDTR_E_DS_BADFLAGS - "Declarative security has invalid action flags." - Decl.security has invalid action flags - - - - VLDTR_E_DS_NOBLOB - "Declarative security has no permission blob." - Decl.security has no permission blob - - - - VLDTR_E_MAR_BADIMPL - "Manifest resource has invalid Implementation." - Manifest resource has invalid Implementation - - - - VLDTR_E_MR_VARARGCALLINGCONV - "MemberRef has VARARG calling conv. (CLS warning)." - MemberRef has VARARG calling conv. (CLS warning) - - - - VLDTR_E_MD_CTORNOTVOID - ".ctor or .cctor returns something other than void." - .ctor,.cctor returning not void - - - - VLDTR_E_EV_FIRENOTVOID - "Fire method returns something other than void." - Fire method returning not void - - - - VLDTR_E_AS_BADLOCALE - "Invalid locale." - Invalid locale - - - - VLDTR_E_CN_PARENTTYPE - "Constant has parent of invalid type." - Constant has parent of invalid type - - - - VLDTR_E_SIG_SENTINMETHODDEF - "E_T_SENTINEL in MethodDef signature." - E_T_SENTINEL in MethodDef signature - - - - VLDTR_E_SIG_SENTMUSTVARARG - "E_T_SENTINEL <=> VARARG." - E_T_SENTINEL <=> VARARG - - - - VLDTR_E_SIG_MULTSENTINELS - "Multiple E_T_SENTINELs." - Multiple E_T_SENTINELs - - - - VLDTR_E_SIG_LASTSENTINEL - "E_T_SENTINEL not followed by type." - E_T_SENTINEL not followed by type - - - - VLDTR_E_SIG_MISSARG - "Signature missing argument." - Signature missing argument - - - - VLDTR_E_SIG_BYREFINFIELD - "Field of ByRef type." - Field of ByRef type - - - - VLDTR_E_MD_SYNCMETHODINVTYPE - "Synchronized method in value class." - Synchronized method in value class - - - - VLDTR_E_TD_NAMETOOLONG - "TypeDef name too long." - TypeDef name too long - - - - VLDTR_E_AS_PROCDUP - "Duplicate Assembly Processor." - Duplicate Assembly Processor - - - - VLDTR_E_ASOS_DUP - "Duplicate Assembly OS (ID+ver.major+ver.minor)." - Duplicate Assembly OS (ID+ver.major+ver.minor) - - - - VLDTR_E_MAR_BADFLAGS - "Manifest Resource has bad flags." - Manifest Resource has bad flags - - - - VLDTR_E_CT_NOTYPEDEFID - "ExportedType has nil TypeDefId." - ExportedType has nil TypeDefId - - - - VLDTR_E_FILE_BADFLAGS - "File has bad flags." - File has bad flags - - - - VLDTR_E_FILE_NULLHASH - "File has no hash blob." - File has no hash blob - - - - VLDTR_E_MOD_NONAME - "Module has no name." - Module has no name - - - - VLDTR_E_MOD_NAMEFULLQLFD - "Module has fully-qualified name." - Module has fully-qualified name - - - - VLDTR_E_TD_RTSPCLNOTSPCL - "TypeDef is tdRTSpecialName but not tdSpecialName." - TypeDef is tdRTSpecialName but not tdSpecialName - - - - VLDTR_E_TD_EXTENDSIFACE - "TypeDef extends interface." - TypeDef extends interface - - - - VLDTR_E_MD_CTORPINVOKE - ".ctor or .cctor is PInvokeImpl." - .ctor,.cctor is PInvokeImpl - - - - VLDTR_E_TD_SYSENUMNOTCLASS - "System.Enum is not a class." - System.Enum is not a class - - - - VLDTR_E_TD_SYSENUMNOTEXTVTYPE - "System.Enum extends not System.ValueType." - System.Enum extends not System.ValueType - - - - VLDTR_E_MI_SIGMISMATCH - "MethodImpl's Decl and Body signatures mismatch." - MethodImpl's Decl and Body signatures mismatch - - - - VLDTR_E_TD_ENUMHASMETHODS - "TypeDef extends System.Enum but has methods." - TypeDef extends System.Enum but has methods - - - - VLDTR_E_TD_ENUMIMPLIFACE - "TypeDef extends System.Enum but implements an interface." - TypeDef extends System.Enum but impls interface(s) - - - - VLDTR_E_TD_ENUMHASPROP - "TypeDef extends System.Enum but has a property." - TypeDef extends System.Enum but has prop(s) - - - - VLDTR_E_TD_ENUMHASEVENT - "TypeDef extends System.Enum but has an event." - TypeDef extends System.Enum but has event(s) - - - - VLDTR_E_TD_BADMETHODLST - "TypeDef has MethodList > Nmethods+1." - TypeDef has MethodList > Nmethods+1 - - - - VLDTR_E_TD_BADFIELDLST - "TypeDef has FieldList > Nfields+1." - TypeDef has FieldList > Nfields+1 - - - - VLDTR_E_CN_BADTYPE - "Constant has wrong type." - Constant has wrong type - - - - VLDTR_E_TD_ENUMNOINSTFLD - "Enum has no instance fields." - Enum has no instance fields - - - - VLDTR_E_TD_ENUMMULINSTFLD - "Enum has multiple instance fields." - Enum has multiple instance fields - - - - VLDTR_E_INTERRUPTED - "Validator has been interrupted by the VEHandler." - Validator has been interrupted by the VEHandler. - - - - VLDTR_E_NOTINIT - "Validator failed to initialize correctly." - Validator failed to initialize correctly. - - - - CORDBG_E_UNRECOVERABLE_ERROR - "Unrecoverable API error." - Unrecoverable API error. - - - - CORDBG_E_PROCESS_TERMINATED - "Process was terminated." - Process was terminated. - - - - CORDBG_E_PROCESS_NOT_SYNCHRONIZED - "Process not synchronized." - Process not synchronized. - - - - CORDBG_E_CLASS_NOT_LOADED - "A class is not loaded." - A class is not loaded. - - - - CORDBG_E_IL_VAR_NOT_AVAILABLE - "An IL variable is not available at the current native IP." - An IL variable is not available at the - - - - CORDBG_E_BAD_REFERENCE_VALUE - "A reference value was found to be bad during dereferencing." - A reference value was found to be bad - - - - CORDBG_E_FIELD_NOT_AVAILABLE - "A field in a class is not available, because the runtime optimized it away." - A field in a class is not available, - - - - CORDBG_E_NON_NATIVE_FRAME - "'Native-frame-only' operation on non-native frame." - "Native frame only" operation on - - - - CORDBG_E_NONCONTINUABLE_EXCEPTION - "Cannot Continue on non-continuable exception." - Continue on non-continuable exception - - - - CORDBG_E_CODE_NOT_AVAILABLE - "The code is currently unavailable." - The code is currently unavailable - - - - CORDBG_E_FUNCTION_NOT_IL - "Attempt to get a ICorDebugFunction for a function that is not IL." - Attempt to get a ICorDebugFunction for - - - - CORDBG_E_CANT_SET_IP_INTO_FINALLY - "SetIP is not possible because SetIP would move EIP from outside of an exception handling finally clause to a point inside of one." - SetIP isn't possible, because SetIP would - - - - CORDBG_E_CANT_SET_IP_OUT_OF_FINALLY - "SetIP is not possible because it would move EIP from within an exception handling finally clause to a point outside of one." - SetIP isn't possible because it would move - - - - CORDBG_E_CANT_SET_IP_INTO_CATCH - "SetIP is not possible, because SetIP would move EIP from outside of an exception handling catch clause to a point inside of one." - SetIP isn't possible, because SetIP would - - - - CORDBG_E_SET_IP_NOT_ALLOWED_ON_NONLEAF_FRAME - "SetIP cannot be done on any frame except the leaf frame." - Setip cannot be done on any frame except - - - - CORDBG_E_SET_IP_IMPOSSIBLE - "SetIP is not allowed." - SetIP isn't allowed. For example, there is - - - - CORDBG_E_FUNC_EVAL_BAD_START_POINT - "Func eval cannot work. Bad starting point." - Func eval can't work if we're, for example, - - - - CORDBG_E_INVALID_OBJECT - "This object value is no longer valid." - This object value is no longer valid. - - - - CORDBG_E_FUNC_EVAL_NOT_COMPLETE - "CordbEval::GetResult called before func eval has finished." - If you call CordbEval::GetResult before the - - - - CORDBG_E_INPROC_NOT_IMPL - "The in-process version of the debugging API does not support this function." - The inproc version of the debugging API - - - - CORDBG_E_STATIC_VAR_NOT_AVAILABLE - "A static variable is not available because it has not been initialized yet." - A static variable isn't available because - - - - CORDBG_E_OBJECT_IS_NOT_COPYABLE_VALUE_CLASS - "Cannot copy a VC with object refs in it." - Can't copy a VC with object refs in it. - - - - CORDBG_E_CANT_SETIP_INTO_OR_OUT_OF_FILTER - "SetIP cannot leave or enter a filter." - SetIP can't leave or enter a filter - - - - CORDBG_E_CANT_CHANGE_JIT_SETTING_FOR_ZAP_MODULE - "JIT settings for ZAP modules cannot be changed." - You can't change JIT settings for ZAP - - - - CORDBG_E_CANT_SET_IP_OUT_OF_FINALLY_ON_WIN64 - "SetIP is not possible because it would move EIP from within a finally clause to a point outside of one on WIN64 platforms." - SetIP isn't possible because it would move - - - - CORDBG_E_CANT_SET_IP_OUT_OF_CATCH_ON_WIN64 - "SetIP is not possible because it would move EIP from within a catch clause to a point outside of one on WIN64 platforms." - SetIP isn't possible because it would move - - - - CORDBG_E_REMOTE_CONNECTION_CONN_RESET - "The remote device closed the connection." - The remote device closed the connection. - - - - CORDBG_E_REMOTE_CONNECTION_KEEP_ALIVE - "The connection was closed due to a keep-alive failure." - The connection was closed due to akeep alive failure. - - - - CORDBG_E_REMOTE_CONNECTION_FATAL_ERROR - "Generic error that the device connection has been broken with no chance for recovery." - Generic error that the device connection has been broken with no chance for recovery. - - - - CORDBG_E_CANT_SET_TO_JMC - "Cannot use JMC on this code (likely wrong JIT settings)." - Can't use JMC on this code (likely wrong jit settings). - - - - CORDBG_E_NO_CONTEXT_FOR_INTERNAL_FRAME - "Internal frame markers have no associated context." - Internal frame markers have no associated context. - - - - CORDBG_E_NOT_CHILD_FRAME - "The current frame is not a child frame." - The current frame is not a child frame. - - - - CORDBG_E_NON_MATCHING_CONTEXT - "The provided CONTEXT does not match the specified thread." - The provided CONTEXT does not match the specified thread. - The stack pointer in the provided CONTEXT must match the cached stack base and stack limit of the thread. - - - - - CORDBG_E_PAST_END_OF_STACK - "The stackwalker is now past the end of stack. No information is available." - The stackwalker is now past the end of stack. No information is available. - - - - CORDBG_E_FUNC_EVAL_CANNOT_UPDATE_REGISTER_IN_NONLEAF_FRAME - "Func eval cannot update a variable stored in a register on a non-leaf frame. The most likely cause is that such a variable is passed as a ref/out argument." - Func eval cannot update a variable stored in a register on a non-leaf frame. The most likely cause is that such a variable is passed as a ref/out argument. - - - - CORDBG_E_BAD_THREAD_STATE - "The state of the thread is invalid." - The state of the thread is invalid. - - - - CORDBG_E_DEBUGGER_ALREADY_ATTACHED - "This process has already been attached." - This process has already been attached to - - - - CORDBG_E_SUPERFLOUS_CONTINUE - "Returned from a call to Continue that was not matched with a stopping event." - Returned from a call to Continue that was - - - - CORDBG_E_SET_VALUE_NOT_ALLOWED_ON_NONLEAF_FRAME - "Cannot perfrom SetValue on non-leaf frames." - Can't perfrom SetValue on non-leaf frames. - - - - CORDBG_E_ENC_EH_MAX_NESTING_LEVEL_CANT_INCREASE - "When doing Edit and Continue, some JITs do not allow increasing the maximum level to which exception handling can be nested." - When doing EnC, some JITters don't let you - - - - CORDBG_E_ENC_MODULE_NOT_ENC_ENABLED - "Tried to do Edit and Continue on a module that was not started in Edit and Continue mode." - Tried to do EnC on a module that wasn't - - - - CORDBG_E_SET_IP_NOT_ALLOWED_ON_EXCEPTION - "SetIP cannot be done on any exception." - Setip cannot be done on any exception - - - - CORDBG_E_VARIABLE_IS_ACTUALLY_LITERAL - "The 'variable' does not exist because it is a literal optimized away by the compiler." - The 'variable' doesn't exist because it is a - - - - CORDBG_E_PROCESS_DETACHED - "Process has been detached." - Process has been detached from - - - - CORDBG_E_ENC_METHOD_SIG_CHANGED - "Not allowed to change the signature of an existing method." - Not allowed to change the signature of an - - - - CORDBG_E_ENC_METHOD_NO_LOCAL_SIG - "Cannot get the local signature for the method." - Can't get the local signature for the method - - - - CORDBG_E_ENC_CANT_ADD_FIELD_TO_VALUE_OR_LAYOUT_CLASS - "Adding a field to a value or layout class is prohibited." - Adding a field to a value or layout class is prohibitted, - - - - CORDBG_E_ENC_CANT_CHANGE_FIELD - "Cannot change field after adding." - Once you've got a field, you're not allowed to change - - - - CORDBG_E_ENC_CANT_ADD_NON_PRIVATE_MEMBER - "Only support addition of private members." - Only support addition of private members. - - - - CORDBG_E_FIELD_NOT_STATIC - "GetStaticFieldValue called on a non-static field." - Returned if someone tries to call GetStaticFieldValue - - - - CORDBG_E_FIELD_NOT_INSTANCE - "Returned if someone tries to call GetStaticFieldValue on a non-instance field." - Returned if someone tries to call GetStaticFieldValue - - - - CORDBG_E_ENC_ZAPPED_WITHOUT_ENC - "If a zap file was created without the Edit and Continue flag set, then we cannot do Edit and Continue on it, no matter what." - If a zap file was created without the EnC flag set, then - - - - CORDBG_E_ENC_BAD_METHOD_INFO - "Lacking information about method." - Lacking information about method. - - - - CORDBG_E_ENC_JIT_CANT_UPDATE - "The JIT is unable to update the method." - The JIT is unable to update the method. - - - - CORDBG_E_ENC_MISSING_CLASS - "An internal structure about the class is missing." - An internal structure about the class is missing - - - - CORDBG_E_ENC_INTERNAL_ERROR - "Internal Runtime Error while doing Edit-and-Continue." - Generic message for "Something user doesn't control went wrong" message. - - - - CORDBG_E_ENC_HANGING_FIELD - "The field was added via Edit and Continue after the class was loaded." - The field was added via EnC after the class was loaded, and so instead of the the field being contiguous with the other fields, it's 'hanging' off the instance or type. This error is used to indicate that either the storage for this field is not yet available and so the field value cannot be read, or the debugger needs to use an EnC specific code path to get the value. - - - - CORDBG_E_MODULE_NOT_LOADED - "Module not loaded." - If the module isn't loaded, including if it's been unloaded. - - - - CORDBG_E_ENC_CANT_CHANGE_SUPERCLASS - "Not allowed to change base class." - Not allowed to change which class something inherits from - - - - CORDBG_E_UNABLE_TO_SET_BREAKPOINT - "Cannot set a breakpoint here." - Can't set a breakpoint here. - - - - CORDBG_E_DEBUGGING_NOT_POSSIBLE - "Debugging is not possible due to an incompatibility within the CLR implementation." - Debugging isn't possible due to an incompatibility within the CLR implementation. - - - - CORDBG_E_KERNEL_DEBUGGER_ENABLED - "A kernel debugger is enabled on the system. User-mode debugging will trap to the kernel debugger." - Debugging isn't possible because a kernel debugger is enabled on the system. - - - - CORDBG_E_KERNEL_DEBUGGER_PRESENT - "A kernel debugger is present on the system. User-mode debugging will trap to the kernel debugger." - Debugging isn't possible because a kernel debugger is present on the system. - - - - CORDBG_E_HELPER_THREAD_DEAD - "The debugger's internal helper thread is dead." - The debugger's internal helper thread is dead. - - - - CORDBG_E_INTERFACE_INHERITANCE_CANT_CHANGE - "Not allowed to change interface inheritance." - Not allowed to change interface inheritance. - - - - CORDBG_E_INCOMPATIBLE_PROTOCOL - "The debugger's protocol is incompatible with the debuggee." - The debugger's protocol is incompatible with the debuggee. - - - - CORDBG_E_TOO_MANY_PROCESSES - "The debugger can only handle a finite number of debuggees." - The debugger can only handle a finite number of debuggees. - - - - CORDBG_E_INTEROP_NOT_SUPPORTED - "Interop debugging is not supported." - Interop debugging is not supported - - - - CORDBG_E_NO_REMAP_BREAKPIONT - "Cannot call RemapFunction until have received RemapBreakpoint." - Cannot call RemapFunction until have received RemapBreakpoint - - - - CORDBG_E_OBJECT_NEUTERED - "Object is in a zombie state." - Object has been neutered (it's in a zombie state). - - - - CORPROF_E_FUNCTION_NOT_COMPILED - "Function not yet compiled." - Function not yet compiled. - - - - CORPROF_E_DATAINCOMPLETE - "The ID is not fully loaded/defined yet." - The ID is not fully loaded/defined yet. - - - - CORPROF_E_NOT_REJITABLE_METHODS - "The Module is not configured for updateable methods." - The Module is not configured for updateable methods. - - - - CORPROF_E_CANNOT_UPDATE_METHOD - "The Method could not be updated for re-JIT." - The Method could not be updated for re-jit. - - - - CORPROF_E_FUNCTION_NOT_IL - "The Method has no associated IL." - The Method has no associated IL - - - - CORPROF_E_NOT_MANAGED_THREAD - "The thread has never run managed code before." - The thread has never run managed code before - - - - CORPROF_E_CALL_ONLY_FROM_INIT - "The function may only be called during profiler initialization." - The function may only be called during profiler init - - - - CORPROF_E_INPROC_NOT_ENABLED - "In-process debugging must be enabled during initialization." - Inprocess debugging must be enabled during init - - - - CORPROF_E_JITMAPS_NOT_ENABLED - "Cannot get a JIT map becuase they are not enabled." - Can't get a JIT map becuase they are not enabled - - - - CORPROF_E_INPROC_ALREADY_BEGUN - "BeginInprocDebugging already called." - If a profiler tries to call BeginInprocDebugging more than - - - - CORPROF_E_INPROC_NOT_AVAILABLE - "In-process debugging not allowed at this point." - States that inprocess debugging not allowed at this point - - - - CORPROF_E_NOT_YET_AVAILABLE - "Requested information is not yet available." - This is a general error used to indicated that the information - - - - CORPROF_E_TYPE_IS_PARAMETERIZED - "The given type is a generic and cannot be used with this method." - The given type is a generic and cannot be used with this method. - - - - CORPROF_E_FUNCTION_IS_PARAMETERIZED - "The given function is a generic and cannot be used with this method." - The given function is a generic and cannot be used with this method. - - - - CORPROF_E_STACKSNAPSHOT_INVALID_TGT_THREAD - A profiler tried to walk the stack of an invalid thread - - - - CORPROF_E_STACKSNAPSHOT_UNMANAGED_CTX - A profiler can not walk a thread that is currently executing unmanaged code - - - - CORPROF_E_STACKSNAPSHOT_UNSAFE - A stackwalk at this point may cause dead locks or data corruption - - - - CORPROF_E_STACKSNAPSHOT_ABORTED - Stackwalking callback requested the walk to abort - - - - CORPROF_E_LITERALS_HAVE_NO_ADDRESS - Returned when asked for the address of a static that is a literal. - - - - CORPROF_E_UNSUPPORTED_CALL_SEQUENCE - A call was made at an unsupported time. Examples include illegally calling a profiling API method asynchronously, calling a method that might trigger a GC at an unsafe time, and calling a method at a time that could cause locks to be taken out of order. - - - - CORPROF_E_ASYNCHRONOUS_UNSAFE - A legal asynchronous call was made at an unsafe time (e.g., CLR locks are held) - - - - CORPROF_E_CLASSID_IS_ARRAY - The specified ClassID cannot be inspected by this function because it is an array - - - - CORPROF_E_CLASSID_IS_COMPOSITE - The specified ClassID is a non-array composite type (e.g., ref) and cannot be inspected - - - - CORPROF_E_PROFILER_DETACHING - The profiler's call into the CLR is disallowed because the profiler is attempting to detach. - - - - CORPROF_E_PROFILER_NOT_ATTACHABLE - The profiler does not support attaching to a live process. - - - - CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT - The message sent on the profiling API attach pipe is in an unrecognized format. - - - - CORPROF_E_PROFILER_ALREADY_ACTIVE - The request to attach a profiler was denied because a profiler is already loaded. - - - - CORPROF_E_PROFILEE_INCOMPATIBLE_WITH_TRIGGER - Unable to request a profiler attach because the target profilee's runtime is of a version incompatible with the current process calling AttachProfiler(). - - - - CORPROF_E_IPC_FAILED - AttachProfiler() encountered an error while communicating on the pipe to the target profilee. This is often caused by a target profilee that is shutting down or killed while AttachProfiler() is reading or writing the pipe. - - - - CORPROF_E_PROFILEE_PROCESS_NOT_FOUND - AttachProfiler() was unable to find a profilee with the specified process ID. - - - - CORPROF_E_CALLBACK3_REQUIRED - Profiler must implement ICorProfilerCallback3 interface for this call to be supported. - - - - CORPROF_E_UNSUPPORTED_FOR_ATTACHING_PROFILER - This call was attempted by a profiler that attached to the process after startup, but this call is only supported by profilers that are loaded into the process on startup. - - - - CORPROF_E_IRREVERSIBLE_INSTRUMENTATION_PRESENT - Detach is impossible because the profiler has either instrumented IL or inserted enter/leave hooks. Detach was not attempted; the profiler is still fully attached. - - - - CORPROF_E_RUNTIME_UNINITIALIZED - The profiler called a function that cannot complete because the CLR is not yet fully initialized. The profiler may try again once the CLR has fully started. - - - - CORPROF_E_IMMUTABLE_FLAGS_SET - Detach is impossible because immutable flags were set by the profiler at startup. Detach was not attempted; the profiler is still fully attached. - - - - CORPROF_E_PROFILER_NOT_YET_INITIALIZED - The profiler called a function that cannot complete because the profiler is not yet fully initialized. - - - - CORPROF_E_INCONSISTENT_WITH_FLAGS - The profiler called a function that first requires additional flags to be set in the event mask. This HRESULT may also indicate that the profiler called a function that first requires that some of the flags currently set in the event mask be reset. - - - - CORPROF_E_PROFILER_CANCEL_ACTIVATION - The profiler has requested that the CLR instance not load the profiler into this process. - - - - CORPROF_E_CONCURRENT_GC_NOT_PROFILABLE - Concurrent GC mode is enabled, which prevents use of COR_PRF_MONITOR_GC - - - - CORPROF_E_INCONSISTENT_FLAGS_WITH_HOST_PROTECTION_SETTING - Host enforces host protection attributes, which prevents use of COR_PRF_USE_PROFILE_IMAGES, COR_PRF_MONITOR_CODE_TRANSITIONS, and COR_PRF_MONITOR_ENTERLEAVE - - - - CORPROF_E_DEBUGGING_DISABLED - This functionality requires CoreCLR debugging to be enabled. - - - - CORPROF_E_TIMEOUT_WAITING_FOR_CONCURRENT_GC - Timed out on waiting for concurrent GC to finish during attach. - - - - CORPROF_E_MODULE_IS_DYNAMIC - The specified module was dynamically generated (e.g., via Reflection.Emit API), and is thus not supported by this API method. - - - - CORPROF_E_CALLBACK4_REQUIRED - Profiler must implement ICorProfilerCallback4 interface for this call to be supported. - - - - CORPROF_E_REJIT_NOT_ENABLED - This call is not supported unless ReJIT is first enabled during initialization by setting COR_PRF_ENABLE_REJIT via SetEventMask. - - - - CORPROF_E_ACTIVE_REJIT_REQUEST_NOT_FOUND - Could not revert the specified method, because a corresponding active ReJIT request was not found. Either the method was never requested to be reJITted OR the method was already reverted. - - - - CORPROF_E_FUNCTION_IS_COLLECTIBLE - The specified function is instantiated into a collectible assembly, and is thus not supported by this API method. - - - - CORPROF_E_REJIT_REQUIRES_DISABLE_NGEN - If the profiler specifies COR_PRF_ENABLE_REJIT to SetEventMask, it must also specify COR_PRF_DISABLE_ALL_NGEN_IMAGES. - - - - CORPROF_E_CALLBACK6_REQUIRED - Profiler must implement ICorProfilerCallback6 interface for this call to be supported. - - - - - - CORPROF_E_CALLBACK7_REQUIRED - Profiler must implement ICorProfilerCallback7 interface for this call to be supported. - - - - SECURITY_E_XML_TO_ASN_ENCODING - "Failed to convert XML to ASN." - Failed to convert XML to ASN - - - - SECURITY_E_INCOMPATIBLE_SHARE - "Loading this assembly would produce a different grant set from other instances." - Loading this assembly would produce a different grant set from other instances - - - - SECURITY_E_UNVERIFIABLE - "Unverifiable code failed policy check." - Unverifable code failed policy check - - - - SECURITY_E_INCOMPATIBLE_EVIDENCE - "Assembly already loaded without additional security evidence." - Assembly already loaded without additional security evidence. - - - - CORSEC_E_DECODE_SET - "Failure decoding permission set." - Failure decoding permission set - - - - CORSEC_E_ENCODE_SET - "Failure encoding permission set." - Failure encoding permission set - - - - CORSEC_E_UNSUPPORTED_FORMAT - "Unrecognized encoding format." - Unrecognized encoding format - - - - SN_CRYPTOAPI_CALL_FAILED - StrongName APIs not supported on system - - - - CORSEC_E_CRYPTOAPI_CALL_FAILED - "StrongName APIs not supported on system." - StrongName APIs not supported on system - - - - SN_NO_SUITABLE_CSP - StrongName APIs couldn't locate a matching CSP - - - - CORSEC_E_NO_SUITABLE_CSP - "StrongName APIs could not locate a matching CSP." - StrongName APIs couldn't locate a matching CSP - - - - CORSEC_E_INVALID_ATTR - "Invalid security custom attribute." - Invalid security custom attribute - - - - CORSEC_E_POLICY_EXCEPTION - "PolicyException thrown." - PolicyException thrown - - - - CORSEC_E_MIN_GRANT_FAIL - "Failed to grant minimum permission requests." - Failed to grant minimum permission requests - - - - CORSEC_E_NO_EXEC_PERM - "Failed to grant permission to execute." - Failed to grant permission to execute - - - - CORSEC_E_XMLSYNTAX - "XML Syntax error." - XML Syntax error - - - - CORSEC_E_INVALID_STRONGNAME - "Strong name validation failed." - Strong name validation failed - - - - CORSEC_E_MISSING_STRONGNAME - "Assembly is not strong named." - Assembly is not strong named - - - - CORSEC_E_CONTAINER_NOT_FOUND - "Strong name key container not found." - Strong name key container not found - - - - CORSEC_E_INVALID_IMAGE_FORMAT - "Invalid assembly file format." - Invalid assembly file format - - - - CORSEC_E_INVALID_PUBLICKEY - "Invalid assembly public key." - Invalid assembly public key - - - - CORSEC_E_SIGNATURE_MISMATCH - "Signature size mismatch." - Signature size mismatch - - - - SN_E_PUBLICKEY_MISMATCH - "Public key of assembly did not match signing public key." - Public key of assembly did not match signing public key - - - - CORSEC_E_INVALID_SIGNATUREKEY - "Invalid signature public key specified in AssemblySignatureKeyAttribute." - Invalid signature key (or invalid key format) specified in the assembly's attribute - - - - CORSEC_E_INVALID_COUNTERSIGNATURE - "Invalid countersignature specified in AssemblySignatureKeyAttribute." - Invalid signature (or invalid signature format) specified in the assembly's attribute - - - - CORSEC_E_CRYPTO - "Failure during Cryptographic operation." - generic CryptographicException - - - - CORSEC_E_CRYPTO_UNEX_OPER - "Unexpected Cryptographic operation." - generic CryptographicUnexpectedOperationException - - - - CORSECATTR_E_BAD_ATTRIBUTE - "Generic problem with a custom attribute." - Generic problem with a custom attribute - - - - CORSECATTR_E_MISSING_CONSTRUCTOR - "Missing a required constructor." - Missing a required constructor - - - - CORSECATTR_E_FAILED_TO_CREATE_PERM - "Unable to create a permission for this attribute." - Unable to create a permission for this attribute - - - - CORSECATTR_E_BAD_ACTION_ASM - "SecurityAction type invalid on assembly." - SecurityAction type invalid on assembly - - - - CORSECATTR_E_BAD_ACTION_OTHER - "SecurityAction type invalid on types and methods." - SecurityAction type invalid on types and methods - - - - CORSECATTR_E_BAD_PARENT - "Security custom attribute attached to invalid parent." - Security custom attribute attached to invalid parent - - - - CORSECATTR_E_TRUNCATED - "Bad custom attribute serialized blob." - Bad custom attribute serialized blob - - - - CORSECATTR_E_BAD_VERSION - "Bad custom attribute serialized blob version." - Bad custom attribute serialized blob version - - - - CORSECATTR_E_BAD_ACTION - "Invalid security action code." - Invalid security action code - - - - CORSECATTR_E_NO_SELF_REF - "CA reference to CA definition in same assembly." - CA ref to CA def'd in same assembly - - - - CORSECATTR_E_BAD_NONCAS - "Use of non-CAS permission with invalid action." - Use of non-CAS perm with invalid action - - - - CORSECATTR_E_ASSEMBLY_LOAD_FAILED - "Failed to load assembly containing CA (or required CA type)." - Failed to load assembly containing CA (or req'd CA type) - - - - CORSECATTR_E_ASSEMBLY_LOAD_FAILED_EX - "Failed to load assembly containing CA (or required CA type)." - Failed to load assembly containing CA (or req'd CA type) - - - - CORSECATTR_E_TYPE_LOAD_FAILED - "Failed to load CA type (or required CA type)." - Failed to load CA type (or reqd CA type) - - - - CORSECATTR_E_TYPE_LOAD_FAILED_EX - "Failed to load CA type (or required CA type)." - Failed to load CA type (or reqd CA type) - - - - CORSECATTR_E_ABSTRACT - "CA type is abstract." - CA type is abstract - - - - CORSECATTR_E_UNSUPPORTED_TYPE - "Security custom attributes do not support array or Type fields and properties." - Security custom attributes do not support array or Type fields and properties - - - - CORSECATTR_E_UNSUPPORTED_ENUM_TYPE - "Unsupported base type for enum field or property." - Unsupported base type for enum field/property - - - - CORSECATTR_E_NO_FIELD - "Could not find a CA field." - Couldn't find a CA field - - - - CORSECATTR_E_NO_PROPERTY - "Could not find a CA property." - Couldn't find a CA property - - - - CORSECATTR_E_EXCEPTION - "Unexpected exception." - Unexpected exception - - - - CORSECATTR_E_EXCEPTION_HR - "Unexpected exception." - Unexpected exception - - - - ISS_E_ISOSTORE_START - - - - ISS_E_ISOSTORE - "IsolatedStorage operation failed." - - - - ISS_E_OPEN_STORE_FILE - "Unable to open the store." - - - - ISS_E_OPEN_FILE_MAPPING - "Unable to create store file mapping." - - - - ISS_E_MAP_VIEW_OF_FILE - "Unable to map the store file." - - - - ISS_E_GET_FILE_SIZE - "Unable to determine store file size." - - - - ISS_E_CREATE_MUTEX - "Unable to create mutex." - - - - ISS_E_LOCK_FAILED - "Unable to lock the store." - - - - ISS_E_FILE_WRITE - "File Write failed." - - - - ISS_E_SET_FILE_POINTER - "Cannot set file pointer." - - - - ISS_E_CREATE_DIR - "Unable to create the store directory." - - - - ISS_E_STORE_NOT_OPEN - "Store must be open for this operation." - - - - ISS_E_CORRUPTED_STORE_FILE - "Store file is corrupt." - - - - ISS_E_STORE_VERSION - "Store version is not supported." - - - - ISS_E_FILE_NOT_MAPPED - "Store file is not mapped." - - - - ISS_E_BLOCK_SIZE_TOO_SMALL - "Block size is too small." - - - - ISS_E_ALLOC_TOO_LARGE - "Allocation size is too large." - - - - ISS_E_USAGE_WILL_EXCEED_QUOTA - "Allowed quota is fully used." - - - - ISS_E_TABLE_ROW_NOT_FOUND - "Row not found." - - - - ISS_E_DEPRECATE - "Unable to deprecate old store." - - - - ISS_E_CALLER - "Unable to determine the caller." - - - - ISS_E_PATH_LENGTH - "Path length is too long." - - - - ISS_E_MACHINE - "Machine Store is not supported." - - - - ISS_E_MACHINE_DACL - "The DACL for the machine store is incorrect or could not be created." - - - - ISS_E_ISOSTORE_END - - - - COR_E_EXCEPTION - "General Exception" - Base class for all exceptions in the runtime - - - - COR_E_SYSTEM - "System.Exception" - The base class for the runtime's "less serious" exceptions - - - - COR_E_ARGUMENTOUTOFRANGE - "An argument was out of its legal range." - An argument was out of its legal range. - - - - COR_E_ARRAYTYPEMISMATCH - "Attempted to store an object of the wrong type in an array." - Attempted to store an object of the wrong type in an array - - - - COR_E_CONTEXTMARSHAL - "Attempted to marshal an object across a context boundary." - - - - - COR_E_TIMEOUT - "Operation timed out." - - - - - COR_E_EXECUTIONENGINE - "Internal CLR error." - An internal error happened in the Common Language Runtime's Execution Engine - - - - COR_E_FIELDACCESS - "Access to this field is denied." - Access to this field is denied. - - - - COR_E_INDEXOUTOFRANGE - "Array subscript out of range." - Attempted to access an element within an array by using an index that is - - - - COR_E_INVALIDOPERATION - "An operation is not legal in the current state." - An operation is not legal in the current state. - - - - COR_E_SECURITY - "An error relating to security occurred." - An error relating to security occurred. - - - - COR_E_REMOTING - "An error relating to remoting occurred." - An error relating to remoting occurred. - - - - COR_E_SERIALIZATION - "An error relating to serialization occurred." - An error relating to serialization has occurred. - - - - COR_E_VERIFICATION - "A verification failure has occurred." - A verification failure occurred - - - - COR_E_SERVER - "An error relating to remoting occurred." - - - - COR_E_SERVICEDCOMPONENT - "An error relating to ServicedComponent occurred." - An error relating to ServicedComponent occurred. - - - - COR_E_METHODACCESS - "Access to this method is denied." - Access to this method is denied. - - - - COR_E_MISSINGFIELD - "Field does not exist." - An attempt was made to dynamically access a field that does not exist. - - - - COR_E_MISSINGMEMBER - "Member does not exist." - An attempt was made to dynamically invoke or access a field or method - - - - COR_E_MISSINGMETHOD - "Method does not exist." - An attempt was made to dynamically invoke a method that does not exist - - - - COR_E_MULTICASTNOTSUPPORTED - "Attempt to combine delegates that are not multicast." - Attempted to combine delegates that are not multicast - - - - COR_E_NOTSUPPORTED - "Operation is not supported." - The operation is not supported - - - - COR_E_OVERFLOW - "Arithmetic, casting or conversion operation overflowed or underflowed." - An arithmetic, casting, or conversion operation overflowed or underflowed. - - - - COR_E_RANK - "An array has the wrong number of dimensions for a particular operation." - An array has the wrong number of dimensions for a particular operation. - - - - COR_E_SYNCHRONIZATIONLOCK - "This operation must be called from a synchronized block." - Wait(), Notify() or NotifyAll() was called from an unsynchronized ** block of c - - - - COR_E_THREADINTERRUPTED - "Thread was interrupted from a waiting state." - Indicates that the thread was interrupted from a waiting state - - - - COR_E_MEMBERACCESS - "Access to this member is denied." - Access to this member is denied. - - - - COR_E_THREADSTATE - "Thread is in an invalid state for this operation." - Indicate that the Thread class is in an invalid state for the method call - - - - COR_E_THREADSTOP - "Thread is stopping." - Thrown into a thread to cause it to stop. This exception is typically not caught - - - - COR_E_TYPELOAD - "Could not find or load a type." - Could not find or load a specific type (class, enum, etc). - - - - COR_E_ENTRYPOINTNOTFOUND - "Could not find the specified DllImport entrypoint." - Could not find the specified DllImport entry point - - - - COR_E_DLLNOTFOUND - "Could not find the specified DllImport Dll." - Could not find the specified DllImport DLL. - - - - COR_E_THREADSTART - Indicate that a user thread fails to start. - - - - COR_E_INVALIDCOMOBJECT - "An invalid __ComObject has been used." - An invalid __ComObject has been used. - - - - COR_E_NOTFINITENUMBER - "Not a Number." - Thrown if value (a floating point number) is either the not a number value (NaN) or +- infinity value - - - - COR_E_DUPLICATEWAITOBJECT - "An object appears more than once in the wait objects array." - An object appears more than once in the wait objects array. - - - - COR_E_SEMAPHOREFULL - "Reached maximum count for semaphore." - Adding the given count to the semaphore would cause it to exceed its maximum count. - - - - COR_E_WAITHANDLECANNOTBEOPENED - "No semaphore of the given name exists." - No Semaphore of the given name exists. - - - - COR_E_ABANDONEDMUTEX - "The wait completed due to an abandoned mutex." - The wait completed due to an abandoned mutex. - - - - COR_E_THREADABORTED - "Thread has aborted." - Thrown into a thread to cause it to abort. Not catchable. - - - - COR_E_INVALIDOLEVARIANTTYPE - "OLE Variant has an invalid type." - The type of an OLE variant that was passed into the runtime is invalid. - - - - COR_E_MISSINGMANIFESTRESOURCE - "An expected resource in the assembly manifest was missing." - An expected resource in the assembly manifest was missing. - - - - COR_E_SAFEARRAYTYPEMISMATCH - "A mismatch has occurred between the runtime type of the array and the sub type recorded in the metadata." - A mismatch has occurred between the runtime type of the array and the subtype recorded in the metadata - - - - COR_E_TYPEINITIALIZATION - "Uncaught exception during type initialization." - An exception was thrown by a type's initializer (.cctor). - - - - COR_E_MARSHALDIRECTIVE - "Invalid marshaling directives." - The marshaling directives are invalid. - - - - COR_E_MISSINGSATELLITEASSEMBLY - "An expected satellite assembly containing the ultimate fallback resources for a given culture was not found or could not be loaded." - An expected satellite assembly containing the ultimate fallback resources - - - - COR_E_FORMAT - "The format of one argument does not meet the contract of the method." - The format of one argument does not meet the contract of the method. - - - - COR_E_SAFEARRAYRANKMISMATCH - "A mismatch has occurred between the runtime rank of the array and the rank recorded in the metadata." - A mismatch has occurred between the runtime rank of the array and the rank recorded in the metadata - - - - COR_E_PLATFORMNOTSUPPORTED - "Operation is not supported on this platform." - The method is not supported on this platform - - - - COR_E_INVALIDPROGRAM - "Invalid IL or CLR metadata." - A program contained invalid IL or bad metadata. Usually this is a compiler bug. - - - - COR_E_OPERATIONCANCELED - "The operation was cancelled." - The operation was cancelled. - - - - COR_E_INSUFFICIENTMEMORY - Not enough memory was available for an operation. - - - - COR_E_RUNTIMEWRAPPED - An object that does not derive from System.Exception has been wrapped in a RuntimeWrappedException. - - - - COR_E_DEVICESNOTSUPPORTED - "Devices not supported." - - - - - COR_E_DATAMISALIGNED - "A datatype misalignment was detected in a load or store instruction." - A datatype misalignment was detected in a load or store instruction. - - - - COR_E_CODECONTRACTFAILED - "A managed code contract (ie, precondition, postcondition, invariant, or assert) failed." - A managed code contract (ie, precondition, postcondition, invariant, or assert) failed. - - - - COR_E_TYPEACCESS - "Access to this type is denied." - Access to this type is denied. - - - - COR_E_ACCESSING_CCW - "Fail to access a CCW because the corresponding managed object is already collected." - Fail to access a CCW because the corresponding managed object is already collected. - - - - COR_E_MAXMETHODSIZE - "A method in this assembly is greater than the maximum allowed method size." - This is Apollo only. - - - - - COR_E_KEYNOTFOUND - "The given key was not present in the dictionary." - - - - - COR_E_INSUFFICIENTEXECUTIONSTACK - "Insufficient stack to continue executing the program safely. This can happen from having too many functions on the call stack or function on the stack using too much stack space." - Insufficient stack to continue executing the program safely. This can happen from having too many functions on the call stack or function on the stack using too much stack space. - - - - COR_E_APPLICATION - "Application exception" - The base class for all "less serious" exceptions. - - - - COR_E_INVALIDFILTERCRITERIA - "The given filter criteria does not match the filter content." - The given filter criteria does not match the filter contract. - - - - COR_E_REFLECTIONTYPELOAD - "Could not find or load a specific class that was requested through Reflection." - Could not find or load a specific class that was requested through Reflection - - - - COR_E_TARGET - "Attempt to invoke non-static method with a null Object." - - If you attempt to invoke a non-static method with a null Object - If you atte - - - - COR_E_TARGETINVOCATION - "Uncaught exception thrown by method called through Reflection." - If the method called throws an exception - - - - COR_E_CUSTOMATTRIBUTEFORMAT - "Custom attribute has invalid format." - If the binary format of a custom attribute is invalid. - - - - COR_E_IO - "Error during managed I/O." - Some sort of I/O error. - - - - COR_E_FILELOAD - "Could not find or load a specific file." - - - - - COR_E_OBJECTDISPOSED - "The object has already been disposed." - The object has already been disposed. - - - - COR_E_FAILFAST - "Runtime operation halted by call to System.Environment.FailFast()." - Runtime operation halted by call to System.Environment.FailFast(). - - - - COR_E_HOSTPROTECTION - "The host has forbidden this operation." - Attempted to perform an operation that was forbidden by the host. - - - - COR_E_ILLEGAL_REENTRANCY - "Attempted to call into managed code when executing inside a low level extensibility point." - Attempted to call into managed code when executing inside a low level extensibility point. - - - - CLR_E_SHIM_RUNTIMELOAD - "Failed to load the runtime." - Failed to load the runtime - - - - CLR_E_SHIM_RUNTIMEEXPORT - "Failed to find a required export in the runtime." - Failed to find a required export in the runtime - - - - CLR_E_SHIM_INSTALLROOT - "Install root is not defined." - Install root is not defined - - - - CLR_E_SHIM_INSTALLCOMP - "Expected component of the runtime is not available." - Expected component of the runtime is not available - - - - CLR_E_SHIM_LEGACYRUNTIMEALREADYBOUND - "A runtime has already been bound for legacy activation policy use." - - - - CLR_E_SHIM_SHUTDOWNINPROGRESS - "The operation is invalid because the process may be shutting down." - - - - VER_E_HRESULT - - - - VER_E_OFFSET - - - - VER_E_OPCODE - - - - VER_E_OPERAND - - - - VER_E_TOKEN - - - - VER_E_EXCEPT - - - - VER_E_STACK_SLOT - - - - VER_E_LOC - - - - VER_E_ARG - - - - VER_E_FOUND - - - - VER_E_EXPECTED - - - - VER_E_LOC_BYNAME - - - - VER_E_UNKNOWN_OPCODE - "Unknown opcode." - - - - VER_E_SIG_CALLCONV - "Unknown calling convention." - - - - VER_E_SIG_ELEMTYPE - "Unknown ELEMENT_TYPE." - - - - VER_E_RET_SIG - "[return sig]" - - - - VER_E_FIELD_SIG - "[field sig]" - - - - VER_E_OPEN_DLGT_PROT_ACC - "Protected method access through an open instance delegate is not verifiable." - - - - VER_E_INTERNAL - "Internal error." - - - - VER_E_STACK_TOO_LARGE - "Stack is too large." - - - - VER_E_ARRAY_NAME_LONG - "Array name is too long." - - - - VER_E_FALLTHRU - "fall through end of the method without returning" - - - - VER_E_TRY_GTEQ_END - "try start >= try end" - - - - VER_E_TRYEND_GT_CS - "try end > code size" - - - - VER_E_HND_GTEQ_END - "handler start >= handler end" - - - - VER_E_HNDEND_GT_CS - "handler end > code size" - - - - VER_E_FLT_GTEQ_CS - - - - VER_E_TRY_START - "Try starts in the middle of an instruction." - - - - VER_E_HND_START - "Handler starts in the middle of an instruction." - - - - VER_E_FLT_START - - - - VER_E_TRY_OVERLAP - "Try block overlap with another block." - - - - VER_E_TRY_EQ_HND_FIL - "Try and filter/handler blocks are equivalent." - - - - VER_E_TRY_SHARE_FIN_FAL - "Shared try has finally or fault handler." - - - - VER_E_HND_OVERLAP - "Handler block overlaps with another block." - - - - VER_E_HND_EQ - "Handler block is the same as another block." - - - - VER_E_FIL_OVERLAP - "Filter block overlaps with another block." - - - - VER_E_FIL_EQ - "Filter block is the same as another block." - - - - VER_E_FIL_CONT_TRY - "Filter contains try." - - - - VER_E_FIL_CONT_HND - "Filter contains handler." - - - - VER_E_FIL_CONT_FIL - "Nested filters." - - - - VER_E_FIL_GTEQ_CS - "filter >= code size" - - - - VER_E_FIL_START - "Filter starts in the middle of an instruction." - - - - VER_E_FALLTHRU_EXCEP - "fallthru the end of an exception block" - - - - VER_E_FALLTHRU_INTO_HND - "fallthru into an exception handler" - - - - VER_E_FALLTHRU_INTO_FIL - "fallthru into an exception filter" - - - - VER_E_LEAVE - "Leave from outside a try or catch block." - - - - VER_E_RETHROW - "Rethrow from outside a catch handler." - - - - VER_E_ENDFINALLY - "Endfinally from outside a finally handler" - - - - VER_E_ENDFILTER - "Endfilter from outside an exception filter block" - - - - VER_E_ENDFILTER_MISSING - "Missing Endfilter." - - - - VER_E_BR_INTO_TRY - "Branch into try block." - - - - VER_E_BR_INTO_HND - "Branch into exception handler block." - - - - VER_E_BR_INTO_FIL - "Branch into exception filter block." - - - - VER_E_BR_OUTOF_TRY - "Branch out of try block." - - - - VER_E_BR_OUTOF_HND - "Branch out of exception handler block." - - - - VER_E_BR_OUTOF_FIL - "Branch out of exception filter block." - - - - VER_E_BR_OUTOF_FIN - "Branch out of finally block." - - - - VER_E_RET_FROM_TRY - "Return out of try block." - - - - VER_E_RET_FROM_HND - "Return out of exception handler block." - - - - VER_E_RET_FROM_FIL - "Return out of exception filter block." - - - - VER_E_BAD_JMP_TARGET - "jmp / exception into the middle of an instruction." - - - - VER_E_PATH_LOC - "Non-compatible types depending on path." - - - - VER_E_PATH_THIS - "Init state for this differs depending on path." - - - - VER_E_PATH_STACK - "Non-compatible types on stack depending on path." - - - - VER_E_PATH_STACK_DEPTH - "Stack depth differs depending on path." - - - - VER_E_THIS - "Instance variable (this) missing." - - - - VER_E_THIS_UNINIT_EXCEP - "Uninitialized this on entering a try block." - - - - VER_E_THIS_UNINIT_STORE - "Store into this when it is uninitialized." - - - - VER_E_THIS_UNINIT_RET - "Return from .ctor when this is uninitialized." - - - - VER_E_THIS_UNINIT_V_RET - "Return from .ctor before all fields are initialized." - - - - VER_E_THIS_UNINIT_BR - "Branch back when this is uninitialized." - - - - VER_E_LDFTN_CTOR - "ldftn and ldvirtftn not allowed on .ctor." - - - - VER_E_STACK_NOT_EQ - "Non-compatible types on the stack." - - - - VER_E_STACK_UNEXPECTED - "Unexpected type on the stack." - - - - VER_E_STACK_EXCEPTION - "Missing stack slot for exception." - - - - VER_E_STACK_OVERFLOW - "Stack overflow." - - - - VER_E_STACK_UNDERFLOW - "Stack underflow." - - - - VER_E_STACK_EMPTY - "Stack empty." - - - - VER_E_STACK_UNINIT - "Uninitialized item on stack." - - - - VER_E_STACK_I_I4_I8 - "Expected I, I4, or I8 on the stack." - - - - VER_E_STACK_R_R4_R8 - "Expected R, R4, or R8 on the stack." - - - - VER_E_STACK_NO_R_I8 - "unexpected R, R4, R8, or I8 on the stack." - - - - VER_E_STACK_NUMERIC - "Expected numeric type on the stack." - - - - VER_E_STACK_OBJREF - "Expected an ObjRef on the stack." - - - - VER_E_STACK_P_OBJREF - "Expected address of an ObjRef on the stack." - - - - VER_E_STACK_BYREF - "Expected ByRef on the stack." - - - - VER_E_STACK_METHOD - "Expected pointer to function on the stack." - - - - VER_E_STACK_ARRAY_SD - "Expected single dimension array on the stack." - - - - VER_E_STACK_VALCLASS - "Expected value type instance on the stack." - - - - VER_E_STACK_P_VALCLASS - "Expected address of value type on the stack." - - - - VER_E_STACK_NO_VALCLASS - "Unexpected value type instance on the stack." - - - - VER_E_LOC_DEAD - "Local variable is unusable at this point." - - - - VER_E_LOC_NUM - "Unrecognized local variable number." - - - - VER_E_ARG_NUM - "Unrecognized argument number." - - - - VER_E_TOKEN_RESOLVE - "Unable to resolve token." - - - - VER_E_TOKEN_TYPE - "Unable to resolve type of the token." - - - - VER_E_TOKEN_TYPE_MEMBER - "Expected memberRef, memberDef or methodSpec token." - - - - VER_E_TOKEN_TYPE_FIELD - "Expected memberRef or fieldDef token." - - - - VER_E_TOKEN_TYPE_SIG - "Expected signature token." - - - - VER_E_UNVERIFIABLE - "Instruction cannot be verified." - - - - VER_E_LDSTR_OPERAND - "Operand does not point to a valid string ref." - - - - VER_E_RET_PTR_TO_STACK - "Return type is ByRef, TypedReference, ArgHandle, or ArgIterator." - - - - VER_E_RET_VOID - "Stack must be empty on return from a void function." - - - - VER_E_RET_MISSING - "Return value missing on the stack." - - - - VER_E_RET_EMPTY - "Stack must contain only the return value." - - - - VER_E_RET_UNINIT - "Return uninitialized data." - - - - VER_E_ARRAY_ACCESS - "Illegal array access." - - - - VER_E_ARRAY_V_STORE - "Store non Object type into Object array." - - - - VER_E_ARRAY_SD - "Expected single dimension array." - - - - VER_E_ARRAY_SD_PTR - "Expected single dimension array of pointer types." - - - - VER_E_ARRAY_FIELD - "Array field access is denied." - - - - VER_E_ARGLIST - "Allowed only in vararg methods." - - - - VER_E_VALCLASS - "Value type expected." - - - - VER_E_METHOD_ACCESS - "Method is not visible." - - - - VER_E_FIELD_ACCESS - "Field is not visible." - - - - VER_E_DEAD - "Item is unusable at this point." - - - - VER_E_FIELD_STATIC - "Expected static field." - - - - VER_E_FIELD_NO_STATIC - "Expected non-static field." - - - - VER_E_ADDR - "Address of not allowed for this item." - - - - VER_E_ADDR_BYREF - "Address of not allowed for ByRef." - - - - VER_E_ADDR_LITERAL - "Address of not allowed for literal field." - - - - VER_E_INITONLY - "Cannot change initonly field outside its .ctor." - - - - VER_E_THROW - "Cannot throw this object." - - - - VER_E_CALLVIRT_VALCLASS - "Callvirt on a value type method." - - - - VER_E_CALL_SIG - "Call signature mismatch." - - - - VER_E_CALL_STATIC - "Static function expected." - - - - VER_E_CTOR - ".ctor expected." - - - - VER_E_CTOR_VIRT - "Cannot use callvirt on .ctor." - - - - VER_E_CTOR_OR_SUPER - "Only super::ctor or typeof(this)::ctor allowed here." - - - - VER_E_CTOR_MUL_INIT - "Possible call to .ctor more than once." - - - - VER_E_SIG - "Unrecognized signature." - - - - VER_E_SIG_ARRAY - "Cannot resolve Array type." - - - - VER_E_SIG_ARRAY_PTR - "Array of ELEMENT_TYPE_PTR." - - - - VER_E_SIG_ARRAY_BYREF - "Array of ELEMENT_TYPE_BYREF or ELEMENT_TYPE_TYPEDBYREF." - - - - VER_E_SIG_ELEM_PTR - "ELEMENT_TYPE_PTR cannot be verified." - - - - VER_E_SIG_VARARG - "Unexpected vararg." - - - - VER_E_SIG_VOID - "Unexpected Void." - - - - VER_E_SIG_BYREF_BYREF - "ByRef of ByRef" - - - - VER_E_CODE_SIZE_ZERO - "Code size is zero." - - - - VER_E_BAD_VARARG - "Unrecognized use of vararg." - - - - VER_E_TAIL_CALL - "Missing call, callvirt or calli." - - - - VER_E_TAIL_BYREF - "Cannot pass ByRef to a tail call." + + CORDBG_E_CLASS_NOT_LOADED + "A class is not loaded." + A class is not loaded. - - VER_E_TAIL_RET - "Missing ret." + + CORDBG_E_IL_VAR_NOT_AVAILABLE + "An IL variable is not available at the current native IP." + An IL variable is not available at the - - VER_E_TAIL_RET_VOID - "Void ret type expected for tail call." + + CORDBG_E_BAD_REFERENCE_VALUE + "A reference value was found to be bad during dereferencing." + A reference value was found to be bad - - VER_E_TAIL_RET_TYPE - "Tail call return type not compatible." + + CORDBG_E_FIELD_NOT_AVAILABLE + "A field in a class is not available, because the runtime optimized it away." + A field in a class is not available, - - VER_E_TAIL_STACK_EMPTY - "Stack not empty after tail call." + + CORDBG_E_NON_NATIVE_FRAME + "'Native-frame-only' operation on non-native frame." + "Native frame only" operation on - - VER_E_METHOD_END - "Method ends in the middle of an instruction." + + CORDBG_E_CODE_NOT_AVAILABLE + "The code is currently unavailable." + The code is currently unavailable - - VER_E_BAD_BRANCH - "Branch out of the method." + + CORDBG_E_FUNCTION_NOT_IL + "Attempt to get a ICorDebugFunction for a function that is not IL." + Attempt to get a ICorDebugFunction for - - VER_E_FIN_OVERLAP - "Finally handler blocks overlap." + + CORDBG_E_CANT_SET_IP_INTO_FINALLY + "SetIP is not possible because SetIP would move EIP from outside of an exception handling finally clause to a point inside of one." + SetIP isn't possible, because SetIP would - - VER_E_LEXICAL_NESTING - "Lexical nesting." + + CORDBG_E_CANT_SET_IP_OUT_OF_FINALLY + "SetIP is not possible because it would move EIP from within an exception handling finally clause to a point outside of one." + SetIP isn't possible because it would move - - VER_E_VOLATILE - "Missing ldsfld, stsfld, ldind, stind, ldfld, stfld, ldobj, stobj, initblk or cpblk." + + CORDBG_E_CANT_SET_IP_INTO_CATCH + "SetIP is not possible, because SetIP would move EIP from outside of an exception handling catch clause to a point inside of one." + SetIP isn't possible, because SetIP would - - VER_E_UNALIGNED - "Missing ldind, stind, ldfld, stfld, ldobj, stobj, initblk or cpblk." + + CORDBG_E_SET_IP_NOT_ALLOWED_ON_NONLEAF_FRAME + "SetIP cannot be done on any frame except the leaf frame." + Setip cannot be done on any frame except - - VER_E_INNERMOST_FIRST - "Innermost exception blocks should be declared first." + + CORDBG_E_SET_IP_IMPOSSIBLE + "SetIP is not allowed." + SetIP isn't allowed. For example, there is - - VER_E_CALLI_VIRTUAL - "Calli not allowed on virtual methods." + + CORDBG_E_FUNC_EVAL_BAD_START_POINT + "Func eval cannot work. Bad starting point." + Func eval can't work if we're, for example, - - VER_E_CALL_ABSTRACT - "Call not allowed on abstract methods." + + CORDBG_E_INVALID_OBJECT + "This object value is no longer valid." + This object value is no longer valid. - - VER_E_STACK_UNEXP_ARRAY - "Unexpected array type on the stack." + + CORDBG_E_FUNC_EVAL_NOT_COMPLETE + "CordbEval::GetResult called before func eval has finished." + If you call CordbEval::GetResult before the - - VER_E_NOT_IN_GC_HEAP - "Value type with NotInGCHeap attribute being created on the GC heap." + + CORDBG_E_STATIC_VAR_NOT_AVAILABLE + "A static variable is not available because it has not been initialized yet." + A static variable isn't available because - - VER_E_TRY_N_EMPTY_STACK - "Attempt to enter a try block with nonempty stack." + + CORDBG_E_CANT_SETIP_INTO_OR_OUT_OF_FILTER + "SetIP cannot leave or enter a filter." + SetIP can't leave or enter a filter - - VER_E_DLGT_CTOR - "Unrecognized arguments for delegate .ctor." + + CORDBG_E_CANT_CHANGE_JIT_SETTING_FOR_ZAP_MODULE + "JIT settings for ZAP modules cannot be changed." + You can't change JIT settings for ZAP - - VER_E_DLGT_BB - "Delegate .ctor not allowed at the start of a basic block when the function pointer argument is a virtual method." + + CORDBG_E_CANT_SET_IP_OUT_OF_FINALLY_ON_WIN64 + "SetIP is not possible because it would move EIP from within a finally clause to a point outside of one on WIN64 platforms." + SetIP isn't possible because it would move - - VER_E_DLGT_PATTERN - "Dup, ldvirtftn, newobj delegate::.ctor() pattern expected (in the same basic block)." + + CORDBG_E_CANT_SET_IP_OUT_OF_CATCH_ON_WIN64 + "SetIP is not possible because it would move EIP from within a catch clause to a point outside of one on WIN64 platforms." + SetIP isn't possible because it would move - - VER_E_DLGT_LDFTN - "Ldftn or ldvirtftn instruction required before call to a delegate .ctor." + + CORDBG_E_CANT_SET_TO_JMC + "Cannot use JMC on this code (likely wrong JIT settings)." + Can't use JMC on this code (likely wrong jit settings). - - VER_E_FTN_ABSTRACT - "Attempt to load address of an abstract method." + + CORDBG_E_NO_CONTEXT_FOR_INTERNAL_FRAME + "Internal frame markers have no associated context." + Internal frame markers have no associated context. - - VER_E_SIG_C_VC - "ELEMENT_TYPE_CLASS ValueClass in signature." + + CORDBG_E_NOT_CHILD_FRAME + "The current frame is not a child frame." + The current frame is not a child frame. - - VER_E_SIG_VC_C - "ELEMENT_TYPE_VALUETYPE non-ValueClass in signature." + + CORDBG_E_NON_MATCHING_CONTEXT + "The provided CONTEXT does not match the specified thread." + The provided CONTEXT does not match the specified thread. + The stack pointer in the provided CONTEXT must match the cached stack base and stack limit of the thread. + - - - VER_E_BOX_PTR_TO_STACK - "Box operation on TypedReference, ArgHandle, or ArgIterator." + + + CORDBG_E_PAST_END_OF_STACK + "The stackwalker is now past the end of stack. No information is available." + The stackwalker is now past the end of stack. No information is available. - - VER_E_SIG_BYREF_TB_AH - "ByRef of TypedReference, ArgHandle, or ArgIterator." + + CORDBG_E_FUNC_EVAL_CANNOT_UPDATE_REGISTER_IN_NONLEAF_FRAME + "Func eval cannot update a variable stored in a register on a non-leaf frame. The most likely cause is that such a variable is passed as a ref/out argument." + Func eval cannot update a variable stored in a register on a non-leaf frame. The most likely cause is that such a variable is passed as a ref/out argument. - - VER_E_SIG_ARRAY_TB_AH - "Array of TypedReference, ArgHandle, or ArgIterator." + + CORDBG_E_BAD_THREAD_STATE + "The state of the thread is invalid." + The state of the thread is invalid. - - VER_E_ENDFILTER_STACK - "Stack not empty when leaving an exception filter." + + CORDBG_E_DEBUGGER_ALREADY_ATTACHED + "This process has already been attached." + This process has already been attached to - - VER_E_DLGT_SIG_I - "Unrecognized delegate .ctor signature; expected I." + + CORDBG_E_SUPERFLOUS_CONTINUE + "Returned from a call to Continue that was not matched with a stopping event." + Returned from a call to Continue that was - - VER_E_DLGT_SIG_O - "Unrecognized delegate .ctor signature; expected Object." + + CORDBG_E_SET_VALUE_NOT_ALLOWED_ON_NONLEAF_FRAME + "Cannot perfrom SetValue on non-leaf frames." + Can't perfrom SetValue on non-leaf frames. - - VER_E_RA_PTR_TO_STACK - "Mkrefany on TypedReference, ArgHandle, or ArgIterator." + + CORDBG_E_ENC_MODULE_NOT_ENC_ENABLED + "Tried to do Edit and Continue on a module that was not started in Edit and Continue mode." + Tried to do EnC on a module that wasn't - - VER_E_CATCH_VALUE_TYPE - "Value type not allowed as catch type." + + CORDBG_E_SET_IP_NOT_ALLOWED_ON_EXCEPTION + "SetIP cannot be done on any exception." + Setip cannot be done on any exception - - VER_E_CATCH_BYREF - "ByRef not allowed as catch type." + + CORDBG_E_VARIABLE_IS_ACTUALLY_LITERAL + "The 'variable' does not exist because it is a literal optimized away by the compiler." + The 'variable' doesn't exist because it is a - - VER_E_FIL_PRECEED_HND - "filter block should immediately precede handler block" + + CORDBG_E_PROCESS_DETACHED + "Process has been detached." + Process has been detached from - - VER_E_LDVIRTFTN_STATIC - "ldvirtftn on static" + + CORDBG_E_ENC_CANT_ADD_FIELD_TO_VALUE_OR_LAYOUT_CLASS + "Adding a field to a value or layout class is prohibited." + Adding a field to a value or layout class is prohibitted, - - VER_E_CALLVIRT_STATIC - "callvirt on static" + + CORDBG_E_FIELD_NOT_STATIC + "GetStaticFieldValue called on a non-static field." + Returned if someone tries to call GetStaticFieldValue - - VER_E_INITLOCALS - "initlocals must be set for verifiable methods with one or more local variables." + + CORDBG_E_FIELD_NOT_INSTANCE + "Returned if someone tries to call GetStaticFieldValue on a non-instance field." + Returned if someone tries to call GetStaticFieldValue - - VER_E_BR_TO_EXCEPTION - "branch or leave to the beginning of a catch/filter handler" + + CORDBG_E_ENC_JIT_CANT_UPDATE + "The JIT is unable to update the method." + The JIT is unable to update the method. - - VER_E_CALL_CTOR - "Call to .ctor only allowed to initialize this pointer from within a .ctor. Try newobj." + + CORDBG_E_ENC_INTERNAL_ERROR + "Internal Runtime Error while doing Edit-and-Continue." + Generic message for "Something user doesn't control went wrong" message. - - VER_E_VALCLASS_OBJREF_VAR - "Value type, ObjRef type or variable type expected." + + CORDBG_E_ENC_HANGING_FIELD + "The field was added via Edit and Continue after the class was loaded." + The field was added via EnC after the class was loaded, and so instead of the the field being contiguous with the other fields, it's 'hanging' off the instance or type. This error is used to indicate that either the storage for this field is not yet available and so the field value cannot be read, or the debugger needs to use an EnC specific code path to get the value. - - VER_E_STACK_P_VALCLASS_OBJREF_VAR - "Expected address of value type, ObjRef type or variable type on the stack." + + CORDBG_E_MODULE_NOT_LOADED + "Module not loaded." + If the module isn't loaded, including if it's been unloaded. - - VER_E_SIG_VAR_PARAM - "Unrecognized type parameter of enclosing class." + + CORDBG_E_UNABLE_TO_SET_BREAKPOINT + "Cannot set a breakpoint here." + Can't set a breakpoint here. - - VER_E_SIG_MVAR_PARAM - "Unrecognized type parameter of enclosing method." + + CORDBG_E_DEBUGGING_NOT_POSSIBLE + "Debugging is not possible due to an incompatibility within the CLR implementation." + Debugging isn't possible due to an incompatibility within the CLR implementation. - - VER_E_SIG_VAR_ARG - "Unrecognized type argument of referenced class instantiation." + + CORDBG_E_KERNEL_DEBUGGER_ENABLED + "A kernel debugger is enabled on the system. User-mode debugging will trap to the kernel debugger." + Debugging isn't possible because a kernel debugger is enabled on the system. - - VER_E_SIG_MVAR_ARG - "Unrecognized type argument of referenced method instantiation." + + CORDBG_E_KERNEL_DEBUGGER_PRESENT + "A kernel debugger is present on the system. User-mode debugging will trap to the kernel debugger." + Debugging isn't possible because a kernel debugger is present on the system. - - VER_E_SIG_GENERICINST - "Cannot resolve generic type." + + CORDBG_E_INCOMPATIBLE_PROTOCOL + "The debugger's protocol is incompatible with the debuggee." + The debugger's protocol is incompatible with the debuggee. - - VER_E_SIG_METHOD_INST - "Method instantiation contains non boxable type arguments." + + CORDBG_E_TOO_MANY_PROCESSES + "The debugger can only handle a finite number of debuggees." + The debugger can only handle a finite number of debuggees. - - - VER_E_SIG_METHOD_PARENT_INST - "Method parent instantiation contains non boxable type arguments." + + + CORDBG_E_INTEROP_NOT_SUPPORTED + "Interop debugging is not supported." + Interop debugging is not supported - - VER_E_SIG_FIELD_PARENT_INST - "Field parent instantiation contains non boxable type arguments." + + CORDBG_E_NO_REMAP_BREAKPIONT + "Cannot call RemapFunction until have received RemapBreakpoint." + Cannot call RemapFunction until have received RemapBreakpoint - - VER_E_CALLCONV_NOT_GENERICINST - "Unrecognized calling convention for an instantiated generic method." + + CORDBG_E_OBJECT_NEUTERED + "Object is in a zombie state." + Object has been neutered (it's in a zombie state). - - VER_E_TOKEN_BAD_METHOD_SPEC - "Unrecognized generic method in method instantiation." + + CORPROF_E_FUNCTION_NOT_COMPILED + "Function not yet compiled." + Function not yet compiled. - - VER_E_BAD_READONLY_PREFIX - "Missing ldelema or call following readonly. prefix." + + CORPROF_E_DATAINCOMPLETE + "The ID is not fully loaded/defined yet." + The ID is not fully loaded/defined yet. - - VER_E_BAD_CONSTRAINED_PREFIX - "Missing callvirt following constrained. prefix." + + CORPROF_E_FUNCTION_NOT_IL + "The Method has no associated IL." + The Method has no associated IL - - VER_E_CIRCULAR_VAR_CONSTRAINTS - "Method parent has circular class type parameter constraints." + + CORPROF_E_NOT_MANAGED_THREAD + "The thread has never run managed code before." + The thread has never run managed code before - - VER_E_CIRCULAR_MVAR_CONSTRAINTS - "Method has circular method type parameter constraints." + + CORPROF_E_CALL_ONLY_FROM_INIT + "The function may only be called during profiler initialization." + The function may only be called during profiler init - - VER_E_UNSATISFIED_METHOD_INST - "Method instantiation has unsatisfied method type parameter constraints." - - - VER_E_UNSATISFIED_METHOD_PARENT_INST - "Method parent instantiation has unsatisfied class type parameter constraints." + + CORPROF_E_NOT_YET_AVAILABLE + "Requested information is not yet available." + This is a general error used to indicated that the information - - VER_E_UNSATISFIED_FIELD_PARENT_INST - "Field parent instantiation has unsatisfied class type parameter constraints." + + CORPROF_E_TYPE_IS_PARAMETERIZED + "The given type is a generic and cannot be used with this method." + The given type is a generic and cannot be used with this method. - - VER_E_UNSATISFIED_BOX_OPERAND - "Type operand of box instruction has unsatisfied class type parameter constraints." + + CORPROF_E_FUNCTION_IS_PARAMETERIZED + "The given function is a generic and cannot be used with this method." + The given function is a generic and cannot be used with this method. - - VER_E_CONSTRAINED_CALL_WITH_NON_BYREF_THIS - "The 'this' argument to a constrained call must have ByRef type." + + CORPROF_E_STACKSNAPSHOT_INVALID_TGT_THREAD + A profiler tried to walk the stack of an invalid thread - - VER_E_CONSTRAINED_OF_NON_VARIABLE_TYPE - "The operand to a constrained prefix instruction must be a type parameter." + + CORPROF_E_STACKSNAPSHOT_UNMANAGED_CTX + A profiler can not walk a thread that is currently executing unmanaged code - - VER_E_READONLY_UNEXPECTED_CALLEE - "The readonly prefix may only be applied to calls to array methods returning ByRefs." + + CORPROF_E_STACKSNAPSHOT_UNSAFE + A stackwalk at this point may cause dead locks or data corruption - - VER_E_READONLY_ILLEGAL_WRITE - "Illegal write to readonly ByRef." + + CORPROF_E_STACKSNAPSHOT_ABORTED + Stackwalking callback requested the walk to abort - - VER_E_READONLY_IN_MKREFANY - "A readonly ByRef cannot be used with mkrefany." + + CORPROF_E_LITERALS_HAVE_NO_ADDRESS + Returned when asked for the address of a static that is a literal. - - VER_E_UNALIGNED_ALIGNMENT - "Alignment specified for 'unaligned' prefix must be 1, 2, or 4." + + CORPROF_E_UNSUPPORTED_CALL_SEQUENCE + A call was made at an unsupported time. Examples include illegally calling a profiling API method asynchronously, calling a method that might trigger a GC at an unsafe time, and calling a method at a time that could cause locks to be taken out of order. - - VER_E_TAILCALL_INSIDE_EH - "The tail.call (or calli or callvirt) instruction cannot be used to transfer control out of a try, filter, catch, or finally block." + + CORPROF_E_ASYNCHRONOUS_UNSAFE + A legal asynchronous call was made at an unsafe time (e.g., CLR locks are held) - - VER_E_BACKWARD_BRANCH - "Stack height at all points must be determinable in a single forward scan of IL." + + CORPROF_E_CLASSID_IS_ARRAY + The specified ClassID cannot be inspected by this function because it is an array - - VER_E_CALL_TO_VTYPE_BASE - "Call to base type of valuetype." + + CORPROF_E_CLASSID_IS_COMPOSITE + The specified ClassID is a non-array composite type (e.g., ref) and cannot be inspected - - VER_E_NEWOBJ_OF_ABSTRACT_CLASS - "Cannot construct an instance of abstract class." + + CORPROF_E_PROFILER_DETACHING + The profiler's call into the CLR is disallowed because the profiler is attempting to detach. - - VER_E_UNMANAGED_POINTER - "Unmanaged pointers are not a verifiable type." + + CORPROF_E_PROFILER_NOT_ATTACHABLE + The profiler does not support attaching to a live process. - - VER_E_LDFTN_NON_FINAL_VIRTUAL - "Cannot LDFTN a non-final virtual method." + + CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT + The message sent on the profiling API attach pipe is in an unrecognized format. - - VER_E_FIELD_OVERLAP - "Accessing type with overlapping fields." + + CORPROF_E_PROFILER_ALREADY_ACTIVE + The request to attach a profiler was denied because a profiler is already loaded. - - VER_E_THIS_MISMATCH - "The 'this' parameter to the call must be the calling method's 'this' parameter." + + CORPROF_E_PROFILEE_INCOMPATIBLE_WITH_TRIGGER + Unable to request a profiler attach because the target profilee's runtime is of a version incompatible with the current process calling AttachProfiler(). - - VER_E_STACK_I_I4 - "Expected I4 on the stack." + + CORPROF_E_IPC_FAILED + AttachProfiler() encountered an error while communicating on the pipe to the target profilee. This is often caused by a target profilee that is shutting down or killed while AttachProfiler() is reading or writing the pipe. - - VER_E_BAD_PE - "Unverifiable PE Header/native stub." + + CORPROF_E_PROFILEE_PROCESS_NOT_FOUND + AttachProfiler() was unable to find a profilee with the specified process ID. - - VER_E_BAD_MD - "Unrecognized metadata, unable to verify IL." + + CORPROF_E_CALLBACK3_REQUIRED + Profiler must implement ICorProfilerCallback3 interface for this call to be supported. - - VER_E_BAD_APPDOMAIN - "Unrecognized appdomain pointer." + + CORPROF_E_UNSUPPORTED_FOR_ATTACHING_PROFILER + This call was attempted by a profiler that attached to the process after startup, but this call is only supported by profilers that are loaded into the process on startup. - - - VER_E_TYPELOAD - "Type load failed." + + + CORPROF_E_IRREVERSIBLE_INSTRUMENTATION_PRESENT + Detach is impossible because the profiler has either instrumented IL or inserted enter/leave hooks. Detach was not attempted; the profiler is still fully attached. - - VER_E_PE_LOAD - "Module load failed." + + CORPROF_E_RUNTIME_UNINITIALIZED + The profiler called a function that cannot complete because the CLR is not yet fully initialized. The profiler may try again once the CLR has fully started. - - VER_E_WRITE_RVA_STATIC - "Cannot modify an imaged based (RVA) static" + + CORPROF_E_IMMUTABLE_FLAGS_SET + Detach is impossible because immutable flags were set by the profiler at startup. Detach was not attempted; the profiler is still fully attached. - - VER_E_INITIALIZE_ARRAY_MISSING_TOKEN - "Ldtoken instruction required before call to System.Runtime.CompilerServices.InitializeArray." + + CORPROF_E_PROFILER_NOT_YET_INITIALIZED + The profiler called a function that cannot complete because the profiler is not yet fully initialized. - - COR_E_SqlException - System.Data.SqlClient.SqlClientException + + CORPROF_E_INCONSISTENT_WITH_FLAGS + The profiler called a function that first requires additional flags to be set in the event mask. This HRESULT may also indicate that the profiler called a function that first requires that some of the flags currently set in the event mask be reset. - - COR_E_Data + + CORPROF_E_PROFILER_CANCEL_ACTIVATION + The profiler has requested that the CLR instance not load the profiler into this process. - - COR_E_DataDeletedRowInaccessible + + CORPROF_E_CONCURRENT_GC_NOT_PROFILABLE + Concurrent GC mode is enabled, which prevents use of COR_PRF_MONITOR_GC - - COR_E_DataDuplicateName + + CORPROF_E_DEBUGGING_DISABLED + This functionality requires CoreCLR debugging to be enabled. - - COR_E_DataInRowChangingEvent + + CORPROF_E_TIMEOUT_WAITING_FOR_CONCURRENT_GC + Timed out on waiting for concurrent GC to finish during attach. - - COR_E_DataInvalidConstraint + + CORPROF_E_MODULE_IS_DYNAMIC + The specified module was dynamically generated (e.g., via Reflection.Emit API), and is thus not supported by this API method. - - COR_E_DataMissingPrimaryKey + + CORPROF_E_CALLBACK4_REQUIRED + Profiler must implement ICorProfilerCallback4 interface for this call to be supported. - - COR_E_DataNoNullAllowed + + CORPROF_E_REJIT_NOT_ENABLED + This call is not supported unless ReJIT is first enabled during initialization by setting COR_PRF_ENABLE_REJIT via SetEventMask. - - COR_E_DataReadOnly + + CORPROF_E_FUNCTION_IS_COLLECTIBLE + The specified function is instantiated into a collectible assembly, and is thus not supported by this API method. - - COR_E_DataRowNotInTable + + CORPROF_E_CALLBACK6_REQUIRED + Profiler must implement ICorProfilerCallback6 interface for this call to be supported. - - - COR_E_DataVersionNotFound + + + + + CORPROF_E_CALLBACK7_REQUIRED + Profiler must implement ICorProfilerCallback7 interface for this call to be supported. - - COR_E_StrongTyping + + CORPROF_E_REJIT_INLINING_DISABLED + The runtime's tracking of inlined methods for ReJIT is not enabled. - - COR_E_SqlType + + CORDIAGIPC_E_BAD_ENCODING + The runtime was unable to decode the Header or Payload. - - COR_E_SqlNullValue + + CORDIAGIPC_E_UNKNOWN_COMMAND + The specified CommandSet or CommandId is unknown. - - COR_E_SqlTruncate + + CORDIAGIPC_E_UNKNOWN_MAGIC + The magic version of Diagnostics IPC is unknown. - - COR_E_AdapterMapping + + CORDIAGIPC_E_UNKNOWN_ERROR + An unknown error occurred in the Diagnpostics IPC Server. - - COR_E_DataAdapter + + CORPROF_E_SUSPENSION_IN_PROGRESS + The runtime cannot be suspened since a suspension is already in progress. - - COR_E_DBConcurrency + + SECURITY_E_INCOMPATIBLE_SHARE + "Loading this assembly would produce a different grant set from other instances." + Loading this assembly would produce a different grant set from other instances - - COR_E_OperationAborted + + SECURITY_E_UNVERIFIABLE + "Unverifiable code failed policy check." + Unverifable code failed policy check - - COR_E_InvalidUdt + + SECURITY_E_INCOMPATIBLE_EVIDENCE + "Assembly already loaded without additional security evidence." + Assembly already loaded without additional security evidence. - - COR_E_OdbcException - System.Data.Odbc.OdbcException + + CORSEC_E_POLICY_EXCEPTION + "PolicyException thrown." + PolicyException thrown - - COR_E_OracleException - System.Data.OracleClient.OracleException + + CORSEC_E_MIN_GRANT_FAIL + "Failed to grant minimum permission requests." + Failed to grant minimum permission requests - - COR_E_Xml + + CORSEC_E_NO_EXEC_PERM + "Failed to grant permission to execute." + Failed to grant permission to execute - - COR_E_XmlSchema + + CORSEC_E_XMLSYNTAX + "XML Syntax error." + XML Syntax error - - COR_E_XmlXslt + + CORSEC_E_INVALID_STRONGNAME + "Strong name validation failed." + Strong name validation failed - - COR_E_XmlXPath + + CORSEC_E_MISSING_STRONGNAME + "Assembly is not strong named." + Assembly is not strong named - - COR_E_XmlQuery + + CORSEC_E_INVALID_IMAGE_FORMAT + "Invalid assembly file format." + Invalid assembly file format - - VLDTR_E_IFACE_NOTIFACE - "Interface in InterfaceImpl is not marked tdInterface." - Interface in InterfaceImpl is not marked tdInterface + + CORSEC_E_INVALID_PUBLICKEY + "Invalid assembly public key." + Invalid assembly public key - - VLDTR_E_FD_RVAHASNORVA - "Field marked fdHasFieldRVA but has no RVA record." - Field marked fdHasFieldRVA but has no RVA rec + + CORSEC_E_SIGNATURE_MISMATCH + "Signature size mismatch." + Signature size mismatch - - VLDTR_E_FD_RVAHASZERORVA - "Field marked fdHasFieldRVA has RVA set to zero." - Field marked fdHasFieldRVA has RVA =0 + + CORSEC_E_CRYPTO + "Failure during Cryptographic operation." + generic CryptographicException - - VLDTR_E_MD_RVAANDIMPLMAP - "Method has both non-zero RVA and ImplMap." - Method has both RVA !=0 and ImplMap + + CORSEC_E_CRYPTO_UNEX_OPER + "Unexpected Cryptographic operation." + generic CryptographicUnexpectedOperationException - - VLDTR_E_TD_EXTRAFLAGS - "TypeDef has extraneous bits in flags." - TypeDef has extraneous bits in flags + + CORSECATTR_E_BAD_ACTION + "Invalid security action code." + Invalid security action code - - VLDTR_E_TD_EXTENDSITSELF - "TypeDef extends itself." - TypeDef extends itself + + COR_E_EXCEPTION + "General Exception" + Base class for all exceptions in the runtime - - VLDTR_E_TD_SYSVTNOTEXTOBJ - "System.ValueType does not extend System.Object." - System.ValueType does not extend System.Object + + COR_E_SYSTEM + "System.Exception" + The base class for the runtime's "less serious" exceptions - - VLDTR_E_TD_EXTTYPESPEC - "Class extends TypeSpec (warning)." - Class extends TypeSpec (warning) + + COR_E_ARGUMENTOUTOFRANGE + "An argument was out of its legal range." + An argument was out of its legal range. - - VLDTR_E_TD_VTNOSIZE - "Value Class has zero size." - Value Class has zero size + + COR_E_ARRAYTYPEMISMATCH + "Attempted to store an object of the wrong type in an array." + Attempted to store an object of the wrong type in an array - - VLDTR_E_TD_IFACESEALED - "Interface is sealed." - Interface is sealed + + COR_E_CONTEXTMARSHAL + "Attempted to marshal an object across a context boundary." + - - VLDTR_E_NC_BADNESTED - "Bad 'nested' token in NestedClass." - Bad "nested" token in NestedClass + + COR_E_TIMEOUT + "Operation timed out." + - - VLDTR_E_NC_BADENCLOSER - "Bad 'enclosing' token in NestedClass." - Bad "enclosing" token in NestedClass + + COR_E_EXECUTIONENGINE + "Internal CLR error." + An internal error happened in the Common Language Runtime's Execution Engine - - VLDTR_E_NC_DUP - "Duplicate NestedClass record." - Duplicate NestedClass record + + COR_E_FIELDACCESS + "Access to this field is denied." + Access to this field is denied. - - VLDTR_E_NC_DUPENCLOSER - "Duplicate NestedClass with different encloser." - Duplicate NestedClass with different encloser + + COR_E_INDEXOUTOFRANGE + "Array subscript out of range." + Attempted to access an element within an array by using an index that is - - VLDTR_E_FRVA_ZERORVA - "RVA set to zero in FieldRVA record." - RVA=0 in FieldRVA record + + COR_E_INVALIDOPERATION + "An operation is not legal in the current state." + An operation is not legal in the current state. - - VLDTR_E_FRVA_BADFIELD - "Invalid field token in FieldRVA record." - Invalid field token in FieldRVA record + + COR_E_SECURITY + "An error relating to security occurred." + An error relating to security occurred. - - VLDTR_E_FRVA_DUPRVA - "Duplicate RVA in FieldRVA record." - Duplicate RVA in FieldRVA record - - - VLDTR_E_FRVA_DUPFIELD - "Duplicate field in FieldRVA record." - Duplicate field in FieldRVA record + + COR_E_SERIALIZATION + "An error relating to serialization occurred." + An error relating to serialization has occurred. - - VLDTR_E_EP_BADTOKEN - "Bad token as entry point in CLR header." - Bad token as entry point in CLR header + + COR_E_VERIFICATION + "A verification failure has occurred." + A verification failure occurred - - VLDTR_E_EP_INSTANCE - "Entry point in CLR header is a token of instance method." - Entry point in CLR header is a token of instance method + + COR_E_METHODACCESS + "Access to this method is denied." + Access to this method is denied. - - VLDTR_E_TD_ENUMFLDBADTYPE - "Enum has non-integral underlying type." - Enum has non-integral underlying type + + COR_E_MISSINGFIELD + "Field does not exist." + An attempt was made to dynamically access a field that does not exist. - - VLDTR_E_MD_BADRVA - "Method has bogus RVA." - Method has bogus RVA + + COR_E_MISSINGMEMBER + "Member does not exist." + An attempt was made to dynamically invoke or access a field or method - - VLDTR_E_FD_LITERALNODEFAULT - "Literal field has no const value." - Literal field has no const value + + COR_E_MISSINGMETHOD + "Method does not exist." + An attempt was made to dynamically invoke a method that does not exist - - VLDTR_E_IFACE_METHNOTIMPL - "Class implementing an interface does not implement one of methods." - Class implementing an interface doesn't impl.one of methods + + COR_E_MULTICASTNOTSUPPORTED + "Attempt to combine delegates that are not multicast." + Attempted to combine delegates that are not multicast - - VLDTR_E_CA_BADPARENT - "CA has invalid owner." - CA has invalid owner + + COR_E_NOTSUPPORTED + "Operation is not supported." + The operation is not supported - - VLDTR_E_CA_BADTYPE - "CA has invalid type." - CA has invalid type + + COR_E_OVERFLOW + "Arithmetic, casting or conversion operation overflowed or underflowed." + An arithmetic, casting, or conversion operation overflowed or underflowed. - - VLDTR_E_CA_NOTCTOR - "CA type is not .ctor." - CA type is not .ctor + + COR_E_RANK + "An array has the wrong number of dimensions for a particular operation." + An array has the wrong number of dimensions for a particular operation. - - VLDTR_E_CA_BADSIG - "CA type has bad signature." - CA type has bad signature + + COR_E_SYNCHRONIZATIONLOCK + "This operation must be called from a synchronized block." + Wait(), Notify() or NotifyAll() was called from an unsynchronized ** block of c - - VLDTR_E_CA_NOSIG - "CA type has no signature." - CA type has no signature + + COR_E_THREADINTERRUPTED + "Thread was interrupted from a waiting state." + Indicates that the thread was interrupted from a waiting state - - VLDTR_E_CA_BADPROLOG - "CA blob has bad prolog (not 0x01 0x00)." - CA blob has bad prolog (not 0x01 0x00) + + COR_E_MEMBERACCESS + "Access to this member is denied." + Access to this member is denied. - - VLDTR_E_MD_BADLOCALSIGTOK - "Method has invalid LocalSig token." - Method has invalid LocalSig token + + COR_E_THREADSTATE + "Thread is in an invalid state for this operation." + Indicate that the Thread class is in an invalid state for the method call - - VLDTR_E_MD_BADHEADER - "Method has invalid header." - Method has invalid header + + COR_E_THREADSTOP + "Thread is stopping." + Thrown into a thread to cause it to stop. This exception is typically not caught - - VLDTR_E_EP_TOOMANYARGS - "Entry point has more than one argument." - Entry point has more than one arg + + COR_E_TYPELOAD + "Could not find or load a type." + Could not find or load a specific type (class, enum, etc). - - VLDTR_E_EP_BADRET - "Entry point has bad return type." - Entry point has bad return type + + COR_E_ENTRYPOINTNOTFOUND + "Could not find the specified DllImport entrypoint." + Could not find the specified DllImport entry point - - VLDTR_E_EP_BADARG - "Entry point has bad argument." - Entry point has bad argument + + COR_E_DLLNOTFOUND + "Could not find the specified DllImport Dll." + Could not find the specified DllImport DLL. - - VLDTR_E_SIG_BADVOID - "Illegal 'void' in signature." - Illegal "void" in signature + + COR_E_THREADSTART + Indicate that a user thread fails to start. - - VLDTR_E_IFACE_METHMULTIMPL - "Multiple implementation of method." - Multiple implementation of method + + COR_E_INVALIDCOMOBJECT + "An invalid __ComObject has been used." + An invalid __ComObject has been used. - - VLDTR_E_GP_NAMENULL - "GenericParam name is NULL." - GenericParam name is NULL + + COR_E_NOTFINITENUMBER + "Not a Number." + Thrown if value (a floating point number) is either the not a number value (NaN) or +- infinity value - - VLDTR_E_GP_OWNERNIL - "GenericParam has nil owner." - GenericParam has nil owner. + + COR_E_DUPLICATEWAITOBJECT + "An object appears more than once in the wait objects array." + An object appears more than once in the wait objects array. - - VLDTR_E_GP_DUPNAME - "GenericParam has duplicate by owner and name." - GenericParam has duplicate by owner and name. + + COR_E_SEMAPHOREFULL + "Reached maximum count for semaphore." + Adding the given count to the semaphore would cause it to exceed its maximum count. - - VLDTR_E_GP_DUPNUMBER - "GenericParam has duplicate by owner and number." - GenericParam has duplicate by owner and number. + + COR_E_WAITHANDLECANNOTBEOPENED + "No semaphore of the given name exists." + No Semaphore of the given name exists. - - VLDTR_E_GP_NONSEQ_BY_OWNER - "GenericParam is non sequential by owner." - GenericParam is non sequential by owner + + COR_E_ABANDONEDMUTEX + "The wait completed due to an abandoned mutex." + The wait completed due to an abandoned mutex. - - VLDTR_E_GP_NONSEQ_BY_NUMBER - "GenericParam is non sequential by number." - GenericParam is non sequential by number + + COR_E_THREADABORTED + "Thread has aborted." + Thrown into a thread to cause it to abort. Not catchable. - - VLDTR_E_GP_UNEXPECTED_OWNER_FOR_VARIANT_VAR - "GenericParam has variance but its owner is not an interface or delegate." - GenericParam has variance but its owner is not an interface or delegate + + COR_E_INVALIDOLEVARIANTTYPE + "OLE Variant has an invalid type." + The type of an OLE variant that was passed into the runtime is invalid. - - VLDTR_E_GP_ILLEGAL_VARIANT_MVAR - "GenericParam is a method type parameter and must be non-variant." - GenericParam is a method type parameter and must be non-variant + + COR_E_MISSINGMANIFESTRESOURCE + "An expected resource in the assembly manifest was missing." + An expected resource in the assembly manifest was missing. - - VLDTR_E_GP_ILLEGAL_VARIANCE_FLAGS - "GenericParam has illegal value for variance flags." - GenericParam has illegal value for variance flags + + COR_E_SAFEARRAYTYPEMISMATCH + "A mismatch has occurred between the runtime type of the array and the sub type recorded in the metadata." + A mismatch has occurred between the runtime type of the array and the subtype recorded in the metadata - - VLDTR_E_GP_REFANDVALUETYPE - "GenericParam has incompatible special constraints reference type and valuetype." - GenericParam has incompatible special constraints reference type and valuetype + + COR_E_TYPEINITIALIZATION + "Uncaught exception during type initialization." + An exception was thrown by a type's initializer (.cctor). - - VLDTR_E_GPC_OWNERNIL - "GenericParamConstraint has nil owner." - GenericParamConstraint has nil owner + + COR_E_MARSHALDIRECTIVE + "Invalid marshaling directives." + The marshaling directives are invalid. - - VLDTR_E_GPC_DUP - "GenericParamConstraint has duplicate by owner and constraint." - GenericParamConstraint has duplicate by owner and constraint + + COR_E_MISSINGSATELLITEASSEMBLY + "An expected satellite assembly containing the ultimate fallback resources for a given culture was not found or could not be loaded." + An expected satellite assembly containing the ultimate fallback resources - - VLDTR_E_GPC_NONCONTIGUOUS - "GenericParamConstraint is non-contiguous with preceeding constraints for same owner." - GenericParamConstraint is non-contiguous with preceeding constraints for same owner + + COR_E_FORMAT + "The format of one argument does not meet the contract of the method." + The format of one argument does not meet the contract of the method. - - VLDTR_E_MS_METHODNIL - "MethodSpec has nil method." - MethodSpec has nil method + + COR_E_SAFEARRAYRANKMISMATCH + "A mismatch has occurred between the runtime rank of the array and the rank recorded in the metadata." + A mismatch has occurred between the runtime rank of the array and the rank recorded in the metadata - - VLDTR_E_MS_DUP - "MethodSpec has duplicate based on method and instantiation." - MethodSpec has duplicate based own method and instantiation + + COR_E_PLATFORMNOTSUPPORTED + "Operation is not supported on this platform." + The method is not supported on this platform - - VLDTR_E_MS_BADCALLINGCONV - "MethodSpec signature has invalid calling convention." - MethodSpec signature has invalid calling convention + + COR_E_INVALIDPROGRAM + "Invalid IL or CLR metadata." + A program contained invalid IL or bad metadata. Usually this is a compiler bug. - - VLDTR_E_MS_MISSARITY - "MethodSpec signature is missing arity specification." - MethodSpec signature is missing arity specification + + COR_E_OPERATIONCANCELED + "The operation was cancelled." + The operation was cancelled. - - VLDTR_E_MS_MISSARG - "MethodSpec signature is missing type argument." - MethodSpec signature is missing type argument + + COR_E_INSUFFICIENTMEMORY + Not enough memory was available for an operation. - - VLDTR_E_MS_ARITYMISMATCH - "MethodSpec arity of generic method and instantiation do not match." - MethodSpec arity of generic method and instantiation do not match + + COR_E_RUNTIMEWRAPPED + An object that does not derive from System.Exception has been wrapped in a RuntimeWrappedException. - - VLDTR_E_MS_METHODNOTGENERIC - "MethodSpec method is not generic." - MethodSpec method is not generic + + COR_E_DATAMISALIGNED + "A datatype misalignment was detected in a load or store instruction." + A datatype misalignment was detected in a load or store instruction. - - VLDTR_E_SIG_MISSARITY - "Signature missing arity of instantiated generic type." - Signature missing arity of instantiated generic type + + COR_E_CODECONTRACTFAILED + "A managed code contract (ie, precondition, postcondition, invariant, or assert) failed." + A managed code contract (ie, precondition, postcondition, invariant, or assert) failed. - - VLDTR_E_SIG_ARITYMISMATCH - "Signature has generic type of arity instantiated at different arity." - Signature has generic type of arity instantiated at different arity + + COR_E_TYPEACCESS + "Access to this type is denied." + Access to this type is denied. - - VLDTR_E_MD_GENERIC_CCTOR - "Method cannot be both generic and a class constructor." - Method cannot be both generic and a class constructor + + COR_E_ACCESSING_CCW + "Fail to access a CCW because the corresponding managed object is already collected." + Fail to access a CCW because the corresponding managed object is already collected. - - VLDTR_E_MD_GENERIC_CTOR - "Method cannot be both generic and an instance constructor." - Method cannot be both generic and an instance constructor + + COR_E_KEYNOTFOUND + "The given key was not present in the dictionary." + - - VLDTR_E_MD_GENERIC_IMPORT - "Method cannot be both generic and defined on an imported type." - Method cannot be both generic and defined on an imported type + + COR_E_INSUFFICIENTEXECUTIONSTACK + "Insufficient stack to continue executing the program safely. This can happen from having too many functions on the call stack or function on the stack using too much stack space." + Insufficient stack to continue executing the program safely. This can happen from having too many functions on the call stack or function on the stack using too much stack space. - - VLDTR_E_MD_GENERIC_BADCALLCONV - "Method cannot be both generic and have non-default calling convention." - Method cannot be both generic and have non-default calling convention + + COR_E_APPLICATION + "Application exception" + The base class for all "less serious" exceptions. - - VLDTR_E_EP_GENERIC_METHOD - "Entry point in CLR header is the token for a generic method." - Entry point in CLR header is the token for a generic method + + COR_E_INVALIDFILTERCRITERIA + "The given filter criteria does not match the filter content." + The given filter criteria does not match the filter contract. - - VLDTR_E_MD_MISSARITY - "Method signature is generic but is missing its arity." - Method signature is generic but is missing its arity + + COR_E_REFLECTIONTYPELOAD + "Could not find or load a specific class that was requested through Reflection." + Could not find or load a specific class that was requested through Reflection - - VLDTR_E_MD_ARITYZERO - "Method signature is generic but its arity is zero." - Method signature is generic but its arity is zero + + COR_E_TARGET + "Attempt to invoke non-static method with a null Object." + - If you attempt to invoke a non-static method with a null Object - If you atte - - VLDTR_E_SIG_ARITYZERO - "Signature has generic type instantiated at arity 0." - Signature has generic type instantiated at arity 0 + + COR_E_TARGETINVOCATION + "Uncaught exception thrown by method called through Reflection." + If the method called throws an exception - - VLDTR_E_MS_ARITYZERO - "MethodSpec signature has arity 0." - MethodSpec signature has arity 0 + + COR_E_CUSTOMATTRIBUTEFORMAT + "Custom attribute has invalid format." + If the binary format of a custom attribute is invalid. - - VLDTR_E_MD_GPMISMATCH - "MethodDef signature has arity n but owns m GenericParams." - MethodDef signature has arity n but owns m GenericParams + + COR_E_IO + "Error during managed I/O." + Some sort of I/O error. - - VLDTR_E_EP_GENERIC_TYPE - "Entry point in CLR header is the token for a method in a generic type." - Entry point in CLR header is the token for a method in a generic type + + COR_E_FILELOAD + "Could not find or load a specific file." + - - VLDTR_E_MI_DECLNOTGENERIC - "MethodImpl overrides non-generic method with generic method." - MethodImpl overrides non-generic method with generic method + + COR_E_OBJECTDISPOSED + "The object has already been disposed." + The object has already been disposed. - - VLDTR_E_MI_IMPLNOTGENERIC - "MethodImpl overrides non-generic method with generic method." - MethodImpl overrides non-generic method with generic method + + COR_E_FAILFAST + "Runtime operation halted by call to System.Environment.FailFast()." + Runtime operation halted by call to System.Environment.FailFast(). - - VLDTR_E_MI_ARITYMISMATCH - "MethodImpl overrides generic method of arity n with generic method of arity m." - MethodImpl overrides generic method of arity n with generic method of arity m + + COR_E_HOSTPROTECTION + "The host has forbidden this operation." + Attempted to perform an operation that was forbidden by the host. - - VLDTR_E_TD_EXTBADTYPESPEC - "TypeDef extends a TypeSpec that is not an instantiated type." - TypeDef extends a TypeSpec that is not an instantiated type + + COR_E_ILLEGAL_REENTRANCY + "Attempted to call into managed code when executing inside a low level extensibility point." + Attempted to call into managed code when executing inside a low level extensibility point. - - VLDTR_E_SIG_BYREFINST - "Signature has type instantiated at ByRef at offset i." - Signature has type instantiated at byref at offset i + + CLR_E_SHIM_RUNTIMELOAD + "Failed to load the runtime." + Failed to load the runtime - - VLDTR_E_MS_BYREFINST - "Signature has type instantiated at ByRef at offset i." - Signature has type instantiated at byref at offset i + + CLR_E_SHIM_LEGACYRUNTIMEALREADYBOUND + "A runtime has already been bound for legacy activation policy use." - - VLDTR_E_TS_EMPTY - "TypeSpec has empty signature." - TypeSpec has empty signature + + VER_E_FIELD_SIG + "[field sig]" - - VLDTR_E_TS_HASSENTINALS - "TypeSpec has signature containing one or more sentinels." - TypeSpec has signature containing one or more sentinals + + VER_E_CIRCULAR_VAR_CONSTRAINTS + "Method parent has circular class type parameter constraints." - - VLDTR_E_TD_GENERICHASEXPLAYOUT - "TypeDef is generic but has explicit layout." - TypeDef is generic but has explicit layout + + VER_E_CIRCULAR_MVAR_CONSTRAINTS + "Method has circular method type parameter constraints." - - VLDTR_E_SIG_BADTOKTYPE - "Signature has token following ELEMENT_TYPE_CLASS (_VALUETYPE) that is not a TypeDef or TypeRef." - Signature has token following ELEMENT_TYPE_CLASS (_VALUETYPE) that is not a TypeDef or TypeRef + + COR_E_Data - - VLDTR_E_IFACE_METHNOTIMPLTHISMOD - "Warning: Class does not implement interface method in this module." - Warn:Class doesn't implement interface method in this module + + VLDTR_E_SIG_BADVOID + "Illegal 'void' in signature." + Illegal "void" in signature - - TLBX_E_CIRCULAR_EXPORT2 - "TypeLib export: attempted to export an Assembly imported from a TLB." - TypeLib export: attempt to export a CLB imported from a TLB. + + VLDTR_E_GP_ILLEGAL_VARIANT_MVAR + "GenericParam is a method type parameter and must be non-variant." + GenericParam is a method type parameter and must be non-variant @@ -6261,12 +1846,6 @@ Cant intercept this exception. - - CORDBG_E_CANT_UNWIND_ABOVE_CALLBACK - "When intercepting an exception, cannot intercept above the current frame." - When intercepting an exception, cannot intercept above the current frame. - - CORDBG_E_INTERCEPT_FRAME_ALREADY_SET "The intercept frame for this exception has already been set." @@ -6309,36 +1888,18 @@ Method was not JITed in EnC mode - - CORDBG_E_ENC_NESTED_HANLDERS - "Frame cannot be updated due to change in max nesting of handlers." - Frame cant be updated due to change in max nesting of handlers - - CORDBG_E_ENC_IN_FUNCLET "Method is in a callable handler/filter. Cannot increase stack." Method is in a callable handler/filter. Cant grow stack - - CORDBG_E_ENC_LOCALLOC - "Frame cannot be updated due to localloc." - Frame cant be updated due to localloc - - CORDBG_E_ENC_EDIT_NOT_SUPPORTED "Attempt to perform unsupported edit." Attempt to perform unsupported edit - - CORDBG_E_FEABORT_DELAYED_UNTIL_THREAD_RESUMED - "Attempt to func eval abort on a suspended thread." - Attempt to func eval abort on a suspended thread. - - CORDBG_E_NOTREADY "The LS is not in a good spot to perform the requested operation." @@ -6441,12 +2002,6 @@ The operation failed because the thread is in optimized code. - - CORDBG_E_MINIDUMP_UNSUPPORTED - "The information requested is not supported by minidumps." - - - CORDBG_E_APPDOMAIN_MISMATCH "A supplied object or type belongs to the wrong AppDomain." @@ -6538,42 +2093,6 @@ A debug component is not installed - - CORDBG_E_REMOTE_MISMATCHED_CERTS - "Connection authentication failed due to mismatched certificates." - Connection authentication failed due to mismatched certificates - - - - CORDBG_E_REMOTE_NETWORK_FAILURE - "Connection failed due to a miscellaneous network error." - Connection failed due to a miscellaneous network error - - - - CORDBG_E_REMOTE_NO_LISTENER - "Connection failed due to no endpoint at remote machine (no proxy configured?)." - Connection failed due to no endpoint at remote machine (no proxy configured?) - - - - CORDBG_E_REMOTE_UNKNOWN_TARGET - "Connection failed due to inability to locate remote machine." - Connection failed due to inability to locate remote machine - - - - CORDBG_E_REMOTE_INVALID_CONFIG - "Local debugger configuration was missing or invalid." - Local debugger configuration was missing or invalid - - - - CORDBG_E_REMOTE_MISMATCHED_PROTOCOLS - "Connection failed due to protocol version mismatch between local and remote components." - Connection failed due to protocol version mismatch between local and remote components - - CORDBG_E_LIBRARY_PROVIDER_ERROR "The ICLRDebuggingLibraryProvider callback returned an error or did not provide a valid handle." @@ -6658,52 +2177,16 @@ Failure when calling a data target method. - - CORDBG_E_CODE_HAS_NO_METADATA - "Couldn't find metadata for the given executable code." - Couldn't find metadata for the given executable code. - - - - CORDBG_E_CODE_UNRECOGNIZED - "Given executable code is not managed." - Given executable code is not managed. - - CORDBG_E_NO_IMAGE_AVAILABLE "Couldn't find a native image." Couldn't find a native image. - - CORDBG_E_TYPE_NOT_FOUND - "The type doesn't exist in the given module." - The type doesn't exist in the given module. - - - - CORDBG_E_VTABLE_HAS_NO_METADATA - "Couldn't find metadata for the given vtable." - Couldn't find metadata for the given vtable. - - - - CORDBG_E_NO_GENERIC_INFO - "Couldn't find any generics information." - Couldn't find any generics information. - - - - PEFMT_E_NO_CONTENTS - "File is empty." - File is empty - - - - PEFMT_E_NO_NTHEADERS - "File has no NT headers." - File has no NT headers + + CORDBG_E_UNSUPPORTED_DELEGATE + "The delegate contains a delegate currently not supported by the API." + The delegate contains a delegate currently not supported by the API. @@ -6712,138 +2195,18 @@ File is PE32+ - - PEFMT_E_NO_CORHEADER - "File has no COR header." - File has no COR header - - - - PEFMT_E_NOT_ILONLY - "Flag IL_ONLY not set." - Flag IL_ONLY not set - - - - PEFMT_E_IMPORT_DLLS - "Bad import DLLs." - Bad import DLLs - - - - PEFMT_E_EXE_NOENTRYPOINT - "EXE file has no mgd entry point." - EXE file has no mgd entry point - - - - PEFMT_E_BASE_RELOCS - "Bad base relocations." - Bad base relocations - - - - PEFMT_E_ENTRYPOINT - "Bad managed entry point." - Bad managed entry point - - - - PEFMT_E_ZERO_SIZEOFCODE - "OptHeader.SizeOfCode is set to zero." - OptHeader.SizeOfCode==0 - - - - PEFMT_E_BAD_CORHEADER - "File has invalid COR header." - File has invalid COR header - - PEFMT_E_32BIT "File is PE32" File is PE32 - - CLR_OPTSVC_E_CONTROLLER_INTERRUPT - "The operation was interrupted by the CLR Optimization Service controller." - Service controller interrupted work - - - - NGEN_FAILED_GET_DEPENDENCIES - "Failed to get dependencies for assembly." - Service manager failed to get ICorSvcDependencies interface - - - - NGEN_FAILED_NATIVE_IMAGE_DELETE - "Failed to delete native image." - Failed to delete native image - - - - NGEN_E_TOO_MANY_INTERFACES - "Module contains too many interfaces to successfully compile all methods." - Module contains too many interfaces to successfully compile all methods. - - - - NGEN_E_OLDER_RUNTIME - "Requested runtime does not support side-by-side NGen." - Requested runtime does not support side-by-side NGen. - - - - NGEN_E_WORKER_UNEXPECTED_EXIT - "Worker exited unexpectedly during startup" - An NGen worker process exited before it could be reached via DCOM. - - - - NGEN_E_WORKER_UNEXPECTED_SYNC - "Failed to synchronize with worker during startup" - Synchronizing with an NGen worker process returned an unexpected result. - - NGEN_E_SYS_ASM_NI_MISSING "NGen cannot proceed because Mscorlib.dll does not have a native image" Compiling any assembly other than mscorlib in the absence of mscorlib.ni.dll is not allowed. - - NGEN_E_EXE_MACHINE_TYPE_MISMATCH - "The image file is not compatible with the version of Ngen you're running. Use 32bit Ngen for 32bit assemblies, and 64bit Ngen for 64bit assemblies." - The image file is not compatible with the version of Ngen you're running. Use 32bit Ngen for 32bit assemblies, and 64bit Ngen for 64bit assemblies. - - - - NGEN_E_ASSEMBLY_EXCLUSION_FILE_PARSE_ERROR - "There was an error parsing the NGen assembly exclusion Xml file." - There was an error parsing the NGen assembly exclusion Xml file. - - - - NGEN_E_HARDBOUND_DEPENDENCY_MISSING - "A hardbound dependent native image is missing." - A hardbound dependent native image is missing. - - - - NGEN_E_NOT_RUNNING_IN_EXPECTED_PACKAGE - "NGen is not running in expected package." - NGen is not running in expected package. - - - - NGEN_E_FILE_NOT_ASSEMBLY - "The image being compiled is not a .NET assembly" - The image being compiled is not a .NET assembly - - CLDB_E_INTERNALERROR @@ -6908,6 +2271,24 @@ During a GC when we try to allocate memory for GC datastructures we could not. + + CLR_E_GC_BAD_AFFINITY_CONFIG + "GCHeapAffinitizeMask or GCHeapAffinitizeRanges didn't specify any CPUs the current process is affinitized to." + During a GC initialization, the affinity mask specified via GCHeapAffinitizeMask or GCHeapAffinitizeRanges didn't contain any CPUs the current process is affinitized to. + + + + CLR_E_GC_BAD_AFFINITY_CONFIG_FORMAT + "GCHeapAffinitizeRanges configuration string has invalid format." + During a GC initialization, the GCHeapAffinitizeRanges config couldn't be parsed due to its invalid format. + + + + CLR_E_CROSSGEN_NO_IBC_DATA_FOUND + "Cannot compile using the PartialNgen flag because no IBC data was found." + During crossgen compilation, the PartialNgen flag was set, but no IBC data was found in the resources section of the input image, and no IBC file was externally provided. + + COR_E_UNAUTHORIZEDACCESS 0x80070005 // Access is denied. @@ -6938,11 +2319,6 @@ 0x80070216 // Overflow or underflow in mathematical operations. - - COR_E_BAD_PATHNAME - The specified path is invalid. - - COR_E_PATHTOOLONG The specified path was too long. diff --git a/lib/coreclr/src/inc/corexcep.h b/lib/coreclr/src/inc/corexcep.h index f1bed3e77bba..9235a9846f4c 100644 --- a/lib/coreclr/src/inc/corexcep.h +++ b/lib/coreclr/src/inc/corexcep.h @@ -22,12 +22,6 @@ #define EXCEPTION_HIJACK 0xe0434f4e // 0xe0000000 | 'COM'+1 -#ifdef FEATURE_STACK_PROBE -#define EXCEPTION_SOFTSO 0xe053534f // 0xe0000000 | 'SSO' - // We can not throw internal C++ exception through managed frame. - // At boundary, we will raise an exception with this error code -#endif - #if defined(_DEBUG) #define EXCEPTION_INTERNAL_ASSERT 0xe0584d4e // 0xe0000000 | 'XMN' // An internal Assert will raise this exception when the config diff --git a/lib/coreclr/src/inc/corhdr.h b/lib/coreclr/src/inc/corhdr.h index df54ab41bcc9..18b4dec31996 100644 --- a/lib/coreclr/src/inc/corhdr.h +++ b/lib/coreclr/src/inc/corhdr.h @@ -18,15 +18,15 @@ #define __CORHDR_H__ #define FRAMEWORK_REGISTRY_KEY "Software\\Microsoft\\.NETFramework" -#define FRAMEWORK_REGISTRY_KEY_W L"Software\\Microsoft\\.NETFramework" +#define FRAMEWORK_REGISTRY_KEY_W W("Software\\Microsoft\\.NETFramework") // keys for HKCU #ifdef _WIN64 #define USER_FRAMEWORK_REGISTRY_KEY "Software\\Microsoft\\.NETFramework64" -#define USER_FRAMEWORK_REGISTRY_KEY_W L"Software\\Microsoft\\.NETFramework64" +#define USER_FRAMEWORK_REGISTRY_KEY_W W("Software\\Microsoft\\.NETFramework64") #else #define USER_FRAMEWORK_REGISTRY_KEY "Software\\Microsoft\\.NETFramework" -#define USER_FRAMEWORK_REGISTRY_KEY_W L"Software\\Microsoft\\.NETFramework" +#define USER_FRAMEWORK_REGISTRY_KEY_W W("Software\\Microsoft\\.NETFramework") #endif @@ -198,8 +198,8 @@ typedef enum ReplacesCorHdrNumericDefines // The most important of these is the MetaData tables. The easiest way of looking at meta-data is using // the IlDasm.exe tool. // -// MetaData holds most of the information in the IL image. THe exceptions are resource blobs and the IL -// instructions streams for individual methods. Intstead the Meta-data for a method holds an RVA to a +// MetaData holds most of the information in the IL image. The exceptions are resource blobs and the IL +// instructions streams for individual methods. Instead the Meta-data for a method holds an RVA to a // code:IMAGE_COR_ILMETHOD which holds all the IL stream (and exception handling information). // // Precompiled (NGEN) images use the same IMAGE_COR20_HEADER but also use the ManagedNativeHeader field to @@ -239,7 +239,8 @@ typedef struct IMAGE_COR20_HEADER IMAGE_DATA_DIRECTORY VTableFixups; IMAGE_DATA_DIRECTORY ExportAddressTableJumps; - // null for ordinary IL images. NGEN images it points at a code:CORCOMPILE_HEADER structure + // null for ordinary IL images. In NGEN images it points at a code:CORCOMPILE_HEADER structure. + // In Ready2Run images it points to a READYTORUN_HEADER. IMAGE_DATA_DIRECTORY ManagedNativeHeader; } IMAGE_COR20_HEADER, *PIMAGE_COR20_HEADER; @@ -258,18 +259,18 @@ typedef struct IMAGE_COR20_HEADER // The most recent version. #define COR_CTOR_METHOD_NAME ".ctor" -#define COR_CTOR_METHOD_NAME_W L".ctor" +#define COR_CTOR_METHOD_NAME_W W(".ctor") #define COR_CCTOR_METHOD_NAME ".cctor" -#define COR_CCTOR_METHOD_NAME_W L".cctor" +#define COR_CCTOR_METHOD_NAME_W W(".cctor") #define COR_ENUM_FIELD_NAME "value__" -#define COR_ENUM_FIELD_NAME_W L"value__" +#define COR_ENUM_FIELD_NAME_W W("value__") // The predefined name for deleting a typeDef,MethodDef, FieldDef, Property and Event #define COR_DELETED_NAME_A "_Deleted" -#define COR_DELETED_NAME_W L"_Deleted" +#define COR_DELETED_NAME_W W("_Deleted") #define COR_VTABLEGAP_NAME_A "_VtblGap" -#define COR_VTABLEGAP_NAME_W L"_VtblGap" +#define COR_VTABLEGAP_NAME_W W("_VtblGap") // We intentionally use strncmp so that we will ignore any suffix #define IsDeletedName(strName) (strncmp(strName, COR_DELETED_NAME_A, COR_DELETED_NAME_LENGTH) == 0) @@ -644,6 +645,7 @@ typedef enum CorMethodImpl miNoInlining = 0x0008, // Method may not be inlined. miAggressiveInlining = 0x0100, // Method should be inlined if possible. miNoOptimization = 0x0040, // Method may not be optimized. + miAggressiveOptimization = 0x0200, // Method may contain hot code and should be aggressively optimized. // These are the flags that are allowed in MethodImplAttribute's Value // property. This should include everything above except the code impl @@ -651,7 +653,7 @@ typedef enum CorMethodImpl miUserMask = miManagedMask | miForwardRef | miPreserveSig | miInternalCall | miSynchronized | miNoInlining | miAggressiveInlining | - miNoOptimization, + miNoOptimization | miAggressiveOptimization, miMaxMethodImplVal = 0xffff, // Range check value } CorMethodImpl; @@ -674,6 +676,7 @@ typedef enum CorMethodImpl #define IsMiNoInlining(x) ((x) & miNoInlining) #define IsMiAggressiveInlining(x) ((x) & miAggressiveInlining) #define IsMiNoOptimization(x) ((x) & miNoOptimization) +#define IsMiAggressiveOptimization(x) (((x) & (miAggressiveOptimization | miNoOptimization)) == miAggressiveOptimization) // PinvokeMap attr bits, used by DefinePinvokeMap. typedef enum CorPinvokeMap @@ -746,6 +749,7 @@ typedef enum CorAssemblyFlags afPA_IA64 = 0x0030, // Processor Architecture: Itanium (PE32+) afPA_AMD64 = 0x0040, // Processor Architecture: AMD X64 (PE32+) afPA_ARM = 0x0050, // Processor Architecture: ARM (PE32) + afPA_ARM64 = 0x0060, // Processor Architecture: ARM64 (PE32+) afPA_NoPlatform = 0x0070, // applies to any platform but cannot run on any (e.g. reference assembly), should not have "specified" set afPA_Specified = 0x0080, // Propagate PA flags to AssemblyRef record afPA_Mask = 0x0070, // Bits describing the processor architecture @@ -775,6 +779,7 @@ typedef enum CorAssemblyFlags #define IsAfPA_IA64(x) (((x) & afPA_Mask) == afPA_IA64) #define IsAfPA_AMD64(x) (((x) & afPA_Mask) == afPA_AMD64) #define IsAfPA_ARM(x) (((x) & afPA_Mask) == afPA_ARM) +#define IsAfPA_ARM64(x) (((x) & afPA_Mask) == afPA_ARM64) #define IsAfPA_NoPlatform(x) (((x) & afPA_FullMask) == afPA_NoPlatform) #define IsAfPA_Specified(x) ((x) & afPA_Specified) #define PAIndex(x) (((x) & afPA_Mask) >> afPA_Shift) @@ -1635,74 +1640,74 @@ typedef enum CorAttributeTargets #define IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS (IMAGE_CEE_CS_CALLCONV_DEFAULT | IMAGE_CEE_CS_CALLCONV_HASTHIS) #endif -#define INTEROP_DISPID_TYPE_W L"System.Runtime.InteropServices.DispIdAttribute" +#define INTEROP_DISPID_TYPE_W W("System.Runtime.InteropServices.DispIdAttribute") #define INTEROP_DISPID_TYPE "System.Runtime.InteropServices.DispIdAttribute" #define INTEROP_DISPID_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I4} -#define INTEROP_INTERFACETYPE_TYPE_W L"System.Runtime.InteropServices.InterfaceTypeAttribute" +#define INTEROP_INTERFACETYPE_TYPE_W W("System.Runtime.InteropServices.InterfaceTypeAttribute") #define INTEROP_INTERFACETYPE_TYPE "System.Runtime.InteropServices.InterfaceTypeAttribute" #define INTEROP_INTERFACETYPE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} -#define INTEROP_CLASSINTERFACE_TYPE_W L"System.Runtime.InteropServices.ClassInterfaceAttribute" +#define INTEROP_CLASSINTERFACE_TYPE_W W("System.Runtime.InteropServices.ClassInterfaceAttribute") #define INTEROP_CLASSINTERFACE_TYPE "System.Runtime.InteropServices.ClassInterfaceAttribute" #define INTEROP_CLASSINTERFACE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} -#define INTEROP_COMVISIBLE_TYPE_W L"System.Runtime.InteropServices.ComVisibleAttribute" +#define INTEROP_COMVISIBLE_TYPE_W W("System.Runtime.InteropServices.ComVisibleAttribute") #define INTEROP_COMVISIBLE_TYPE "System.Runtime.InteropServices.ComVisibleAttribute" #define INTEROP_COMVISIBLE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_BOOLEAN} -#define INTEROP_COMREGISTERFUNCTION_TYPE_W L"System.Runtime.InteropServices.ComRegisterFunctionAttribute" +#define INTEROP_COMREGISTERFUNCTION_TYPE_W W("System.Runtime.InteropServices.ComRegisterFunctionAttribute") #define INTEROP_COMREGISTERFUNCTION_TYPE "System.Runtime.InteropServices.ComRegisterFunctionAttribute" #define INTEROP_COMREGISTERFUNCTION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define INTEROP_COMUNREGISTERFUNCTION_TYPE_W L"System.Runtime.InteropServices.ComUnregisterFunctionAttribute" +#define INTEROP_COMUNREGISTERFUNCTION_TYPE_W W("System.Runtime.InteropServices.ComUnregisterFunctionAttribute") #define INTEROP_COMUNREGISTERFUNCTION_TYPE "System.Runtime.InteropServices.ComUnregisterFunctionAttribute" #define INTEROP_COMUNREGISTERFUNCTION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define INTEROP_IMPORTEDFROMTYPELIB_TYPE_W L"System.Runtime.InteropServices.ImportedFromTypeLibAttribute" +#define INTEROP_IMPORTEDFROMTYPELIB_TYPE_W W("System.Runtime.InteropServices.ImportedFromTypeLibAttribute") #define INTEROP_IMPORTEDFROMTYPELIB_TYPE "System.Runtime.InteropServices.ImportedFromTypeLibAttribute" #define INTEROP_IMPORTEDFROMTYPELIB_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} -#define INTEROP_PRIMARYINTEROPASSEMBLY_TYPE_W L"System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute" +#define INTEROP_PRIMARYINTEROPASSEMBLY_TYPE_W W("System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute") #define INTEROP_PRIMARYINTEROPASSEMBLY_TYPE "System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute" #define INTEROP_PRIMARYINTEROPASSEMBLY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I4, ELEMENT_TYPE_I4} -#define INTEROP_IDISPATCHIMPL_TYPE_W L"System.Runtime.InteropServices.IDispatchImplAttribute" +#define INTEROP_IDISPATCHIMPL_TYPE_W W("System.Runtime.InteropServices.IDispatchImplAttribute") #define INTEROP_IDISPATCHIMPL_TYPE "System.Runtime.InteropServices.IDispatchImplAttribute" #define INTEROP_IDISPATCHIMPL_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} -#define INTEROP_COMSOURCEINTERFACES_TYPE_W L"System.Runtime.InteropServices.ComSourceInterfacesAttribute" +#define INTEROP_COMSOURCEINTERFACES_TYPE_W W("System.Runtime.InteropServices.ComSourceInterfacesAttribute") #define INTEROP_COMSOURCEINTERFACES_TYPE "System.Runtime.InteropServices.ComSourceInterfacesAttribute" #define INTEROP_COMSOURCEINTERFACES_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} -#define INTEROP_COMDEFAULTINTERFACE_TYPE_W L"System.Runtime.InteropServices.ComDefaultInterfaceAttribute" +#define INTEROP_COMDEFAULTINTERFACE_TYPE_W W("System.Runtime.InteropServices.ComDefaultInterfaceAttribute") #define INTEROP_COMDEFAULTINTERFACE_TYPE "System.Runtime.InteropServices.ComDefaultInterfaceAttribute" -#define INTEROP_COMCONVERSIONLOSS_TYPE_W L"System.Runtime.InteropServices.ComConversionLossAttribute" +#define INTEROP_COMCONVERSIONLOSS_TYPE_W W("System.Runtime.InteropServices.ComConversionLossAttribute") #define INTEROP_COMCONVERSIONLOSS_TYPE "System.Runtime.InteropServices.ComConversionLossAttribute" #define INTEROP_COMCONVERSIONLOSS_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define INTEROP_BESTFITMAPPING_TYPE_W L"System.Runtime.InteropServices.BestFitMappingAttribute" +#define INTEROP_BESTFITMAPPING_TYPE_W W("System.Runtime.InteropServices.BestFitMappingAttribute") #define INTEROP_BESTFITMAPPING_TYPE "System.Runtime.InteropServices.BestFitMappingAttribute" #define INTEROP_BESTFITMAPPING_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_BOOLEAN, ELEMENT_TYPE_BOOLEAN} -#define INTEROP_TYPELIBTYPE_TYPE_W L"System.Runtime.InteropServices.TypeLibTypeAttribute" +#define INTEROP_TYPELIBTYPE_TYPE_W W("System.Runtime.InteropServices.TypeLibTypeAttribute") #define INTEROP_TYPELIBTYPE_TYPE "System.Runtime.InteropServices.TypeLibTypeAttribute" #define INTEROP_TYPELIBTYPE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} -#define INTEROP_TYPELIBFUNC_TYPE_W L"System.Runtime.InteropServices.TypeLibFuncAttribute" +#define INTEROP_TYPELIBFUNC_TYPE_W W("System.Runtime.InteropServices.TypeLibFuncAttribute") #define INTEROP_TYPELIBFUNC_TYPE "System.Runtime.InteropServices.TypeLibFuncAttribute" #define INTEROP_TYPELIBFUNC_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} -#define INTEROP_TYPELIBVAR_TYPE_W L"System.Runtime.InteropServices.TypeLibVarAttribute" +#define INTEROP_TYPELIBVAR_TYPE_W W("System.Runtime.InteropServices.TypeLibVarAttribute") #define INTEROP_TYPELIBVAR_TYPE "System.Runtime.InteropServices.TypeLibVarAttribute" #define INTEROP_TYPELIBVAR_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} -#define INTEROP_MARSHALAS_TYPE_W L"System.Runtime.InteropServices.MarshalAsAttribute" +#define INTEROP_MARSHALAS_TYPE_W W("System.Runtime.InteropServices.MarshalAsAttribute") #define INTEROP_MARSHALAS_TYPE "System.Runtime.InteropServices.MarshalAsAttribute" #define INTEROP_MARSHALAS_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2} -#define INTEROP_COMIMPORT_TYPE_W L"System.Runtime.InteropServices.ComImportAttribute" +#define INTEROP_COMIMPORT_TYPE_W W("System.Runtime.InteropServices.ComImportAttribute") #define INTEROP_COMIMPORT_TYPE "System.Runtime.InteropServices.ComImportAttribute" #define INTEROP_COMIMPORT_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} @@ -1710,116 +1715,112 @@ typedef enum CorAttributeTargets #define INTEROP_GUID_TYPE "System.Runtime.InteropServices.GuidAttribute" #define INTEROP_GUID_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} -#define INTEROP_DEFAULTMEMBER_TYPE_W L"System.Reflection.DefaultMemberAttribute" +#define INTEROP_DEFAULTMEMBER_TYPE_W W("System.Reflection.DefaultMemberAttribute") #define INTEROP_DEFAULTMEMBER_TYPE "System.Reflection.DefaultMemberAttribute" #define INTEROP_DEFAULTMEMBER_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} -#define INTEROP_COMEMULATE_TYPE_W L"System.Runtime.InteropServices.ComEmulateAttribute" +#define INTEROP_COMEMULATE_TYPE_W W("System.Runtime.InteropServices.ComEmulateAttribute") #define INTEROP_COMEMULATE_TYPE "System.Runtime.InteropServices.ComEmulateAttribute" #define INTEROP_COMEMULATE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} -#define INTEROP_PRESERVESIG_TYPE_W L"System.Runtime.InteropServices.PreserveSigAttribure" +#define INTEROP_PRESERVESIG_TYPE_W W("System.Runtime.InteropServices.PreserveSigAttribure") #define INTEROP_PRESERVESIG_TYPE "System.Runtime.InteropServices.PreserveSigAttribure" #define INTEROP_PRESERVESIG_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_BOOLEAN} -#define INTEROP_IN_TYPE_W L"System.Runtime.InteropServices.InAttribute" +#define INTEROP_IN_TYPE_W W("System.Runtime.InteropServices.InAttribute") #define INTEROP_IN_TYPE "System.Runtime.InteropServices.InAttribute" #define INTEROP_IN_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define INTEROP_OUT_TYPE_W L"System.Runtime.InteropServices.OutAttribute" +#define INTEROP_OUT_TYPE_W W("System.Runtime.InteropServices.OutAttribute") #define INTEROP_OUT_TYPE "System.Runtime.InteropServices.OutAttribute" #define INTEROP_OUT_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define INTEROP_COMALIASNAME_TYPE_W L"System.Runtime.InteropServices.ComAliasNameAttribute" +#define INTEROP_COMALIASNAME_TYPE_W W("System.Runtime.InteropServices.ComAliasNameAttribute") #define INTEROP_COMALIASNAME_TYPE "System.Runtime.InteropServices.ComAliasNameAttribute" #define INTEROP_COMALIASNAME_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} -#define INTEROP_PARAMARRAY_TYPE_W L"System.ParamArrayAttribute" +#define INTEROP_PARAMARRAY_TYPE_W W("System.ParamArrayAttribute") #define INTEROP_PARAMARRAY_TYPE "System.ParamArrayAttribute" #define INTEROP_PARAMARRAY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define INTEROP_LCIDCONVERSION_TYPE_W L"System.Runtime.InteropServices.LCIDConversionAttribute" +#define INTEROP_LCIDCONVERSION_TYPE_W W("System.Runtime.InteropServices.LCIDConversionAttribute") #define INTEROP_LCIDCONVERSION_TYPE "System.Runtime.InteropServices.LCIDConversionAttribute" #define INTEROP_LCIDCONVERSION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I4} -#define INTEROP_COMSUBSTITUTABLEINTERFACE_TYPE_W L"System.Runtime.InteropServices.ComSubstitutableInterfaceAttribute" +#define INTEROP_COMSUBSTITUTABLEINTERFACE_TYPE_W W("System.Runtime.InteropServices.ComSubstitutableInterfaceAttribute") #define INTEROP_COMSUBSTITUTABLEINTERFACE_TYPE "System.Runtime.InteropServices.ComSubstitutableInterfaceAttribute" #define INTEROP_COMSUBSTITUTABLEINTERFACE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define INTEROP_DECIMALVALUE_TYPE_W L"System.Runtime.CompilerServices.DecimalConstantAttribute" +#define INTEROP_DECIMALVALUE_TYPE_W W("System.Runtime.CompilerServices.DecimalConstantAttribute") #define INTEROP_DECIMALVALUE_TYPE "System.Runtime.CompilerServices.DecimalConstantAttribute" #define INTEROP_DECIMALVALUE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 5, ELEMENT_TYPE_VOID, ELEMENT_TYPE_U1, ELEMENT_TYPE_U1, ELEMENT_TYPE_U4, ELEMENT_TYPE_U4, ELEMENT_TYPE_U4} -#define INTEROP_DATETIMEVALUE_TYPE_W L"System.Runtime.CompilerServices.DateTimeConstantAttribute" +#define INTEROP_DATETIMEVALUE_TYPE_W W("System.Runtime.CompilerServices.DateTimeConstantAttribute") #define INTEROP_DATETIMEVALUE_TYPE "System.Runtime.CompilerServices.DateTimeConstantAttribute" #define INTEROP_DATETIMEVALUE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I8} -#define INTEROP_IUNKNOWNVALUE_TYPE_W L"System.Runtime.CompilerServices.IUnknownConstantAttribute" +#define INTEROP_IUNKNOWNVALUE_TYPE_W W("System.Runtime.CompilerServices.IUnknownConstantAttribute") #define INTEROP_IUNKNOWNVALUE_TYPE "System.Runtime.CompilerServices.IUnknownConstantAttribute" #define INTEROP_IUNKNOWNVALUE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define INTEROP_IDISPATCHVALUE_TYPE_W L"System.Runtime.CompilerServices.IDispatchConstantAttribute" +#define INTEROP_IDISPATCHVALUE_TYPE_W W("System.Runtime.CompilerServices.IDispatchConstantAttribute") #define INTEROP_IDISPATCHVALUE_TYPE "System.Runtime.CompilerServices.IDispatchConstantAttribute" #define INTEROP_IDISPATCHVALUE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define INTEROP_AUTOPROXY_TYPE_W L"System.Runtime.InteropServices.AutomationProxyAttribute" +#define INTEROP_AUTOPROXY_TYPE_W W("System.Runtime.InteropServices.AutomationProxyAttribute") #define INTEROP_AUTOPROXY_TYPE "System.Runtime.InteropServices.AutomationProxyAttribute" #define INTEROP_AUTOPROXY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_BOOLEAN} -#define INTEROP_TYPELIBIMPORTCLASS_TYPE_W L"System.Runtime.InteropServices.TypeLibImportClassAttribute" +#define INTEROP_TYPELIBIMPORTCLASS_TYPE_W W("System.Runtime.InteropServices.TypeLibImportClassAttribute") #define INTEROP_TYPELIBIMPORTCLASS_TYPE "System.Runtime.InteropServices.TypeLibImportClassAttribute" -#define INTEROP_TYPELIBVERSION_TYPE_W L"System.Runtime.InteropServices.TypeLibVersionAttribute" +#define INTEROP_TYPELIBVERSION_TYPE_W W("System.Runtime.InteropServices.TypeLibVersionAttribute") #define INTEROP_TYPELIBVERSION_TYPE "System.Runtime.InteropServices.TypeLibVersionAttribute" #define INTEROP_TYPELIBVERSION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2, ELEMENT_TYPE_I2} -#define INTEROP_COMCOMPATIBLEVERSION_TYPE_W L"System.Runtime.InteropServices.ComCompatibleVersionAttribute" +#define INTEROP_COMCOMPATIBLEVERSION_TYPE_W W("System.Runtime.InteropServices.ComCompatibleVersionAttribute") #define INTEROP_COMCOMPATIBLEVERSION_TYPE "System.Runtime.InteropServices.ComCompatibleVersionAttribute" #define INTEROP_COMCOMPATIBLEVERSION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 4, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I2, ELEMENT_TYPE_I2, ELEMENT_TYPE_I2, ELEMENT_TYPE_I2} -#define INTEROP_COMEVENTINTERFACE_TYPE_W L"System.Runtime.InteropServices.ComEventInterfaceAttribute" +#define INTEROP_COMEVENTINTERFACE_TYPE_W W("System.Runtime.InteropServices.ComEventInterfaceAttribute") #define INTEROP_COMEVENTINTERFACE_TYPE "System.Runtime.InteropServices.ComEventInterfaceAttribute" -#define INTEROP_COCLASS_TYPE_W L"System.Runtime.InteropServices.CoClassAttribute" +#define INTEROP_COCLASS_TYPE_W W("System.Runtime.InteropServices.CoClassAttribute") #define INTEROP_COCLASS_TYPE "System.Runtime.InteropServices.CoClassAttribute" -#define INTEROP_SERIALIZABLE_TYPE_W L"System.SerializableAttribute" +#define INTEROP_SERIALIZABLE_TYPE_W W("System.SerializableAttribute") #define INTEROP_SERIALIZABLE_TYPE "System.SerializableAttribute" #define INTEROP_SERIALIZABLE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define INTEROP_SETWIN32CONTEXTINIDISPATCHATTRIBUTE_TYPE_W L"System.Runtime.InteropServices.SetWin32ContextInIDispatchAttribute" +#define INTEROP_SETWIN32CONTEXTINIDISPATCHATTRIBUTE_TYPE_W W("System.Runtime.InteropServices.SetWin32ContextInIDispatchAttribute") #define INTEROP_SETWIN32CONTEXTINIDISPATCHATTRIBUTE_TYPE "System.Runtime.InteropServices.SetWin32ContextInIDispatchAttribute" #define INTEROP_SETWIN32CONTEXTINIDISPATCHATTRIBUTE_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define FORWARD_INTEROP_STUB_METHOD_TYPE_W L"System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute" +#define FORWARD_INTEROP_STUB_METHOD_TYPE_W W("System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute") #define FORWARD_INTEROP_STUB_METHOD_TYPE "System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute" -#define FRIEND_ASSEMBLY_TYPE_W L"System.Runtime.CompilerServices.InternalsVisibleToAttribute" +#define FRIEND_ASSEMBLY_TYPE_W W("System.Runtime.CompilerServices.InternalsVisibleToAttribute") #define FRIEND_ASSEMBLY_TYPE "System.Runtime.CompilerServices.InternalsVisibleToAttribute" #define FRIEND_ASSEMBLY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 2, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING, ELEMENT_TYPE_BOOLEAN} -#define SUBJECT_ASSEMBLY_TYPE_W L"System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute" +#define SUBJECT_ASSEMBLY_TYPE_W W("System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute") #define SUBJECT_ASSEMBLY_TYPE "System.Runtime.CompilerServices.IgnoresAccessChecksToAttribute" #define SUBJECT_ASSEMBLY_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_STRING} -#define DISABLED_PRIVATE_REFLECTION_TYPE_W L"System.Runtime.CompilerServices.DisablePrivateReflectionAttribute" +#define DISABLED_PRIVATE_REFLECTION_TYPE_W W("System.Runtime.CompilerServices.DisablePrivateReflectionAttribute") #define DISABLED_PRIVATE_REFLECTION_TYPE "System.Runtime.CompilerServices.DisablePrivateReflectionAttribute" #define DISABLED_PRIVATE_REFLECTION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define DEFAULTDOMAIN_STA_TYPE_W L"System.STAThreadAttribute" +#define DEFAULTDOMAIN_STA_TYPE_W W("System.STAThreadAttribute") #define DEFAULTDOMAIN_STA_TYPE "System.STAThreadAttribute" #define DEFAULTDOMAIN_STA_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define DEFAULTDOMAIN_MTA_TYPE_W L"System.MTAThreadAttribute" +#define DEFAULTDOMAIN_MTA_TYPE_W W("System.MTAThreadAttribute") #define DEFAULTDOMAIN_MTA_TYPE "System.MTAThreadAttribute" #define DEFAULTDOMAIN_MTA_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 0, ELEMENT_TYPE_VOID} -#define DEFAULTDOMAIN_LOADEROPTIMIZATION_TYPE_W L"System.LoaderOptimizationAttribute" -#define DEFAULTDOMAIN_LOADEROPTIMIZATION_TYPE "System.LoaderOptimizationAttribute" -#define DEFAULTDOMAIN_LOADEROPTIMIZATION_SIG {IMAGE_CEE_CS_CALLCONV_DEFAULT_HASTHIS, 1, ELEMENT_TYPE_VOID, ELEMENT_TYPE_I1} - -#define NONVERSIONABLE_TYPE_W L"System.Runtime.Versioning.NonVersionableAttribute" +#define NONVERSIONABLE_TYPE_W W("System.Runtime.Versioning.NonVersionableAttribute") #define NONVERSIONABLE_TYPE "System.Runtime.Versioning.NonVersionableAttribute" // Keep in sync with CompilationRelaxations.cs @@ -1829,12 +1830,12 @@ typedef enum CompilationRelaxationsEnum } CompilationRelaxationEnum; -#define COMPILATIONRELAXATIONS_TYPE_W L"System.Runtime.CompilerServices.CompilationRelaxationsAttribute" +#define COMPILATIONRELAXATIONS_TYPE_W W("System.Runtime.CompilerServices.CompilationRelaxationsAttribute") #define COMPILATIONRELAXATIONS_TYPE "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" // Keep in sync with RuntimeCompatibilityAttribute.cs -#define RUNTIMECOMPATIBILITY_TYPE_W L"System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" +#define RUNTIMECOMPATIBILITY_TYPE_W W("System.Runtime.CompilerServices.RuntimeCompatibilityAttribute") #define RUNTIMECOMPATIBILITY_TYPE "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" @@ -1858,16 +1859,16 @@ typedef enum LoadHintEnum LoadNever = 0x0003 // Dependency is never loaded } LoadHintEnum; -#define DEFAULTDEPENDENCY_TYPE_W L"System.Runtime.CompilerServices.DefaultDependencyAttribute" +#define DEFAULTDEPENDENCY_TYPE_W W("System.Runtime.CompilerServices.DefaultDependencyAttribute") #define DEFAULTDEPENDENCY_TYPE "System.Runtime.CompilerServices.DefaultDependencyAttribute" -#define DEPENDENCY_TYPE_W L"System.Runtime.CompilerServices.DependencyAttribute" +#define DEPENDENCY_TYPE_W W("System.Runtime.CompilerServices.DependencyAttribute") #define DEPENDENCY_TYPE "System.Runtime.CompilerServices.DependencyAttribute" -#define TARGET_FRAMEWORK_TYPE_W L"System.Runtime.Versioning.TargetFrameworkAttribute" +#define TARGET_FRAMEWORK_TYPE_W W("System.Runtime.Versioning.TargetFrameworkAttribute") #define TARGET_FRAMEWORK_TYPE "System.Runtime.Versioning.TargetFrameworkAttribute" -#define ASSEMBLY_METADATA_TYPE_W L"System.Reflection.AssemblyMetadataAttribute" +#define ASSEMBLY_METADATA_TYPE_W W("System.Reflection.AssemblyMetadataAttribute") #define ASSEMBLY_METADATA_TYPE "System.Reflection.AssemblyMetadataAttribute" diff --git a/lib/coreclr/src/inc/corhlprpriv.h b/lib/coreclr/src/inc/corhlprpriv.h index 73b89951dd0f..5eeec2098f97 100644 --- a/lib/coreclr/src/inc/corhlprpriv.h +++ b/lib/coreclr/src/inc/corhlprpriv.h @@ -183,11 +183,11 @@ class CQuickMemoryBase _Alloc(iItems); } -#ifdef __llvm__ +#ifdef __GNUC__ // This makes sure that we will not get an undefined symbol - // when building a release version of libcoreclr using LLVM. + // when building a release version of libcoreclr using LLVM/GCC. __attribute__((used)) -#endif // __llvm__ +#endif // __GNUC__ HRESULT ReSizeNoThrow(SIZE_T iItems); void Shrink(SIZE_T iItems) diff --git a/lib/coreclr/src/inc/corhost.h b/lib/coreclr/src/inc/corhost.h index 299057615fcc..09ea994b5992 100644 --- a/lib/coreclr/src/inc/corhost.h +++ b/lib/coreclr/src/inc/corhost.h @@ -42,27 +42,12 @@ class AppDomain; class Assembly; -class CorExecutionManager - : public ICLRExecutionManager -{ -public: - CorExecutionManager(); - - STDMETHODIMP STDMETHODCALLTYPE Pause(DWORD dwAppDomainId, DWORD dwFlags); - STDMETHODIMP STDMETHODCALLTYPE Resume(DWORD dwAppDomainId); - -private: - DWORD m_dwFlags; //flags passed to the last Pause call. - INT64 m_pauseStartTime; -}; - class CorRuntimeHostBase { protected: CorRuntimeHostBase() :m_Started(FALSE), m_cRef(0) - , m_fStarted(FALSE) {LIMITED_METHOD_CONTRACT;} STDMETHODIMP_(ULONG) AddRef(void); @@ -70,47 +55,6 @@ class CorRuntimeHostBase // Starts the runtime. This is equivalent to CoInitializeCor() STDMETHODIMP Start(); -#ifdef FEATURE_COMINTEROP - // Creates a domain in the runtime. The identity array is - // a pointer to an array TYPE containing IIdentity objects defining - // the security identity. - STDMETHODIMP CreateDomain(LPCWSTR pwzFriendlyName, // Optional - IUnknown* pIdentityArray, // Optional - IUnknown ** pAppDomain); - - // Returns the default domain. - STDMETHODIMP GetDefaultDomain(IUnknown ** pAppDomain); - - // Enumerate currently existing domains. - STDMETHODIMP EnumDomains(HDOMAINENUM *hEnum); - - // Returns S_FALSE when there are no more domains. A domain - // is passed out only when S_OK is returned. - STDMETHODIMP NextDomain(HDOMAINENUM hEnum, - IUnknown** pAppDomain); - - // Close the enumeration releasing resources - STDMETHODIMP CloseEnum(HDOMAINENUM hEnum); - - STDMETHODIMP CreateDomainEx(LPCWSTR pwzFriendlyName, - IUnknown* pSetup, // Optional - IUnknown* pEvidence, // Optional - IUnknown ** pAppDomain); - - // Create appdomain setup object that can be passed into CreateDomainEx - STDMETHODIMP CreateDomainSetup(IUnknown** pAppDomainSetup); - - // Create Evidence object that can be passed into CreateDomainEx - STDMETHODIMP CreateEvidence(IUnknown** pEvidence); - - // Unload a domain, releasing the reference will only release the - // the wrapper to the domain not unload the domain. - STDMETHODIMP UnloadDomain(IUnknown* pAppDomain); - - // Returns the threads domain if there is one. - STDMETHODIMP CurrentDomain(IUnknown ** pAppDomain); -#endif // FEATURE_COMINTEROP - STDMETHODIMP MapFile( // Return code. HANDLE hFile, // [in] Handle for file HMODULE *hMapAddress // [out] HINSTANCE for mapped file @@ -125,10 +69,6 @@ class CorRuntimeHostBase LONG m_cRef; // Ref count. - // This flag will be used to ensure that a CoreCLR host can invoke Start/Stop in pairs only. - BOOL m_fStarted; - BOOL m_fAppDomainCreated; // this flag is used when an appdomain can only create a single appdomain - static ULONG m_Version; // Version of ICorRuntimeHost. // Some functions are only available in ICLRRuntimeHost. // Some functions are no-op in ICLRRuntimeHost. @@ -161,121 +101,12 @@ enum ESymbolReadingSetBy eSymbolReadingSetBy_COUNT }; - -#if defined(FEATURE_WINDOWSPHONE) -class CCLRErrorReportingManager : -#ifdef FEATURE_WINDOWSPHONE - public ICLRErrorReportingManager2 -#else - public ICLRErrorReportingManager -#endif // FEATURE_WINDOWSPHONE -{ - friend class ClrDataAccess; - friend struct _DacGlobals; - - SVAL_DECL(ECustomDumpFlavor, g_ECustomDumpFlavor); - -#ifdef FEATURE_WINDOWSPHONE - WCHAR* m_pApplicationId; - WCHAR* m_pInstanceId; - - class BucketParamsCache - { - private: - WCHAR** m_pParams; - DWORD const m_cMaxParams; - public: - BucketParamsCache(DWORD maxNumParams); - ~BucketParamsCache(); - - WCHAR const* GetAt(BucketParameterIndex index); - HRESULT SetAt(BucketParameterIndex index, WCHAR const* val); - }; - - BucketParamsCache* m_pBucketParamsCache; - - HRESULT CopyToDataCache(_In_ WCHAR** pTarget, WCHAR const* pSource); -#endif // FEATURE_WINDOWSPHONE - -public: - CCLRErrorReportingManager(); - ~CCLRErrorReportingManager(); - - STDMETHODIMP QueryInterface(REFIID riid, void** ppv); - STDMETHODIMP_(ULONG) AddRef(void); - STDMETHODIMP_(ULONG) Release(void); - - // ICLRErrorReportingManager APIs // - - // Get Watson bucket parameters for "current" exception (on calling thread). - STDMETHODIMP GetBucketParametersForCurrentException(BucketParameters *pParams); - STDMETHODIMP BeginCustomDump( ECustomDumpFlavor dwFlavor, - DWORD dwNumItems, - CustomDumpItem items[], - DWORD dwReserved); - STDMETHODIMP EndCustomDump(); - -#ifdef FEATURE_WINDOWSPHONE - // ICLRErrorReportingManager2 APIs // - - STDMETHODIMP SetApplicationData(ApplicationDataKey key, WCHAR const* pValue); - STDMETHODIMP SetBucketParametersForUnhandledException(BucketParameters const* pBucketParams, DWORD* pCountParams); - - // internal APIs - - // returns the application data for the specified key if available, else returns NULL. - WCHAR const* GetApplicationData(ApplicationDataKey key); - - // returns bucket parameter override data if available, else returns NULL. - WCHAR const* GetBucketParamOverride(BucketParameterIndex bucketParamId); -#endif // FEATURE_WINDOWSPHONE -}; - -extern CCLRErrorReportingManager g_CLRErrorReportingManager; -#endif // defined(FEATURE_WINDOWSPHONE) - -#ifdef FEATURE_IPCMAN -// @TODO:: a-meicht -// consolidate the following class with DebuggerManager. -// -class CCLRSecurityAttributeManager -{ -public: - - // Set ACL on shared section, events, and process - STDMETHODIMP SetDACL(PACL pacl); - - // Returning the current ACL that CLR is using - STDMETHODIMP GetDACL(PACL *pacl); - - static void ProcessInit(); - static void ProcessCleanUp(); - - // retrieving Host security attribute setting. If host does not set it, default to - // our default policy. - static HRESULT GetHostSecurityAttributes(SECURITY_ATTRIBUTES **ppSA); - static void DestroyHostSecurityAttributes(SECURITY_ATTRIBUTES *pSA); - - static CrstStatic m_hostSAMutex; - -private: - static PACL m_pACL; - - // Security attributes cached for the current process. - static SECURITY_ATTRIBUTES m_hostSA; - static SECURITY_DESCRIPTOR m_hostSD; - - static HRESULT CopyACL(PACL pAclOriginal, PACL ppAclNew); -}; -#endif // FEATURE_IPCMAN - class CorHost2 : public CorRuntimeHostBase #ifndef FEATURE_PAL , public IPrivateManagedExceptionReporting /* This interface is for internal Watson testing only*/ #endif // FEATURE_PAL , public ICLRRuntimeHost4 - , public CorExecutionManager { friend struct _DacGlobals; @@ -389,8 +220,6 @@ class CorHost2 : static STARTUP_FLAGS GetStartupFlags(); - static EInitializeNewDomainFlags GetAppDomainManagerInitializeNewDomainFlags(); - static BOOL HasStarted() { return m_RefCount != 0; @@ -400,9 +229,9 @@ class CorHost2 : // This flag indicates if this instance was the first to load and start CoreCLR BOOL m_fFirstToLoadCLR; - // This flag indicates if the host has authenticated with us or not - BOOL m_fIsHostAuthenticated; - + // This flag will be used to ensure that a CoreCLR host can invoke Start/Stop in pairs only. + BOOL m_fStarted; + BOOL m_fAppDomainCreated; // this flag is used when an appdomain can only create a single appdomain // Helpers for both ICLRRuntimeHost2 and ICLRPrivRuntime HRESULT _CreateAppDomain( @@ -427,39 +256,9 @@ class CorHost2 : static LONG m_RefCount; - static IHostControl *m_HostControl; - SVAL_DECL(STARTUP_FLAGS, m_dwStartupFlags); }; -class CorHostProtectionManager -{ -private: - EApiCategories m_eProtectedCategories; - bool m_fEagerSerializeGrantSet; - bool m_fFrozen; - -public: - CorHostProtectionManager(); - - // IUnknown methods - HRESULT STDMETHODCALLTYPE QueryInterface( - REFIID id, - void **pInterface); - ULONG STDMETHODCALLTYPE AddRef(); - ULONG STDMETHODCALLTYPE Release(); - - // Interface methods - virtual HRESULT STDMETHODCALLTYPE SetProtectedCategories(/* [in] */ EApiCategories eFullTrustOnlyResources); - virtual HRESULT STDMETHODCALLTYPE SetEagerSerializeGrantSets(); - - // Getters - EApiCategories GetProtectedCategories(); - bool GetEagerSerializeGrantSets() const; - - void Freeze(); -}; - #ifdef FEATURE_COMINTEROP extern "C" HRESULT STDMETHODCALLTYPE DllGetActivationFactoryImpl( diff --git a/lib/coreclr/src/inc/corinfo.h b/lib/coreclr/src/inc/corinfo.h index d430412f3bc5..9cc849043e41 100644 --- a/lib/coreclr/src/inc/corinfo.h +++ b/lib/coreclr/src/inc/corinfo.h @@ -210,14 +210,18 @@ TODO: Talk about initializing strutures before use ////////////////////////////////////////////////////////////////////////////////////////////////////////// #if !defined(SELECTANY) +#if defined(__GNUC__) + #define SELECTANY extern __attribute__((weak)) +#else #define SELECTANY extern __declspec(selectany) #endif +#endif -SELECTANY const GUID JITEEVersionIdentifier = { /* 0ba106c8-81a0-407f-99a1-928448c1eb62 */ - 0x0ba106c8, - 0x81a0, - 0x407f, - {0x99, 0xa1, 0x92, 0x84, 0x48, 0xc1, 0xeb, 0x62} +SELECTANY const GUID JITEEVersionIdentifier = { /* d609bed1-7831-49fc-bd49-b6f054dd4d46 */ + 0xd609bed1, + 0x7831, + 0x49fc, + {0xbd, 0x49, 0xb6, 0xf0, 0x54, 0xdd, 0x4d, 0x46} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -326,7 +330,7 @@ struct SYSTEMV_AMD64_CORINFO_STRUCT_REG_PASSING_DESCRIPTOR // returns true if we the eightbyte at index slotIndex is of SSE type. // // Follows the rules of the AMD64 System V ABI specification at www.x86-64.org/documentation/abi.pdf. - // Please reffer to it for definitions/examples. + // Please refer to it for definitions/examples. // bool IsSseSlot(unsigned slotIndex) const { @@ -396,7 +400,10 @@ enum CorInfoHelpFunc CORINFO_HELP_NEW_CROSSCONTEXT, // cross context new object CORINFO_HELP_NEWFAST, CORINFO_HELP_NEWSFAST, // allocator for small, non-finalizer, non-array object + CORINFO_HELP_NEWSFAST_FINALIZE, // allocator for small, finalizable, non-array object CORINFO_HELP_NEWSFAST_ALIGN8, // allocator for small, non-finalizer, non-array object, 8 byte aligned + CORINFO_HELP_NEWSFAST_ALIGN8_VC,// allocator for small, value class, 8 byte aligned + CORINFO_HELP_NEWSFAST_ALIGN8_FINALIZE, // allocator for small, finalizable, non-array object, 8 byte aligned CORINFO_HELP_NEW_MDARR, // multi-dim array helper (with or without lower bounds - dimensions passed in as vararg) CORINFO_HELP_NEW_MDARR_NONVARARG,// multi-dim array helper (with or without lower bounds - dimensions passed in as unmanaged array) CORINFO_HELP_NEWARR_1_DIRECT, // helper for any one dimensional array creation @@ -581,15 +588,14 @@ enum CorInfoHelpFunc CORINFO_HELP_RUNTIMEHANDLE_CLASS, // determine a type/field/method handle at run-time CORINFO_HELP_RUNTIMEHANDLE_CLASS_LOG, // determine a type/field/method handle at run-time, with IBC logging - // These helpers are required for MDIL backward compatibility only. They are not used by current JITed code. - CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPEHANDLE_OBSOLETE, // Convert from a TypeHandle (native structure pointer) to RuntimeTypeHandle at run-time - CORINFO_HELP_METHODDESC_TO_RUNTIMEMETHODHANDLE_OBSOLETE, // Convert from a MethodDesc (native structure pointer) to RuntimeMethodHandle at run-time - CORINFO_HELP_FIELDDESC_TO_RUNTIMEFIELDHANDLE_OBSOLETE, // Convert from a FieldDesc (native structure pointer) to RuntimeFieldHandle at run-time - CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE, // Convert from a TypeHandle (native structure pointer) to RuntimeType at run-time CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE_MAYBENULL, // Convert from a TypeHandle (native structure pointer) to RuntimeType at run-time, the type may be null CORINFO_HELP_METHODDESC_TO_STUBRUNTIMEMETHOD, // Convert from a MethodDesc (native structure pointer) to RuntimeMethodHandle at run-time CORINFO_HELP_FIELDDESC_TO_STUBRUNTIMEFIELD, // Convert from a FieldDesc (native structure pointer) to RuntimeFieldHandle at run-time + CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPEHANDLE, // Convert from a TypeHandle (native structure pointer) to RuntimeTypeHandle at run-time + CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPEHANDLE_MAYBENULL, // Convert from a TypeHandle (native structure pointer) to RuntimeTypeHandle at run-time, handle might point to a null type + + CORINFO_HELP_ARE_TYPES_EQUIVALENT, // Check whether two TypeHandles (native structure pointers) are equivalent CORINFO_HELP_VIRTUAL_FUNC_PTR, // look up a virtual method at run-time //CORINFO_HELP_VIRTUAL_FUNC_PTR_LOG, // look up a virtual method at run-time, with IBC logging @@ -642,6 +648,7 @@ enum CorInfoHelpFunc CORINFO_HELP_THROW_ARGUMENTEXCEPTION, // throw ArgumentException CORINFO_HELP_THROW_ARGUMENTOUTOFRANGEEXCEPTION, // throw ArgumentOutOfRangeException + CORINFO_HELP_THROW_NOT_IMPLEMENTED, // throw NotImplementedException CORINFO_HELP_THROW_PLATFORM_NOT_SUPPORTED, // throw PlatformNotSupportedException CORINFO_HELP_THROW_TYPE_NOT_SUPPORTED, // throw TypeNotSupportedException @@ -824,8 +831,8 @@ enum CorInfoFlag CORINFO_FLG_NOGCCHECK = 0x00200000, // This method is FCALL that has no GC check. Don't put alone in loops CORINFO_FLG_INTRINSIC = 0x00400000, // This method MAY have an intrinsic ID CORINFO_FLG_CONSTRUCTOR = 0x00800000, // This method is an instance or type initializer -// CORINFO_FLG_UNUSED = 0x01000000, -// CORINFO_FLG_UNUSED = 0x02000000, + CORINFO_FLG_AGGRESSIVE_OPT = 0x01000000, // The method may contain hot code and should be aggressively optimized if possible + CORINFO_FLG_DISABLE_TIER0_FOR_LOOPS = 0x02000000, // Indicates that tier 0 JIT should not be used for a method that contains a loop CORINFO_FLG_NOSECURITYWRAP = 0x04000000, // The method requires no security checks CORINFO_FLG_DONT_INLINE = 0x10000000, // The method should not be inlined CORINFO_FLG_DONT_INLINE_CALLER = 0x20000000, // The method should not be inlined, nor should its callers. It cannot be tail called. @@ -857,6 +864,8 @@ enum CorInfoMethodRuntimeFlags CORINFO_FLG_BAD_INLINEE = 0x00000001, // The method is not suitable for inlining CORINFO_FLG_VERIFIABLE = 0x00000002, // The method has verifiable code CORINFO_FLG_UNVERIFIABLE = 0x00000004, // The method has unverifiable code + CORINFO_FLG_SWITCHED_TO_MIN_OPT = 0x00000008, // The JIT decided to switch to MinOpt for this method, when it was not requested + CORINFO_FLG_SWITCHED_TO_OPTIMIZED = 0x00000010, // The JIT decided to switch to tier 1 for this method, when a different tier was requested }; @@ -977,8 +986,9 @@ enum CorInfoIntrinsics enum InfoAccessType { IAT_VALUE, // The info value is directly available - IAT_PVALUE, // The value needs to be accessed via an indirection - IAT_PPVALUE // The value needs to be accessed via a double indirection + IAT_PVALUE, // The value needs to be accessed via an indirection + IAT_PPVALUE, // The value needs to be accessed via a double indirection + IAT_RELPVALUE // The value needs to be accessed via a relative indirection }; enum CorInfoGCType @@ -1020,6 +1030,18 @@ enum CorInfoInlineRestrictions INLINE_SAME_THIS = 0x00000004, // You can inline only if the callee is on the same this reference as caller }; +enum CorInfoInlineTypeCheck +{ + CORINFO_INLINE_TYPECHECK_NONE = 0x00000000, // It's not okay to compare type's vtable with a native type handle + CORINFO_INLINE_TYPECHECK_PASS = 0x00000001, // It's okay to compare type's vtable with a native type handle + CORINFO_INLINE_TYPECHECK_USE_HELPER = 0x00000002, // Use a specialized helper to compare type's vtable with native type handle +}; + +enum CorInfoInlineTypeCheckSource +{ + CORINFO_INLINE_TYPECHECK_SOURCE_VTABLE = 0x00000000, // Type handle comes from the vtable + CORINFO_INLINE_TYPECHECK_SOURCE_TOKEN = 0x00000001, // Type handle comes from an ldtoken +}; // If you add more values here, keep it in sync with TailCallTypeMap in ..\vm\ClrEtwAll.man // and the string enum in CEEInfo::reportTailCallDecision in ..\vm\JITInterface.cpp @@ -1243,6 +1265,7 @@ struct CORINFO_METHOD_INFO // Constant Lookups are either: // IAT_VALUE: immediate (relocatable) values, // IAT_PVALUE: immediate values access via an indirection through an immediate (relocatable) address +// IAT_RELPVALUE: immediate values access via a relative indirection through an immediate offset // IAT_PPVALUE: immediate values access via a double indirection through an immediate (relocatable) address // // Runtime Lookups @@ -1268,9 +1291,10 @@ struct CORINFO_CONST_LOOKUP // If the handle is obtained at compile-time, then this handle is the "exact" handle (class, method, or field) // Otherwise, it's a representative... // If accessType is - // IAT_VALUE --> "handle" stores the real handle or "addr " stores the computed address - // IAT_PVALUE --> "addr" stores a pointer to a location which will hold the real handle - // IAT_PPVALUE --> "addr" stores a double indirection to a location which will hold the real handle + // IAT_VALUE --> "handle" stores the real handle or "addr " stores the computed address + // IAT_PVALUE --> "addr" stores a pointer to a location which will hold the real handle + // IAT_RELPVALUE --> "addr" stores a relative pointer to a location which will hold the real handle + // IAT_PPVALUE --> "addr" stores a double indirection to a location which will hold the real handle InfoAccessType accessType; union @@ -1361,6 +1385,7 @@ struct CORINFO_LOOKUP // Otherwise, it's a representative... If accessType is // IAT_VALUE --> "handle" stores the real handle or "addr " stores the computed address // IAT_PVALUE --> "addr" stores a pointer to a location which will hold the real handle + // IAT_RELPVALUE --> "addr" stores a relative pointer to a location which will hold the real handle // IAT_PPVALUE --> "addr" stores a double indirection to a location which will hold the real handle CORINFO_CONST_LOOKUP constLookup; }; @@ -1788,6 +1813,8 @@ struct CORINFO_EE_INFO unsigned offsetOfCalleeSavedFP; unsigned offsetOfCallTarget; unsigned offsetOfReturnAddress; + // This offset is used only for ARM + unsigned offsetOfSPAfterProlog; } inlinedCallFrameInfo; @@ -1926,6 +1953,21 @@ struct CORINFO_VarArgInfo #include +#define SIZEOF__CORINFO_Object TARGET_POINTER_SIZE /* methTable */ + +#define OFFSETOF__CORINFO_Array__length SIZEOF__CORINFO_Object +#ifdef _TARGET_64BIT_ +#define OFFSETOF__CORINFO_Array__data (OFFSETOF__CORINFO_Array__length + sizeof(unsigned __int32) /* length */ + sizeof(unsigned __int32) /* alignpad */) +#else +#define OFFSETOF__CORINFO_Array__data (OFFSETOF__CORINFO_Array__length + sizeof(unsigned __int32) /* length */) +#endif + +#define OFFSETOF__CORINFO_TypedReference__dataPtr 0 +#define OFFSETOF__CORINFO_TypedReference__type (OFFSETOF__CORINFO_TypedReference__dataPtr + TARGET_POINTER_SIZE /* dataPtr */) + +#define OFFSETOF__CORINFO_String__stringLen SIZEOF__CORINFO_Object +#define OFFSETOF__CORINFO_String__chars (OFFSETOF__CORINFO_String__stringLen + sizeof(unsigned __int32) /* stringLen */) + enum CorInfoSecurityRuntimeChecks { CORINFO_ACCESS_SECURITY_NONE = 0, @@ -1944,9 +1986,6 @@ struct DelegateCtorArgs // use offsetof to get the offset of the fields above #include // offsetof -#ifndef offsetof -#define offsetof(s,m) ((size_t)&(((s *)0)->m)) -#endif // Guard-stack cookie for preventing against stack buffer overruns typedef SIZE_T GSCookie; @@ -2318,6 +2357,11 @@ class ICorStaticInfo // Quick check whether the type is a value class. Returns the same value as getClassAttribs(cls) & CORINFO_FLG_VALUECLASS, except faster. virtual BOOL isValueClass(CORINFO_CLASS_HANDLE cls) = 0; + // Decides how the JIT should do the optimization to inline the check for + // GetTypeFromHandle(handle) == obj.GetType() (for CORINFO_INLINE_TYPECHECK_SOURCE_VTABLE) + // GetTypeFromHandle(X) == GetTypeFromHandle(Y) (for CORINFO_INLINE_TYPECHECK_SOURCE_TOKEN) + virtual CorInfoInlineTypeCheck canInlineTypeCheck(CORINFO_CLASS_HANDLE cls, CorInfoInlineTypeCheckSource source) = 0; + // If this method returns true, JIT will do optimization to inline the check for // GetTypeFromHandle(handle) == obj.GetType() virtual BOOL canInlineTypeCheckWithObjectVTable(CORINFO_CLASS_HANDLE cls) = 0; @@ -2367,6 +2411,15 @@ class ICorStaticInfo CORINFO_CLASS_HANDLE cls ) = 0; + // return the number of bytes needed by an instance of the class allocated on the heap + virtual unsigned getHeapClassSize( + CORINFO_CLASS_HANDLE cls + ) = 0; + + virtual BOOL canAllocateOnStack( + CORINFO_CLASS_HANDLE cls + ) = 0; + virtual unsigned getClassAlignmentRequirement ( CORINFO_CLASS_HANDLE cls, BOOL fDoubleAlignHint = FALSE @@ -2405,7 +2458,8 @@ class ICorStaticInfo // returns the "NEW" helper optimized for "newCls." virtual CorInfoHelpFunc getNewHelper( CORINFO_RESOLVED_TOKEN * pResolvedToken, - CORINFO_METHOD_HANDLE callerHandle + CORINFO_METHOD_HANDLE callerHandle, + bool * pHasSideEffects = NULL /* OUT */ ) = 0; // returns the newArr (1-Dim array) helper optimized for "arrayCls." @@ -2546,12 +2600,22 @@ class ICorStaticInfo CORINFO_CLASS_HANDLE cls2 ) = 0; - // returns is the intersection of cls1 and cls2. + // Returns the intersection of cls1 and cls2. virtual CORINFO_CLASS_HANDLE mergeClasses( CORINFO_CLASS_HANDLE cls1, CORINFO_CLASS_HANDLE cls2 ) = 0; + // Returns true if cls2 is known to be a more specific type + // than cls1 (a subtype or more restrictive shared type) + // for purposes of jit type tracking. This is a hint to the + // jit for optimization; it does not have correctness + // implications. + virtual BOOL isMoreSpecificType( + CORINFO_CLASS_HANDLE cls1, + CORINFO_CLASS_HANDLE cls2 + ) = 0; + // Given a class handle, returns the Parent type. // For COMObjectType, it returns Class Handle of System.Object. // Returns 0 if System.Object is passed in. @@ -2624,7 +2688,7 @@ class ICorStaticInfo // result of calling getMemberParent. virtual CorInfoType getFieldType( CORINFO_FIELD_HANDLE field, - CORINFO_CLASS_HANDLE *structType, + CORINFO_CLASS_HANDLE *structType = NULL, CORINFO_CLASS_HANDLE memberParent = NULL /* IN */ ) = 0; @@ -2852,12 +2916,14 @@ class ICorStaticInfo ) = 0; // Return method name as in metadata, or nullptr if there is none, - // and optionally return the class and namespace names as in metadata. + // and optionally return the class, enclosing class, and namespace names + // as in metadata. // Suitable for non-debugging use. virtual const char* getMethodNameFromMetadata( - CORINFO_METHOD_HANDLE ftn, /* IN */ - const char **className, /* OUT */ - const char **namespaceName /* OUT */ + CORINFO_METHOD_HANDLE ftn, /* IN */ + const char **className, /* OUT */ + const char **namespaceName, /* OUT */ + const char **enclosingClassName /* OUT */ ) = 0; // this function is for debugging only. It returns a value that @@ -3093,6 +3159,22 @@ class ICorDynamicInfo : public ICorStaticInfo void **ppIndirection = NULL ) = 0; + // If pIsSpeculative is NULL, return the class handle for the value of ref-class typed + // static readonly fields, if there is a unique location for the static and the class + // is already initialized. + // + // If pIsSpeculative is not NULL, fetch the class handle for the value of all ref-class + // typed static fields, if there is a unique location for the static and the field is + // not null. + // + // Set *pIsSpeculative true if this type may change over time (field is not readonly or + // is readonly but class has not yet finished initialization). Set *pIsSpeculative false + // if this type will not change. + virtual CORINFO_CLASS_HANDLE getStaticFieldCurrentClass( + CORINFO_FIELD_HANDLE field, + bool *pIsSpeculative = NULL + ) = 0; + // registers a vararg sig & returns a VM cookie for it (which can contain other stuff) virtual CORINFO_VARARGS_HANDLE getVarArgsHandle( CORINFO_SIG_INFO *pSig, @@ -3153,6 +3235,12 @@ class ICorDynamicInfo : public ICorStaticInfo CORINFO_SIG_INFO *pSig, CorInfoHelperTailCallSpecialHandling flags ) = 0; + + // Optionally, convert calli to regular method call. This is for PInvoke argument marshalling. + virtual bool convertPInvokeCalliToCall( + CORINFO_RESOLVED_TOKEN * pResolvedToken, + bool fMustConvert + ) = 0; }; /**********************************************************************************/ diff --git a/lib/coreclr/src/inc/corjit.h b/lib/coreclr/src/inc/corjit.h index cadfdff387c5..6892e06a2cda 100644 --- a/lib/coreclr/src/inc/corjit.h +++ b/lib/coreclr/src/inc/corjit.h @@ -34,32 +34,6 @@ #include -#define CORINFO_STACKPROBE_DEPTH 256*sizeof(UINT_PTR) // Guaranteed stack until an fcall/unmanaged - // code can set up a frame. Please make sure - // this is less than a page. This is due to - // 2 reasons: - // - // If we need to probe more than a page - // size, we need one instruction per page - // (7 bytes per instruction) - // - // The JIT wants some safe space so it doesn't - // have to put a probe on every call site. It achieves - // this by probing n bytes more than CORINFO_STACKPROBE_DEPTH - // If it hasn't used more than n for its own stuff, it - // can do a call without doing any other probe - // - // In any case, we do really expect this define to be - // small, as setting up a frame should be only pushing - // a couple of bytes on the stack - // - // There is a compile time assert - // in the x86 jit to protect you from this - // - - - - /*****************************************************************************/ // These are error codes returned by CompileMethod enum CorJitResult @@ -318,7 +292,7 @@ class ICorJitCompiler class ICorJitInfo : public ICorDynamicInfo { public: - // return memory manager that the JIT can use to allocate a regular memory + // OBSOLETE: return memory manager that the JIT can use to allocate a regular memory virtual IEEMemoryManager* getMemoryManager() = 0; // get a block of memory for the code, readonly data, and read-write data @@ -415,26 +389,26 @@ class ICorJitInfo : public ICorDynamicInfo virtual void reportFatalError(CorJitResult result) = 0; - struct ProfileBuffer // Also defined here: code:CORBBTPROF_BLOCK_DATA + struct BlockCounts // Also defined by: CORBBTPROF_BLOCK_DATA { - ULONG ILOffset; - ULONG ExecutionCount; + UINT32 ILOffset; + UINT32 ExecutionCount; }; // allocate a basic block profile buffer where execution counts will be stored // for jitted basic blocks. - virtual HRESULT allocBBProfileBuffer ( - ULONG count, // The number of basic blocks that we have - ProfileBuffer ** profileBuffer + virtual HRESULT allocMethodBlockCounts ( + UINT32 count, // The number of basic blocks that we have + BlockCounts ** pBlockCounts // pointer to array of tuples ) = 0; // get profile information to be used for optimizing the current method. The format // of the buffer is the same as the format the JIT passes to allocBBProfileBuffer. - virtual HRESULT getBBProfileData( + virtual HRESULT getMethodBlockCounts( CORINFO_METHOD_HANDLE ftnHnd, - ULONG * count, // The number of basic blocks that we have - ProfileBuffer ** profileBuffer, - ULONG * numRuns + UINT32 * pCount, // pointer to the count of tuples + BlockCounts ** pBlockCounts, // pointer to array of tuples + UINT32 * pNumRuns // pointer to the total number of profile scenarios run ) = 0; // Associates a native call site, identified by its offset in the native code stream, with diff --git a/lib/coreclr/src/inc/corjithost.h b/lib/coreclr/src/inc/corjithost.h index 8242fab2b87c..b2ab80646ba3 100644 --- a/lib/coreclr/src/inc/corjithost.h +++ b/lib/coreclr/src/inc/corjithost.h @@ -15,15 +15,11 @@ class ICorJitHost { public: - // Allocate memory of the given size in bytes. All bytes of the returned block - // must be initialized to zero. If `usePageAllocator` is true, the implementation - // should use an allocator that deals in OS pages if one exists. - virtual void* allocateMemory(size_t size, bool usePageAllocator = false) = 0; + // Allocate memory of the given size in bytes. + virtual void* allocateMemory(size_t size) = 0; - // Frees memory previous obtained by a call to `ICorJitHost::allocateMemory`. The - // value of the `usePageAllocator` parameter must match the value that was - // provided to the call to used to allocate the memory. - virtual void freeMemory(void* block, bool usePageAllocator = false) = 0; + // Frees memory previous obtained by a call to `ICorJitHost::allocateMemory`. + virtual void freeMemory(void* block) = 0; // Return an integer config value for the given key, if any exists. virtual int getIntConfigValue( @@ -43,6 +39,20 @@ class ICorJitHost virtual void freeStringConfigValue( const wchar_t* value ) = 0; + + // Allocate memory slab of the given size in bytes. The host is expected to pool + // these for a good performance. + virtual void* allocateSlab(size_t size, size_t* pActualSize) + { + *pActualSize = size; + return allocateMemory(size); + } + + // Free memory slab of the given size in bytes. + virtual void freeSlab(void* slab, size_t actualSize) + { + freeMemory(slab); + } }; #endif diff --git a/lib/coreclr/src/inc/corpriv.h b/lib/coreclr/src/inc/corpriv.h index edd55e911103..cb504bdd022f 100644 --- a/lib/coreclr/src/inc/corpriv.h +++ b/lib/coreclr/src/inc/corpriv.h @@ -36,12 +36,6 @@ STDAPI MetaDataGetDispenser( // Return HRESULT REFIID riid, // Interface wanted on class factory. LPVOID FAR *ppv); // Return interface pointer here. -// Helper function to check whether policy allows accessing the file -STDAPI RuntimeCheckLocationAccess(LPCWSTR wszLocation); -STDAPI RuntimeIsNativeImageOptedOut(IAssemblyName* pAssemblyDef); - -LocaleID RuntimeGetFileSystemLocale(); - BOOL RuntimeFileNotFound(HRESULT hr); // Helper function to get an Internal interface with an in-memory metadata section @@ -96,10 +90,7 @@ enum MDInternalImportFlags MDInternalImport_TrustedNativeImage = 2, // The image is a native image, and so its format can be trusted MDInternalImport_ILMetaData = 4, // Open the IL metadata, even if this is a native image MDInternalImport_TrustedNativeImage_and_IL = MDInternalImport_TrustedNativeImage | MDInternalImport_ILMetaData, - MDInternalImport_NativeImageInstall = 0x100, // The image is a native image that is being installed into NIC #endif - MDInternalImport_CheckLongPath =8, // also check long version of the path - MDInternalImport_CheckShortPath =0x10, // also check long version of the path MDInternalImport_OnlyLookInCache =0x20, // Only look in the cache. (If the cache does not have the image already loaded, return NULL) }; // enum MDInternalImportFlags @@ -309,9 +300,6 @@ typedef enum CorOpenFlagsInternal #endif // %%Classes: ---------------------------------------------------------------- -#ifndef offsetof -#define offsetof(s,f) ((ULONG)(&((s*)0)->f)) -#endif #ifndef lengthof #define lengthof(rg) (sizeof(rg)/sizeof(rg[0])) #endif @@ -386,17 +374,6 @@ DECLARE_INTERFACE_(ICeeGenInternal, IUnknown) STDMETHOD (SetInitialGrowth) (DWORD growth) PURE; }; -// =========================================================================== -#ifdef FEATURE_PREJIT -// =========================================================================== - - -// Use the default JIT compiler -#define DEFAULT_NGEN_COMPILER_DLL_NAME W("clrjit.dll") - - -struct CORCOMPILE_ASSEMBLY_SIGNATURE; - // // IGetIMDInternalImport // @@ -406,7 +383,7 @@ struct CORCOMPILE_ASSEMBLY_SIGNATURE; // RegMeta, WinMDImport - supports the internal GetMetaDataInternalInterfaceFromPublic() "api". // // {92B2FEF9-F7F5-420d-AD42-AECEEE10A1EF} -EXTERN_GUID(IID_IGetIMDInternalImport, 0x92b2fef9, 0xf7f5, 0x420d, 0xad, 0x42, 0xae, 0xce, 0xee, 0x10, 0xa1, 0xef); +EXTERN_GUID(IID_IGetIMDInternalImport, 0x92b2fef9, 0xf7f5, 0x420d, 0xad, 0x42, 0xae, 0xce, 0xee, 0x10, 0xa1, 0xef); #undef INTERFACE #define INTERFACE IGetIMDInternalImport DECLARE_INTERFACE_(IGetIMDInternalImport, IUnknown) @@ -416,7 +393,12 @@ DECLARE_INTERFACE_(IGetIMDInternalImport, IUnknown) ) PURE; }; +// =========================================================================== +#ifdef FEATURE_PREJIT +// =========================================================================== +// Use the default JIT compiler +#define DEFAULT_NGEN_COMPILER_DLL_NAME W("clrjit.dll") #ifndef DACCESS_COMPILE @@ -487,54 +469,6 @@ STDAPI GetCORVersionInternal( DWORD cchBuffer, __out DWORD *pdwLength); - -#ifdef FEATURE_PREJIT - -//********************************************************************** -// Access to native image validation logic in the runtime. -// -// An interface only a mother could live as this logic should really be encapsulated in -// the native binder. But for historical reasons, it lives in the VM directory -// and is shared by the desktop and coreclr's which have separate native binders. -// Hence, this interface inherits a lot of "baggage." - - - -// A small shim around PEAssemblies/IBindResult that allow us to write Fusion/CLR-agnostic code -// for logging native bind failures to the Fusion log/CLR log. -// -// These objects are stack-based and non-thread-safe. They are created for the duration of a single RuntimeVerify call. -// The methods are expected to compute their data lazily as they are only used in bind failures or in checked builds. -// -// This class also exposes the IFusionBindLog pointer. This isn't really the appropriate place to expose that but -// it serves to avoid compiling references to IFUsionBindLog into code that doesn't define FEATURE_FUSION. -class LoggableAssembly -{ - public: - virtual SString DisplayString() = 0; // Returns an unspecified representation suitable for injecting into log messages. -}; - - -// Validates that an NI matches the running CLR, OS, CPU, etc. -BOOL RuntimeVerifyNativeImageVersion(const CORCOMPILE_VERSION_INFO *pVerInfo, LoggableAssembly *pLogAsm); - -// Validates that an NI matches the required flavor (debug, instrumented, etc.) -BOOL RuntimeVerifyNativeImageFlavor(const CORCOMPILE_VERSION_INFO *pVerInfo, LoggableAssembly *pLogAsm); - -// Validates that a hard-dep matches the a parent NI's compile-time hard-dep. -BOOL RuntimeVerifyNativeImageDependency(const CORCOMPILE_NGEN_SIGNATURE &ngenSigExpected, - const CORCOMPILE_VERSION_INFO *pActual, - LoggableAssembly *pLogAsm); - -BOOL RuntimeVerifyNativeImageDependency(const CORCOMPILE_DEPENDENCY *pExpected, - const CORCOMPILE_VERSION_INFO *pActual, - LoggableAssembly *pLogAsm); - -#endif // FEATURE_PREJIT - - - - #endif // _CORPRIV_H_ // EOF ======================================================================= diff --git a/lib/coreclr/src/inc/corprof.idl b/lib/coreclr/src/inc/corprof.idl index f5da6e25a082..1d66137b10bc 100644 --- a/lib/coreclr/src/inc/corprof.idl +++ b/lib/coreclr/src/inc/corprof.idl @@ -125,6 +125,8 @@ import "wtypes.idl"; import "unknwn.idl"; #endif +#define STDMETHODCALLTYPE + typedef UINT_PTR ProcessID; typedef UINT_PTR AssemblyID; typedef UINT_PTR AppDomainID; @@ -303,13 +305,13 @@ typedef struct _COR_PRF_METHOD * bits cleared for COR_PRF_ENABLE_FRAME_INFO, COR_PRF_ENABLE_FUNCTION_RETVAL * and COR_PRF_ENABLE_FUNCTION_ARGS. */ -typedef void __stdcall FunctionEnter( +typedef void STDMETHODCALLTYPE FunctionEnter( FunctionID funcID); -typedef void __stdcall FunctionLeave( +typedef void STDMETHODCALLTYPE FunctionLeave( FunctionID funcID); -typedef void __stdcall FunctionTailcall( +typedef void STDMETHODCALLTYPE FunctionTailcall( FunctionID funcID); /* @@ -320,19 +322,19 @@ typedef void __stdcall FunctionTailcall( * functionality, use the FunctionEnter3/Leave3/Tailcall3 callbacks. */ -typedef void __stdcall FunctionEnter2( +typedef void STDMETHODCALLTYPE FunctionEnter2( FunctionID funcId, UINT_PTR clientData, COR_PRF_FRAME_INFO func, COR_PRF_FUNCTION_ARGUMENT_INFO *argumentInfo); -typedef void __stdcall FunctionLeave2( +typedef void STDMETHODCALLTYPE FunctionLeave2( FunctionID funcId, UINT_PTR clientData, COR_PRF_FRAME_INFO func, COR_PRF_FUNCTION_ARGUMENT_RANGE *retvalRange); -typedef void __stdcall FunctionTailcall2( +typedef void STDMETHODCALLTYPE FunctionTailcall2( FunctionID funcId, UINT_PTR clientData, COR_PRF_FRAME_INFO func); @@ -348,13 +350,13 @@ typedef void __stdcall FunctionTailcall2( * true FunctionID of the function. */ -typedef void __stdcall FunctionEnter3( +typedef void STDMETHODCALLTYPE FunctionEnter3( FunctionIDOrClientID functionIDOrClientID); -typedef void __stdcall FunctionLeave3( +typedef void STDMETHODCALLTYPE FunctionLeave3( FunctionIDOrClientID functionIDOrClientID); -typedef void __stdcall FunctionTailcall3( +typedef void STDMETHODCALLTYPE FunctionTailcall3( FunctionIDOrClientID functionIDOrClientID); /* @@ -371,15 +373,15 @@ typedef void __stdcall FunctionTailcall3( * It is only valid during the callback to which it is passed. */ -typedef void __stdcall FunctionEnter3WithInfo( +typedef void STDMETHODCALLTYPE FunctionEnter3WithInfo( FunctionIDOrClientID functionIDOrClientID, COR_PRF_ELT_INFO eltInfo); -typedef void __stdcall FunctionLeave3WithInfo( +typedef void STDMETHODCALLTYPE FunctionLeave3WithInfo( FunctionIDOrClientID functionIDOrClientID, COR_PRF_ELT_INFO eltInfo); -typedef void __stdcall FunctionTailcall3WithInfo( +typedef void STDMETHODCALLTYPE FunctionTailcall3WithInfo( FunctionIDOrClientID functionIDOrClientID, COR_PRF_ELT_INFO eltInfo); @@ -416,6 +418,9 @@ typedef HRESULT __stdcall StackSnapshotCallback( BYTE context[], void *clientData); +/* Callback for each object reference */ +typedef BOOL STDMETHODCALLTYPE ObjectReferenceCallback(ObjectID root, ObjectID* reference, void *clientData); + typedef enum { // These flags represent classes of callback events @@ -587,7 +592,8 @@ typedef enum COR_PRF_MONITOR_SUSPENDS | COR_PRF_MONITOR_CLASS_LOADS | COR_PRF_MONITOR_EXCEPTIONS | - COR_PRF_MONITOR_JIT_COMPILATION, + COR_PRF_MONITOR_JIT_COMPILATION | + COR_PRF_ENABLE_REJIT, // MONITOR_IMMUTABLE represents all flags that may only be set during initialization. // Trying to change any of these flags elsewhere will result in a @@ -596,7 +602,6 @@ typedef enum COR_PRF_MONITOR_REMOTING | COR_PRF_MONITOR_REMOTING_COOKIE | COR_PRF_MONITOR_REMOTING_ASYNC | - COR_PRF_ENABLE_REJIT | COR_PRF_ENABLE_INPROC_DEBUGGING | COR_PRF_ENABLE_JIT_MAPS | COR_PRF_DISABLE_OPTIMIZATIONS | @@ -625,9 +630,21 @@ typedef enum COR_PRF_HIGH_DISABLE_TIERED_COMPILATION = 0x00000008, + COR_PRF_HIGH_BASIC_GC = 0x00000010, + + // Enables the MovedReferences/MovedReferences2 callback for compacting GCs only. + COR_PRF_HIGH_MONITOR_GC_MOVED_OBJECTS = 0x00000020, + COR_PRF_HIGH_REQUIRE_PROFILE_IMAGE = 0, - COR_PRF_HIGH_ALLOWABLE_AFTER_ATTACH = COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED | COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS, + // Enables the large object allocation monitoring according to the LOH threshold. + COR_PRF_HIGH_MONITOR_LARGEOBJECT_ALLOCATED = 0x00000040, + + COR_PRF_HIGH_ALLOWABLE_AFTER_ATTACH = COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED | + COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS | + COR_PRF_HIGH_BASIC_GC | + COR_PRF_HIGH_MONITOR_GC_MOVED_OBJECTS | + COR_PRF_HIGH_MONITOR_LARGEOBJECT_ALLOCATED, // MONITOR_IMMUTABLE represents all flags that may only be set during initialization. // Trying to change any of these flags elsewhere will result in a @@ -703,6 +720,21 @@ typedef enum COR_PRF_CORE_CLR = 0x2, } COR_PRF_RUNTIME_TYPE; +/* + * COR_PRF_REJIT_FLAGS contains values used to control the behavior of + * RequestReJITWithInliners. + */ +typedef enum +{ + // ReJITted methods will be prevented from being inlined + COR_PRF_REJIT_BLOCK_INLINING = 0x1, + + // This flag controls whether the runtime will call GetReJITParameters + // on methods that are ReJITted because they inline a method that was requested + // for ReJIT + COR_PRF_REJIT_INLINING_CALLBACKS = 0x2 +} COR_PRF_REJIT_FLAGS; + /* -------------------------------------------------------------------------- * * Forward declarations @@ -3907,6 +3939,47 @@ interface ICorProfilerInfo9 : ICorProfilerInfo8 //Given the native code start address, return the the blocks of virtual memory that store this code (method code is not necessarily stored in a single contiguous memory region) HRESULT GetCodeInfo4(UINT_PTR pNativeCodeStartAddress, ULONG32 cCodeInfos, ULONG32* pcCodeInfos, COR_PRF_CODE_INFO codeInfos[]); +}; + +[ + object, + uuid(2F1B5152-C869-40C9-AA5F-3ABE026BD720), + pointer_default(unique), + local +] +interface ICorProfilerInfo10 : ICorProfilerInfo9 +{ + // Given an ObjectID, callback and clientData, enumerates each object reference (if any). + HRESULT EnumerateObjectReferences(ObjectID objectId, ObjectReferenceCallback callback, void* clientData); + + // Given an ObjectID, determines whether it is in a read only segment. + HRESULT IsFrozenObject(ObjectID objectId, BOOL *pbFrozen); + + // Gets the value of the configured LOH Threshold. + HRESULT GetLOHObjectSizeThreshold(DWORD *pThreshold); + + /* + * This method will ReJIT the methods requested, as well as any inliners + * of the methods requested. + * + * RequestReJIT does not do any tracking of inlined methods. The profiler + * was expected to track inlining and call RequestReJIT for all inliners + * to make sure every instance of an inlined method was ReJITted. + * This poses a problem with ReJIT on attach, since the profiler was + * not present to monitor inlining. This method can be called to guarantee + * that the full set of inliners will be ReJITted as well. + */ + HRESULT RequestReJITWithInliners( + [in] DWORD dwRejitFlags, + [in] ULONG cFunctions, + [in, size_is(cFunctions)] ModuleID moduleIds[], + [in, size_is(cFunctions)] mdMethodDef methodIds[]); + + // Suspend the runtime without performing a GC. + HRESULT SuspendRuntime(); + + // Restart the runtime from a previous suspension. + HRESULT ResumeRuntime(); } /* diff --git a/lib/coreclr/src/inc/cortpoolhdr.h b/lib/coreclr/src/inc/cortpoolhdr.h deleted file mode 100644 index 1db08b121e98..000000000000 --- a/lib/coreclr/src/inc/cortpoolhdr.h +++ /dev/null @@ -1,50 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -//+------------------------------------------------------------------------ -// -// Declare DLL entry points for Cor API to threadpool -// -//------------------------------------------------------------------------- - -#ifdef EXPORTING_THREADPOOL_API -#define DllExportOrImport extern "C" __declspec (dllexport) -#else -#define DllExportOrImport extern "C" -#endif - -typedef VOID (__stdcall *WAITORTIMERCALLBACK)(PVOID, BOOL); - -DllExportOrImport BOOL __cdecl CorRegisterWaitForSingleObject(PHANDLE phNewWaitObject, - HANDLE hWaitObject, - WAITORTIMERCALLBACK Callback, - PVOID Context, - ULONG timeout, - BOOL executeOnlyOnce ); - - - -DllExportOrImport BOOL __cdecl CorUnregisterWait(HANDLE hWaitObject,HANDLE CompletionEvent); - -DllExportOrImport BOOL __cdecl CorQueueUserWorkItem(LPTHREAD_START_ROUTINE Function, - PVOID Context, - BOOL executeOnlyOnce ); - - -DllExportOrImport BOOL __cdecl CorCreateTimer(PHANDLE phNewTimer, - WAITORTIMERCALLBACK Callback, - PVOID Parameter, - DWORD DueTime, - DWORD Period); - -DllExportOrImport BOOL __cdecl CorChangeTimer(HANDLE Timer, - ULONG DueTime, - ULONG Period); - -DllExportOrImport BOOL __cdecl CorDeleteTimer(HANDLE Timer, - HANDLE CompletionEvent); - -DllExportOrImport VOID __cdecl CorBindIoCompletionCallback(HANDLE fileHandle, LPOVERLAPPED_COMPLETION_ROUTINE callback); - - -DllExportOrImport VOID __cdecl CorDoDelegateInvocation(int cookie); diff --git a/lib/coreclr/src/inc/cortypeinfo.h b/lib/coreclr/src/inc/cortypeinfo.h index 8fdfe43c5fa9..6cc73257684e 100644 --- a/lib/coreclr/src/inc/cortypeinfo.h +++ b/lib/coreclr/src/inc/cortypeinfo.h @@ -4,6 +4,14 @@ // This describes information about the COM+ primitive types +// +// Note: This file gets parsed by the Mono IL Linker (https://github.com/mono/linker/) which may throw an exception during parsing. +// Specifically, this (https://github.com/mono/linker/blob/master/corebuild/integration/ILLink.Tasks/CreateRuntimeRootDescriptorFile.cs) will try to +// parse this header, and it may throw an exception while doing that. If you edit this file and get a build failure on msbuild.exe D:\repos\coreclr\build.proj +// you might want to check out the parser linked above. +// + + #define NO_SIZE ((BYTE)-1) // TYPEINFO(type (CorElementType), namespace, class, size, gcType, isArray,isPrim, isFloat,isModifier,isGenVariable) diff --git a/lib/coreclr/src/inc/crosscomp.h b/lib/coreclr/src/inc/crosscomp.h index 200c343a454a..62d1175d3294 100644 --- a/lib/coreclr/src/inc/crosscomp.h +++ b/lib/coreclr/src/inc/crosscomp.h @@ -8,7 +8,11 @@ #pragma once -#if defined(_X86_) && defined(_TARGET_ARM_) // Host X86 managing ARM related code +#if (!defined(_WIN64) && defined(_TARGET_64BIT_)) || (defined(_WIN64) && !defined(_TARGET_64BIT_)) +#define CROSSBITNESS_COMPILE +#endif + +#if !defined(_ARM_) && defined(_TARGET_ARM_) // Non-ARM Host managing ARM related code #ifndef CROSS_COMPILE #define CROSS_COMPILE @@ -89,6 +93,7 @@ typedef struct DECLSPEC_ALIGN(8) _T_CONTEXT { // #ifndef FEATURE_PAL +#ifdef _X86_ typedef struct _RUNTIME_FUNCTION { DWORD BeginAddress; DWORD UnwindData; @@ -115,6 +120,7 @@ typedef struct _UNWIND_HISTORY_TABLE { DWORD HighAddress; UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE]; } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE; +#endif // _X86_ #endif // !FEATURE_PAL @@ -171,8 +177,15 @@ typedef struct _T_DISPATCHER_CONTEXT { PUCHAR NonVolatileRegisters; } T_DISPATCHER_CONTEXT, *PT_DISPATCHER_CONTEXT; +#if defined(FEATURE_PAL) || defined(_X86_) #define T_RUNTIME_FUNCTION RUNTIME_FUNCTION #define PT_RUNTIME_FUNCTION PRUNTIME_FUNCTION +#else +typedef struct _T_RUNTIME_FUNCTION { + DWORD BeginAddress; + DWORD UnwindData; +} T_RUNTIME_FUNCTION, *PT_RUNTIME_FUNCTION; +#endif #elif defined(_AMD64_) && defined(_TARGET_ARM64_) // Host amd64 managing ARM64 related code @@ -343,7 +356,7 @@ typedef struct _T_KNONVOLATILE_CONTEXT_POINTERS { } T_KNONVOLATILE_CONTEXT_POINTERS, *PT_KNONVOLATILE_CONTEXT_POINTERS; -#else // !(defined(_X86_) && defined(_TARGET_ARM_)) && !(defined(_AMD64_) && defined(_TARGET_ARM64_)) +#else #define T_CONTEXT CONTEXT #define PT_CONTEXT PCONTEXT diff --git a/lib/coreclr/src/inc/crsttypes.h b/lib/coreclr/src/inc/crsttypes.h index c4ccfff2c6b5..e02c1206ea2e 100644 --- a/lib/coreclr/src/inc/crsttypes.h +++ b/lib/coreclr/src/inc/crsttypes.h @@ -35,160 +35,141 @@ enum CrstType CrstCLRPrivBinderMaps = 16, CrstCLRPrivBinderMapsAdd = 17, CrstCodeFragmentHeap = 18, - CrstCOMWrapperCache = 19, - CrstConnectionNameTable = 20, - CrstContexts = 21, - CrstCoreCLRBinderLog = 22, - CrstCrstCLRPrivBinderLocalWinMDPath = 23, - CrstCSPCache = 24, - CrstDataTest1 = 25, - CrstDataTest2 = 26, - CrstDbgTransport = 27, - CrstDeadlockDetection = 28, - CrstDebuggerController = 29, - CrstDebuggerFavorLock = 30, - CrstDebuggerHeapExecMemLock = 31, - CrstDebuggerHeapLock = 32, - CrstDebuggerJitInfo = 33, - CrstDebuggerMutex = 34, - CrstDelegateToFPtrHash = 35, - CrstDomainLocalBlock = 36, - CrstDynamicIL = 37, - CrstDynamicMT = 38, - CrstDynLinkZapItems = 39, - CrstEtwTypeLogHash = 40, - CrstEventPipe = 41, - CrstEventStore = 42, - CrstException = 43, - CrstExecuteManLock = 44, - CrstExecuteManRangeLock = 45, - CrstFCall = 46, - CrstFriendAccessCache = 47, - CrstFuncPtrStubs = 48, - CrstFusionAppCtx = 49, - CrstFusionAssemblyDownload = 50, - CrstFusionBindContext = 51, - CrstFusionBindResult = 52, - CrstFusionClb = 53, - CrstFusionClosure = 54, - CrstFusionClosureGraph = 55, - CrstFusionConfigSettings = 56, - CrstFusionDownload = 57, - CrstFusionIsoLibInit = 58, - CrstFusionLoadContext = 59, - CrstFusionLog = 60, - CrstFusionNgenIndex = 61, - CrstFusionNgenIndexPool = 62, - CrstFusionPcyCache = 63, - CrstFusionPolicyConfigPool = 64, - CrstFusionSingleUse = 65, - CrstFusionWarningLog = 66, - CrstGCCover = 67, - CrstGCMemoryPressure = 68, - CrstGlobalStrLiteralMap = 69, - CrstHandleTable = 70, - CrstHostAssemblyMap = 71, - CrstHostAssemblyMapAdd = 72, - CrstIbcProfile = 73, - CrstIJWFixupData = 74, - CrstIJWHash = 75, - CrstILFingerprintCache = 76, - CrstILStubGen = 77, - CrstInlineTrackingMap = 78, - CrstInstMethodHashTable = 79, - CrstInterfaceVTableMap = 80, - CrstInterop = 81, - CrstInteropData = 82, - CrstIOThreadpoolWorker = 83, - CrstIsJMCMethod = 84, - CrstISymUnmanagedReader = 85, - CrstJit = 86, - CrstJitGenericHandleCache = 87, - CrstJitPerf = 88, - CrstJumpStubCache = 89, - CrstLeafLock = 90, - CrstListLock = 91, - CrstLoaderAllocator = 92, - CrstLoaderAllocatorReferences = 93, - CrstLoaderHeap = 94, - CrstMda = 95, - CrstMetadataTracker = 96, - CrstModIntPairList = 97, - CrstModule = 98, - CrstModuleFixup = 99, - CrstModuleLookupTable = 100, - CrstMulticoreJitHash = 101, - CrstMulticoreJitManager = 102, - CrstMUThunkHash = 103, - CrstNativeBinderInit = 104, - CrstNativeImageCache = 105, - CrstNls = 106, - CrstNotifyGdb = 107, - CrstObjectList = 108, - CrstOnEventManager = 109, - CrstPatchEntryPoint = 110, - CrstPEFileSecurityManager = 111, - CrstPEImage = 112, - CrstPEImagePDBStream = 113, - CrstPendingTypeLoadEntry = 114, - CrstPinHandle = 115, - CrstPinnedByrefValidation = 116, - CrstProfilerGCRefDataFreeList = 117, - CrstProfilingAPIStatus = 118, - CrstPublisherCertificate = 119, - CrstRCWCache = 120, - CrstRCWCleanupList = 121, - CrstRCWRefCache = 122, - CrstReadyToRunEntryPointToMethodDescMap = 123, - CrstReDacl = 124, - CrstReflection = 125, - CrstReJITDomainTable = 126, - CrstReJITGlobalRequest = 127, - CrstReJITSharedDomainTable = 128, - CrstRemoting = 129, - CrstRetThunkCache = 130, - CrstRWLock = 131, - CrstSavedExceptionInfo = 132, - CrstSaveModuleProfileData = 133, - CrstSecurityPolicyCache = 134, - CrstSecurityPolicyInit = 135, - CrstSecurityStackwalkCache = 136, - CrstSharedAssemblyCreate = 137, - CrstSharedBaseDomain = 138, - CrstSigConvert = 139, - CrstSingleUseLock = 140, - CrstSpecialStatics = 141, - CrstSqmManager = 142, - CrstStackSampler = 143, - CrstStressLog = 144, - CrstStrongName = 145, - CrstStubCache = 146, - CrstStubDispatchCache = 147, - CrstStubUnwindInfoHeapSegments = 148, - CrstSyncBlockCache = 149, - CrstSyncHashLock = 150, - CrstSystemBaseDomain = 151, - CrstSystemDomain = 152, - CrstSystemDomainDelayedUnloadList = 153, - CrstThreadIdDispenser = 154, - CrstThreadpoolEventCache = 155, - CrstThreadpoolTimerQueue = 156, - CrstThreadpoolWaitThreads = 157, - CrstThreadpoolWorker = 158, - CrstThreadStaticDataHashTable = 159, - CrstThreadStore = 160, - CrstTPMethodTable = 161, - CrstTypeEquivalenceMap = 162, - CrstTypeIDMap = 163, - CrstUMEntryThunkCache = 164, - CrstUMThunkHash = 165, - CrstUniqueStack = 166, - CrstUnresolvedClassLock = 167, - CrstUnwindInfoTableLock = 168, - CrstVSDIndirectionCellLock = 169, - CrstWinRTFactoryCache = 170, - CrstWrapperTemplate = 171, - kNumberOfCrstTypes = 172 + CrstCOMCallWrapper = 19, + CrstCOMWrapperCache = 20, + CrstConnectionNameTable = 21, + CrstContexts = 22, + CrstCoreCLRBinderLog = 23, + CrstCrstCLRPrivBinderLocalWinMDPath = 24, + CrstCSPCache = 25, + CrstDataTest1 = 26, + CrstDataTest2 = 27, + CrstDbgTransport = 28, + CrstDeadlockDetection = 29, + CrstDebuggerController = 30, + CrstDebuggerFavorLock = 31, + CrstDebuggerHeapExecMemLock = 32, + CrstDebuggerHeapLock = 33, + CrstDebuggerJitInfo = 34, + CrstDebuggerMutex = 35, + CrstDelegateToFPtrHash = 36, + CrstDomainLocalBlock = 37, + CrstDynamicIL = 38, + CrstDynamicMT = 39, + CrstDynLinkZapItems = 40, + CrstEtwTypeLogHash = 41, + CrstEventPipe = 42, + CrstEventStore = 43, + CrstException = 44, + CrstExecuteManLock = 45, + CrstExecuteManRangeLock = 46, + CrstFCall = 47, + CrstFriendAccessCache = 48, + CrstFuncPtrStubs = 49, + CrstFusionAppCtx = 50, + CrstGCCover = 51, + CrstGCMemoryPressure = 52, + CrstGlobalStrLiteralMap = 53, + CrstHandleTable = 54, + CrstHostAssemblyMap = 55, + CrstHostAssemblyMapAdd = 56, + CrstIbcProfile = 57, + CrstIJWFixupData = 58, + CrstIJWHash = 59, + CrstILStubGen = 60, + CrstInlineTrackingMap = 61, + CrstInstMethodHashTable = 62, + CrstInterfaceVTableMap = 63, + CrstInterop = 64, + CrstInteropData = 65, + CrstIOThreadpoolWorker = 66, + CrstIsJMCMethod = 67, + CrstISymUnmanagedReader = 68, + CrstJit = 69, + CrstJitGenericHandleCache = 70, + CrstJitInlineTrackingMap = 71, + CrstJitPerf = 72, + CrstJumpStubCache = 73, + CrstLeafLock = 74, + CrstListLock = 75, + CrstLoaderAllocator = 76, + CrstLoaderAllocatorReferences = 77, + CrstLoaderHeap = 78, + CrstMda = 79, + CrstMetadataTracker = 80, + CrstMethodDescBackpatchInfoTracker = 81, + CrstModIntPairList = 82, + CrstModule = 83, + CrstModuleFixup = 84, + CrstModuleLookupTable = 85, + CrstMulticoreJitHash = 86, + CrstMulticoreJitManager = 87, + CrstMUThunkHash = 88, + CrstNativeBinderInit = 89, + CrstNativeImageCache = 90, + CrstNls = 91, + CrstNotifyGdb = 92, + CrstObjectList = 93, + CrstOnEventManager = 94, + CrstPatchEntryPoint = 95, + CrstPEImage = 96, + CrstPEImagePDBStream = 97, + CrstPendingTypeLoadEntry = 98, + CrstPinHandle = 99, + CrstPinnedByrefValidation = 100, + CrstProfilerGCRefDataFreeList = 101, + CrstProfilingAPIStatus = 102, + CrstPublisherCertificate = 103, + CrstRCWCache = 104, + CrstRCWCleanupList = 105, + CrstRCWRefCache = 106, + CrstReadyToRunEntryPointToMethodDescMap = 107, + CrstReDacl = 108, + CrstReflection = 109, + CrstReJITDomainTable = 110, + CrstReJITGlobalRequest = 111, + CrstRemoting = 112, + CrstRetThunkCache = 113, + CrstRWLock = 114, + CrstSavedExceptionInfo = 115, + CrstSaveModuleProfileData = 116, + CrstSecurityStackwalkCache = 117, + CrstSharedAssemblyCreate = 118, + CrstSigConvert = 119, + CrstSingleUseLock = 120, + CrstSpecialStatics = 121, + CrstSqmManager = 122, + CrstStackSampler = 123, + CrstStressLog = 124, + CrstStrongName = 125, + CrstStubCache = 126, + CrstStubDispatchCache = 127, + CrstStubUnwindInfoHeapSegments = 128, + CrstSyncBlockCache = 129, + CrstSyncHashLock = 130, + CrstSystemBaseDomain = 131, + CrstSystemDomain = 132, + CrstSystemDomainDelayedUnloadList = 133, + CrstThreadIdDispenser = 134, + CrstThreadpoolEventCache = 135, + CrstThreadpoolTimerQueue = 136, + CrstThreadpoolWaitThreads = 137, + CrstThreadpoolWorker = 138, + CrstThreadStaticDataHashTable = 139, + CrstThreadStore = 140, + CrstTieredCompilation = 141, + CrstTPMethodTable = 142, + CrstTypeEquivalenceMap = 143, + CrstTypeIDMap = 144, + CrstUMEntryThunkCache = 145, + CrstUMThunkHash = 146, + CrstUniqueStack = 147, + CrstUnresolvedClassLock = 148, + CrstUnwindInfoTableLock = 149, + CrstVSDIndirectionCellLock = 150, + CrstWinRTFactoryCache = 151, + CrstWrapperTemplate = 152, + kNumberOfCrstTypes = 153 }; #endif // __CRST_TYPES_INCLUDED @@ -199,178 +180,159 @@ enum CrstType // An array mapping CrstType to level. int g_rgCrstLevelMap[] = { - 9, // CrstAllowedFiles - 9, // CrstAppDomainCache - 13, // CrstAppDomainHandleTable - 0, // CrstArgBasedStubCache - 0, // CrstAssemblyDependencyGraph - 0, // CrstAssemblyIdentityCache - 0, // CrstAssemblyList - 7, // CrstAssemblyLoader - 3, // CrstAvailableClass - 6, // CrstAvailableParamTypes - 7, // CrstBaseDomain - -1, // CrstCCompRC - 9, // CrstCer - 11, // CrstClassFactInfoHash - 8, // CrstClassInit - -1, // CrstClrNotification - 0, // CrstCLRPrivBinderMaps - 3, // CrstCLRPrivBinderMapsAdd - 6, // CrstCodeFragmentHeap - 4, // CrstCOMWrapperCache - 0, // CrstConnectionNameTable - 17, // CrstContexts - -1, // CrstCoreCLRBinderLog - 0, // CrstCrstCLRPrivBinderLocalWinMDPath - 7, // CrstCSPCache - 3, // CrstDataTest1 - 0, // CrstDataTest2 - 0, // CrstDbgTransport - 0, // CrstDeadlockDetection - -1, // CrstDebuggerController - 3, // CrstDebuggerFavorLock - 0, // CrstDebuggerHeapExecMemLock - 0, // CrstDebuggerHeapLock - 4, // CrstDebuggerJitInfo - 11, // CrstDebuggerMutex - 0, // CrstDelegateToFPtrHash - 15, // CrstDomainLocalBlock - 0, // CrstDynamicIL - 3, // CrstDynamicMT - 3, // CrstDynLinkZapItems - 7, // CrstEtwTypeLogHash - 17, // CrstEventPipe - 0, // CrstEventStore - 0, // CrstException - 7, // CrstExecuteManLock - 0, // CrstExecuteManRangeLock - 3, // CrstFCall - 7, // CrstFriendAccessCache - 7, // CrstFuncPtrStubs - 9, // CrstFusionAppCtx - 7, // CrstFusionAssemblyDownload - 5, // CrstFusionBindContext - 0, // CrstFusionBindResult - 0, // CrstFusionClb - 16, // CrstFusionClosure - 10, // CrstFusionClosureGraph - 0, // CrstFusionConfigSettings - 0, // CrstFusionDownload - 0, // CrstFusionIsoLibInit - 5, // CrstFusionLoadContext - 4, // CrstFusionLog - 7, // CrstFusionNgenIndex - 7, // CrstFusionNgenIndexPool - 0, // CrstFusionPcyCache - 4, // CrstFusionPolicyConfigPool - 5, // CrstFusionSingleUse - 6, // CrstFusionWarningLog - 3, // CrstGCCover - 0, // CrstGCMemoryPressure - 11, // CrstGlobalStrLiteralMap - 1, // CrstHandleTable - 0, // CrstHostAssemblyMap - 3, // CrstHostAssemblyMapAdd - 0, // CrstIbcProfile - 9, // CrstIJWFixupData - 0, // CrstIJWHash - 5, // CrstILFingerprintCache - 7, // CrstILStubGen - 3, // CrstInlineTrackingMap - 16, // CrstInstMethodHashTable - 0, // CrstInterfaceVTableMap - 17, // CrstInterop - 4, // CrstInteropData - 11, // CrstIOThreadpoolWorker - 0, // CrstIsJMCMethod - 7, // CrstISymUnmanagedReader - 8, // CrstJit - 0, // CrstJitGenericHandleCache - -1, // CrstJitPerf - 6, // CrstJumpStubCache - 0, // CrstLeafLock - -1, // CrstListLock - 14, // CrstLoaderAllocator - 15, // CrstLoaderAllocatorReferences - 0, // CrstLoaderHeap - 0, // CrstMda - -1, // CrstMetadataTracker - 0, // CrstModIntPairList - 4, // CrstModule - 14, // CrstModuleFixup - 3, // CrstModuleLookupTable - 0, // CrstMulticoreJitHash - 11, // CrstMulticoreJitManager - 0, // CrstMUThunkHash - -1, // CrstNativeBinderInit - -1, // CrstNativeImageCache - 0, // CrstNls - 0, // CrstNotifyGdb - 2, // CrstObjectList - 0, // CrstOnEventManager - 0, // CrstPatchEntryPoint - 0, // CrstPEFileSecurityManager - 4, // CrstPEImage - 0, // CrstPEImagePDBStream - 18, // CrstPendingTypeLoadEntry - 0, // CrstPinHandle - 0, // CrstPinnedByrefValidation - 0, // CrstProfilerGCRefDataFreeList - 0, // CrstProfilingAPIStatus - 0, // CrstPublisherCertificate - 3, // CrstRCWCache - 0, // CrstRCWCleanupList - 3, // CrstRCWRefCache - 4, // CrstReadyToRunEntryPointToMethodDescMap - 0, // CrstReDacl - 9, // CrstReflection - 7, // CrstReJITDomainTable - 13, // CrstReJITGlobalRequest - 9, // CrstReJITSharedDomainTable - 19, // CrstRemoting - 3, // CrstRetThunkCache - 0, // CrstRWLock - 3, // CrstSavedExceptionInfo - 0, // CrstSaveModuleProfileData - 0, // CrstSecurityPolicyCache - 3, // CrstSecurityPolicyInit - 0, // CrstSecurityStackwalkCache - 4, // CrstSharedAssemblyCreate - 7, // CrstSharedBaseDomain - 3, // CrstSigConvert - 5, // CrstSingleUseLock - 0, // CrstSpecialStatics - 0, // CrstSqmManager - 0, // CrstStackSampler - -1, // CrstStressLog - 0, // CrstStrongName - 5, // CrstStubCache - 0, // CrstStubDispatchCache - 4, // CrstStubUnwindInfoHeapSegments - 3, // CrstSyncBlockCache - 0, // CrstSyncHashLock - 0, // CrstSystemBaseDomain - 12, // CrstSystemDomain - 0, // CrstSystemDomainDelayedUnloadList - 0, // CrstThreadIdDispenser - 0, // CrstThreadpoolEventCache - 7, // CrstThreadpoolTimerQueue - 7, // CrstThreadpoolWaitThreads - 11, // CrstThreadpoolWorker - 4, // CrstThreadStaticDataHashTable - 10, // CrstThreadStore - 9, // CrstTPMethodTable - 3, // CrstTypeEquivalenceMap - 7, // CrstTypeIDMap - 3, // CrstUMEntryThunkCache - 0, // CrstUMThunkHash - 3, // CrstUniqueStack - 7, // CrstUnresolvedClassLock - 3, // CrstUnwindInfoTableLock - 3, // CrstVSDIndirectionCellLock - 3, // CrstWinRTFactoryCache - 3, // CrstWrapperTemplate + 9, // CrstAllowedFiles + 9, // CrstAppDomainCache + 13, // CrstAppDomainHandleTable + 0, // CrstArgBasedStubCache + 0, // CrstAssemblyDependencyGraph + 0, // CrstAssemblyIdentityCache + 0, // CrstAssemblyList + 7, // CrstAssemblyLoader + 3, // CrstAvailableClass + 3, // CrstAvailableParamTypes + 7, // CrstBaseDomain + -1, // CrstCCompRC + 9, // CrstCer + 12, // CrstClassFactInfoHash + 8, // CrstClassInit + -1, // CrstClrNotification + 0, // CrstCLRPrivBinderMaps + 3, // CrstCLRPrivBinderMapsAdd + 6, // CrstCodeFragmentHeap + 0, // CrstCOMCallWrapper + 4, // CrstCOMWrapperCache + 0, // CrstConnectionNameTable + 16, // CrstContexts + -1, // CrstCoreCLRBinderLog + 0, // CrstCrstCLRPrivBinderLocalWinMDPath + 7, // CrstCSPCache + 3, // CrstDataTest1 + 0, // CrstDataTest2 + 0, // CrstDbgTransport + 0, // CrstDeadlockDetection + -1, // CrstDebuggerController + 3, // CrstDebuggerFavorLock + 0, // CrstDebuggerHeapExecMemLock + 0, // CrstDebuggerHeapLock + 4, // CrstDebuggerJitInfo + 10, // CrstDebuggerMutex + 0, // CrstDelegateToFPtrHash + 15, // CrstDomainLocalBlock + 0, // CrstDynamicIL + 3, // CrstDynamicMT + 3, // CrstDynLinkZapItems + 7, // CrstEtwTypeLogHash + 17, // CrstEventPipe + 0, // CrstEventStore + 0, // CrstException + 7, // CrstExecuteManLock + 0, // CrstExecuteManRangeLock + 3, // CrstFCall + 7, // CrstFriendAccessCache + 7, // CrstFuncPtrStubs + 5, // CrstFusionAppCtx + 10, // CrstGCCover + 0, // CrstGCMemoryPressure + 12, // CrstGlobalStrLiteralMap + 1, // CrstHandleTable + 0, // CrstHostAssemblyMap + 3, // CrstHostAssemblyMapAdd + 0, // CrstIbcProfile + 9, // CrstIJWFixupData + 0, // CrstIJWHash + 7, // CrstILStubGen + 3, // CrstInlineTrackingMap + 16, // CrstInstMethodHashTable + 0, // CrstInterfaceVTableMap + 17, // CrstInterop + 4, // CrstInteropData + 12, // CrstIOThreadpoolWorker + 0, // CrstIsJMCMethod + 7, // CrstISymUnmanagedReader + 8, // CrstJit + 0, // CrstJitGenericHandleCache + 15, // CrstJitInlineTrackingMap + -1, // CrstJitPerf + 6, // CrstJumpStubCache + 0, // CrstLeafLock + -1, // CrstListLock + 14, // CrstLoaderAllocator + 15, // CrstLoaderAllocatorReferences + 0, // CrstLoaderHeap + 0, // CrstMda + -1, // CrstMetadataTracker + 13, // CrstMethodDescBackpatchInfoTracker + 0, // CrstModIntPairList + 4, // CrstModule + 14, // CrstModuleFixup + 3, // CrstModuleLookupTable + 0, // CrstMulticoreJitHash + 12, // CrstMulticoreJitManager + 0, // CrstMUThunkHash + -1, // CrstNativeBinderInit + -1, // CrstNativeImageCache + 0, // CrstNls + 0, // CrstNotifyGdb + 2, // CrstObjectList + 0, // CrstOnEventManager + 0, // CrstPatchEntryPoint + 4, // CrstPEImage + 0, // CrstPEImagePDBStream + 18, // CrstPendingTypeLoadEntry + 0, // CrstPinHandle + 0, // CrstPinnedByrefValidation + 0, // CrstProfilerGCRefDataFreeList + 0, // CrstProfilingAPIStatus + 0, // CrstPublisherCertificate + 3, // CrstRCWCache + 0, // CrstRCWCleanupList + 3, // CrstRCWRefCache + 4, // CrstReadyToRunEntryPointToMethodDescMap + 0, // CrstReDacl + 9, // CrstReflection + 9, // CrstReJITDomainTable + 14, // CrstReJITGlobalRequest + 19, // CrstRemoting + 3, // CrstRetThunkCache + 0, // CrstRWLock + 3, // CrstSavedExceptionInfo + 0, // CrstSaveModuleProfileData + 0, // CrstSecurityStackwalkCache + 4, // CrstSharedAssemblyCreate + 3, // CrstSigConvert + 5, // CrstSingleUseLock + 0, // CrstSpecialStatics + 0, // CrstSqmManager + 0, // CrstStackSampler + -1, // CrstStressLog + 0, // CrstStrongName + 5, // CrstStubCache + 0, // CrstStubDispatchCache + 4, // CrstStubUnwindInfoHeapSegments + 3, // CrstSyncBlockCache + 0, // CrstSyncHashLock + 4, // CrstSystemBaseDomain + 12, // CrstSystemDomain + 0, // CrstSystemDomainDelayedUnloadList + 0, // CrstThreadIdDispenser + 0, // CrstThreadpoolEventCache + 7, // CrstThreadpoolTimerQueue + 7, // CrstThreadpoolWaitThreads + 12, // CrstThreadpoolWorker + 4, // CrstThreadStaticDataHashTable + 11, // CrstThreadStore + 9, // CrstTieredCompilation + 9, // CrstTPMethodTable + 3, // CrstTypeEquivalenceMap + 7, // CrstTypeIDMap + 3, // CrstUMEntryThunkCache + 0, // CrstUMThunkHash + 3, // CrstUniqueStack + 7, // CrstUnresolvedClassLock + 3, // CrstUnwindInfoTableLock + 3, // CrstVSDIndirectionCellLock + 3, // CrstWinRTFactoryCache + 3, // CrstWrapperTemplate }; // An array mapping CrstType to a stringized name. @@ -395,6 +357,7 @@ LPCSTR g_rgCrstNameMap[] = "CrstCLRPrivBinderMaps", "CrstCLRPrivBinderMapsAdd", "CrstCodeFragmentHeap", + "CrstCOMCallWrapper", "CrstCOMWrapperCache", "CrstConnectionNameTable", "CrstContexts", @@ -426,23 +389,6 @@ LPCSTR g_rgCrstNameMap[] = "CrstFriendAccessCache", "CrstFuncPtrStubs", "CrstFusionAppCtx", - "CrstFusionAssemblyDownload", - "CrstFusionBindContext", - "CrstFusionBindResult", - "CrstFusionClb", - "CrstFusionClosure", - "CrstFusionClosureGraph", - "CrstFusionConfigSettings", - "CrstFusionDownload", - "CrstFusionIsoLibInit", - "CrstFusionLoadContext", - "CrstFusionLog", - "CrstFusionNgenIndex", - "CrstFusionNgenIndexPool", - "CrstFusionPcyCache", - "CrstFusionPolicyConfigPool", - "CrstFusionSingleUse", - "CrstFusionWarningLog", "CrstGCCover", "CrstGCMemoryPressure", "CrstGlobalStrLiteralMap", @@ -452,7 +398,6 @@ LPCSTR g_rgCrstNameMap[] = "CrstIbcProfile", "CrstIJWFixupData", "CrstIJWHash", - "CrstILFingerprintCache", "CrstILStubGen", "CrstInlineTrackingMap", "CrstInstMethodHashTable", @@ -464,6 +409,7 @@ LPCSTR g_rgCrstNameMap[] = "CrstISymUnmanagedReader", "CrstJit", "CrstJitGenericHandleCache", + "CrstJitInlineTrackingMap", "CrstJitPerf", "CrstJumpStubCache", "CrstLeafLock", @@ -473,6 +419,7 @@ LPCSTR g_rgCrstNameMap[] = "CrstLoaderHeap", "CrstMda", "CrstMetadataTracker", + "CrstMethodDescBackpatchInfoTracker", "CrstModIntPairList", "CrstModule", "CrstModuleFixup", @@ -487,7 +434,6 @@ LPCSTR g_rgCrstNameMap[] = "CrstObjectList", "CrstOnEventManager", "CrstPatchEntryPoint", - "CrstPEFileSecurityManager", "CrstPEImage", "CrstPEImagePDBStream", "CrstPendingTypeLoadEntry", @@ -504,17 +450,13 @@ LPCSTR g_rgCrstNameMap[] = "CrstReflection", "CrstReJITDomainTable", "CrstReJITGlobalRequest", - "CrstReJITSharedDomainTable", "CrstRemoting", "CrstRetThunkCache", "CrstRWLock", "CrstSavedExceptionInfo", "CrstSaveModuleProfileData", - "CrstSecurityPolicyCache", - "CrstSecurityPolicyInit", "CrstSecurityStackwalkCache", "CrstSharedAssemblyCreate", - "CrstSharedBaseDomain", "CrstSigConvert", "CrstSingleUseLock", "CrstSpecialStatics", @@ -537,6 +479,7 @@ LPCSTR g_rgCrstNameMap[] = "CrstThreadpoolWorker", "CrstThreadStaticDataHashTable", "CrstThreadStore", + "CrstTieredCompilation", "CrstTPMethodTable", "CrstTypeEquivalenceMap", "CrstTypeIDMap", diff --git a/lib/coreclr/src/inc/crtwrap.h b/lib/coreclr/src/inc/crtwrap.h index 56f63cb422c8..aca2437cc7ad 100644 --- a/lib/coreclr/src/inc/crtwrap.h +++ b/lib/coreclr/src/inc/crtwrap.h @@ -21,10 +21,10 @@ #include #include -#ifndef PUB -// PUB is defined to influence method visibility for some compilers. -#define PUB -#endif // !PUB +#ifndef FEATURE_PAL +// CoreCLR.dll uses linker .def files to control the exported symbols. +// Define DLLEXPORT macro as empty on Windows. +#define DLLEXPORT +#endif #endif // __CrtWrap_h__ - diff --git a/lib/coreclr/src/inc/daccess.h b/lib/coreclr/src/inc/daccess.h index 01ed65dc76c4..e4deab920774 100644 --- a/lib/coreclr/src/inc/daccess.h +++ b/lib/coreclr/src/inc/daccess.h @@ -620,8 +620,10 @@ typedef struct _DacGlobals ULONG fn__ThePreStubPatchLabel; ULONG fn__PrecodeFixupThunk; +#ifdef FEATURE_PREJIT ULONG fn__StubDispatchFixupStub; - ULONG fn__StubDispatchFixupPatchLabel;; + ULONG fn__StubDispatchFixupPatchLabel; +#endif #ifdef FEATURE_COMINTEROP ULONG fn__Unknown_AddRef; ULONG fn__Unknown_AddRefSpecial; @@ -1889,10 +1891,6 @@ public: name(TADDR addr, TADDR vtAddr); #define GFN_TADDR(name) (DacGlobalBase() + g_dacGlobals.fn__ ## name) -// ROTORTODO - g++ 3 doesn't like the use of the operator& in __GlobalVal -// here. Putting GVAL_ADDR in to get things to compile while I discuss -// this matter with the g++ authors. - #define GVAL_ADDR(g) \ ((g).operator&()) @@ -2163,7 +2161,7 @@ public: name(int dummy) : base(dummy) {} #endif // FEATURE_PAL // helper macro to make the vtables unique for DAC -#define VPTR_UNIQUE(unique) virtual int MakeVTableUniqueForDAC() { STATIC_CONTRACT_SO_TOLERANT; return unique; } +#define VPTR_UNIQUE(unique) virtual int MakeVTableUniqueForDAC() { return unique; } #define VPTR_UNIQUE_BaseDomain (100000) #define VPTR_UNIQUE_SystemDomain (VPTR_UNIQUE_BaseDomain + 1) #define VPTR_UNIQUE_ComMethodFrame (VPTR_UNIQUE_SystemDomain + 1) @@ -2399,16 +2397,16 @@ typedef DPTR(IMAGE_TLS_DIRECTORY) PTR_IMAGE_TLS_DIRECTORY; typedef DPTR(struct _UNWIND_INFO) PTR_UNWIND_INFO; #endif -#ifdef _WIN64 +#ifdef _TARGET_64BIT_ typedef DPTR(T_RUNTIME_FUNCTION) PTR_RUNTIME_FUNCTION; typedef DPTR(struct _UNWIND_INFO) PTR_UNWIND_INFO; #if defined(_TARGET_AMD64_) typedef DPTR(union _UNWIND_CODE) PTR_UNWIND_CODE; #endif // _TARGET_AMD64_ -#endif // _WIN64 +#endif // _TARGET_64BIT_ #ifdef _TARGET_ARM_ -typedef DPTR(RUNTIME_FUNCTION) PTR_RUNTIME_FUNCTION; +typedef DPTR(T_RUNTIME_FUNCTION) PTR_RUNTIME_FUNCTION; #endif //---------------------------------------------------------------------------- diff --git a/lib/coreclr/src/inc/dacprivate.h b/lib/coreclr/src/inc/dacprivate.h index 2f7482680d4a..7a12c642e45d 100644 --- a/lib/coreclr/src/inc/dacprivate.h +++ b/lib/coreclr/src/inc/dacprivate.h @@ -177,6 +177,25 @@ struct MSLAYOUT DacpMethodTableFieldData : ZeroInit } }; +struct MSLAYOUT DacpMethodTableCollectibleData : ZeroInit +{ + CLRDATA_ADDRESS LoaderAllocatorObjectHandle; + BOOL bCollectible; + + HRESULT Request(ISOSDacInterface *sos, CLRDATA_ADDRESS addr) + { + HRESULT hr; + ISOSDacInterface6 *pSOS6 = NULL; + if (SUCCEEDED(hr = sos->QueryInterface(__uuidof(ISOSDacInterface6), (void**)&pSOS6))) + { + hr = pSOS6->GetMethodTableCollectibleData(addr, this); + pSOS6->Release(); + } + + return hr; + } +}; + struct MSLAYOUT DacpMethodTableTransparencyData : ZeroInit { BOOL bHasCriticalTransparentInfo; @@ -280,7 +299,7 @@ struct MSLAYOUT DacpMethodTableData : ZeroInit DWORD ComponentSize; mdTypeDef cl; // Metadata token DWORD dwAttrClass; // cached metadata - BOOL bIsShared; // flags & enum_flag_DomainNeutral + BOOL bIsShared; // Always false, preserved for backward compatibility BOOL bIsDynamic; BOOL bContainsPointers; @@ -453,7 +472,7 @@ struct MSLAYOUT DacpAssemblyData : ZeroInit BOOL isDynamic; UINT ModuleCount; UINT LoadContext; - BOOL isDomainNeutral; + BOOL isDomainNeutral; // Always false, preserved for backward compatibility DWORD dwLocationFlags; HRESULT Request(ISOSDacInterface *sos, CLRDATA_ADDRESS addr, CLRDATA_ADDRESS baseDomainPtr) @@ -568,16 +587,18 @@ struct MSLAYOUT DacpMethodDescTransparencyData : ZeroInit> DECLSEC_NULL_OFFSET) & DECLSEC_RUNTIME_ACTIONS; - } -} ; - -typedef SecurityProperties * PSecurityProperties, ** PpSecurityProperties ; - -#endif diff --git a/lib/coreclr/src/inc/entrypoints.h b/lib/coreclr/src/inc/entrypoints.h index 064f4ede2940..c552b664c396 100644 --- a/lib/coreclr/src/inc/entrypoints.h +++ b/lib/coreclr/src/inc/entrypoints.h @@ -11,48 +11,17 @@ #ifndef __ENTRYPOINTS_h__ #define __ENTRYPOINTS_h__ -#define BEGIN_ENTRYPOINT_THROWS \ - BEGIN_SO_INTOLERANT_CODE(GetThread()) \ - - -#define END_ENTRYPOINT_THROWS \ - END_SO_INTOLERANT_CODE; - -#define BEGIN_ENTRYPOINT_THROWS_WITH_THREAD(____thread) \ - BEGIN_SO_INTOLERANT_CODE(____thread) \ - -#define END_ENTRYPOINT_THROWS_WITH_THREAD \ - END_SO_INTOLERANT_CODE; - -#define BEGIN_ENTRYPOINT_NOTHROW_WITH_THREAD(___thread) \ - BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(return COR_E_STACKOVERFLOW) - -#define END_ENTRYPOINT_NOTHROW_WITH_THREAD \ - END_SO_INTOLERANT_CODE; - -#define BEGIN_ENTRYPOINT_NOTHROW \ - BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(return COR_E_STACKOVERFLOW) - -#define END_ENTRYPOINT_NOTHROW \ - END_SO_INTOLERANT_CODE; - -extern void (*g_fpHandleSoftStackOverflow)(BOOL fSkipDebugger); -inline void FailedVoidEntryPoint() -{ - if (g_fpHandleSoftStackOverflow) - { - g_fpHandleSoftStackOverflow(FALSE); - } -} -#define BEGIN_ENTRYPOINT_VOIDRET \ - BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(FailedVoidEntryPoint();) - -#define END_ENTRYPOINT_VOIDRET \ - END_SO_INTOLERANT_CODE; - -#define BEGIN_CLEANUP_ENTRYPOINT \ - VALIDATE_BACKOUT_STACK_CONSUMPTION; - +#define BEGIN_ENTRYPOINT_THROWS +#define END_ENTRYPOINT_THROWS +#define BEGIN_ENTRYPOINT_THROWS_WITH_THREAD(____thread) +#define END_ENTRYPOINT_THROWS_WITH_THREAD +#define BEGIN_ENTRYPOINT_NOTHROW_WITH_THREAD(___thread) +#define END_ENTRYPOINT_NOTHROW_WITH_THREAD +#define BEGIN_ENTRYPOINT_NOTHROW +#define END_ENTRYPOINT_NOTHROW +#define BEGIN_ENTRYPOINT_VOIDRET +#define END_ENTRYPOINT_VOIDRET +#define BEGIN_CLEANUP_ENTRYPOINT #define END_CLEANUP_ENTRYPOINT #endif // __ENTRYPOINTS_h__ diff --git a/lib/coreclr/src/inc/eventtracebase.h b/lib/coreclr/src/inc/eventtracebase.h index 7c0ee78b8728..43147f5a6f5a 100644 --- a/lib/coreclr/src/inc/eventtracebase.h +++ b/lib/coreclr/src/inc/eventtracebase.h @@ -10,7 +10,7 @@ // // -// +// // #EventTracing // Windows // ETW (Event Tracing for Windows) is a high-performance, low overhead and highly scalable @@ -31,11 +31,13 @@ struct EventStructTypeData; void InitializeEventTracing(); +class PrepareCodeConfig; + // !!!!!!! NOTE !!!!!!!! // The flags must match those in the ETW manifest exactly // !!!!!!! NOTE !!!!!!!! -// These flags need to be defined either when FEATURE_EVENT_TRACE is enabled or the +// These flags need to be defined either when FEATURE_EVENT_TRACE is enabled or the // PROFILING_SUPPORTED is set, since they are used both by event tracing and profiling. enum EtwTypeFlags @@ -77,14 +79,14 @@ enum EtwThreadFlags // if the fields in the event are not cheap to calculate // #define ETW_EVENT_ENABLED(Context, EventDescriptor) \ - ((MCGEN_ENABLE_CHECK(Context, EventDescriptor)) || EVENT_PIPE_ENABLED()) + ((Context.EtwProvider->IsEnabled && McGenEventXplatEnabled(Context.EtwProvider, &EventDescriptor)) || EventPipeHelper::IsEnabled(Context, EventDescriptor.Level, EventDescriptor.Keyword)) // // Use this macro to check if a category of events is enabled // #define ETW_CATEGORY_ENABLED(Context, Level, Keyword) \ - ((Context.IsEnabled && McGenEventProviderEnabled(&Context, Level, Keyword)) || EVENT_PIPE_ENABLED()) + ((Context.EtwProvider->IsEnabled && McGenEventProviderEnabled(Context.EtwProvider, Level, Keyword)) || EventPipeHelper::IsEnabled(Context, Level, Keyword)) // This macro only checks if a provider is enabled @@ -93,29 +95,32 @@ enum EtwThreadFlags ((ProviderSymbol##_Context.IsEnabled) || EVENT_PIPE_ENABLED()) -#else //defined(FEATURE_PAL) +#else //!defined(FEATURE_PAL) #if defined(FEATURE_PERFTRACING) #define ETW_INLINE #define ETWOnStartup(StartEventName, EndEventName) #define ETWFireEvent(EventName) #define ETW_TRACING_INITIALIZED(RegHandle) (TRUE) -#define ETW_EVENT_ENABLED(Context, EventDescriptor) (EventPipeHelper::Enabled() || XplatEventLogger::IsEventLoggingEnabled()) -#define ETW_CATEGORY_ENABLED(Context, Level, Keyword) (EventPipeHelper::Enabled() || XplatEventLogger::IsEventLoggingEnabled()) +#define ETW_EVENT_ENABLED(Context, EventDescriptor) (EventPipeHelper::IsEnabled(Context, EventDescriptor.Level, EventDescriptor.Keyword) || \ + (XplatEventLogger::IsKeywordEnabled(Context, EventDescriptor.Level, EventDescriptor.Keyword))) +#define ETW_CATEGORY_ENABLED(Context, Level, Keyword) (EventPipeHelper::IsEnabled(Context, Level, Keyword) || \ + (XplatEventLogger::IsKeywordEnabled(Context, Level, Keyword))) #define ETW_TRACING_ENABLED(Context, EventDescriptor) (EventEnabled##EventDescriptor()) -#define ETW_TRACING_CATEGORY_ENABLED(Context, Level, Keyword) (EventPipeHelper::Enabled() || XplatEventLogger::IsEventLoggingEnabled()) +#define ETW_TRACING_CATEGORY_ENABLED(Context, Level, Keyword) (EventPipeHelper::IsEnabled(Context, Level, Keyword) || \ + (XplatEventLogger::IsKeywordEnabled(Context, Level, Keyword))) #define ETW_PROVIDER_ENABLED(ProviderSymbol) (TRUE) #else //defined(FEATURE_PERFTRACING) -#define ETW_INLINE +#define ETW_INLINE #define ETWOnStartup(StartEventName, EndEventName) #define ETWFireEvent(EventName) #define ETW_TRACING_INITIALIZED(RegHandle) (TRUE) -#define ETW_EVENT_ENABLED(Context, EventDescriptor) (XplatEventLogger::IsEventLoggingEnabled()) -#define ETW_CATEGORY_ENABLED(Context, Level, Keyword) (XplatEventLogger::IsEventLoggingEnabled()) -#define ETW_TRACING_ENABLED(Context, EventDescriptor) (EventEnabled##EventDescriptor()) -#define ETW_TRACING_CATEGORY_ENABLED(Context, Level, Keyword) (XplatEventLogger::IsEventLoggingEnabled()) -#define ETW_PROVIDER_ENABLED(ProviderSymbol) (TRUE) +#define ETW_CATEGORY_ENABLED(Context, Level, Keyword) (XplatEventLogger::IsKeywordEnabled(Context, Level, Keyword)) +#define ETW_EVENT_ENABLED(Context, EventDescriptor) (XplatEventLogger::IsKeywordEnabled(Context, EventDescriptor.Level, EventDescriptor.KeywordsBitmask)) +#define ETW_TRACING_ENABLED(Context, EventDescriptor) (ETW_EVENT_ENABLED(Context, EventDescriptor) && EventEnabled##EventDescriptor()) +#define ETW_TRACING_CATEGORY_ENABLED(Context, Level, Keyword) (ETW_CATEGORY_ENABLED(Context, Level, Keyword)) +#define ETW_PROVIDER_ENABLED(ProviderSymbol) (XplatEventLogger::IsProviderEnabled(Context)) #endif // defined(FEATURE_PERFTRACING) #endif // !defined(FEATURE_PAL) @@ -161,7 +166,6 @@ class Object; /* Tracing levels supported by CLR ETW */ /***************************************/ #define ETWMAX_TRACE_LEVEL 6 // Maximum Number of Trace Levels supported -#define TRACE_LEVEL_NONE 0 // Tracing is not on #define TRACE_LEVEL_FATAL 1 // Abnormal exit or termination #define TRACE_LEVEL_ERROR 2 // Severe errors that need logging #define TRACE_LEVEL_WARNING 3 // Warnings such as allocation failure @@ -174,7 +178,8 @@ struct ProfilingScanContext; // Use this macro to check if ETW is initialized and the event is enabled // #define ETW_TRACING_ENABLED(Context, EventDescriptor) \ - ((Context.IsEnabled && ETW_TRACING_INITIALIZED(Context.RegistrationHandle) && ETW_EVENT_ENABLED(Context, EventDescriptor)) || EVENT_PIPE_ENABLED()) + ((Context.EtwProvider->IsEnabled && ETW_TRACING_INITIALIZED(Context.EtwProvider->RegistrationHandle) && ETW_EVENT_ENABLED(Context, EventDescriptor))|| \ + EventPipeHelper::IsEnabled(Context, EventDescriptor.Level, EventDescriptor.Keyword)) // // Using KEYWORDZERO means when checking the events category ignore the keyword @@ -185,12 +190,12 @@ struct ProfilingScanContext; // Use this macro to check if ETW is initialized and the category is enabled // #define ETW_TRACING_CATEGORY_ENABLED(Context, Level, Keyword) \ - ((ETW_TRACING_INITIALIZED(Context.RegistrationHandle) && ETW_CATEGORY_ENABLED(Context, Level, Keyword)) || EVENT_PIPE_ENABLED()) + (ETW_TRACING_INITIALIZED(Context.EtwProvider->RegistrationHandle) && ETW_CATEGORY_ENABLED(Context, Level, Keyword)) - #define ETWOnStartup(StartEventName, EndEventName) \ - ETWTraceStartup trace##StartEventName##(Microsoft_Windows_DotNETRuntimePrivateHandle, &StartEventName, &StartupId, &EndEventName, &StartupId); - #define ETWFireEvent(EventName) \ - ETWTraceStartup::StartupTraceEvent(Microsoft_Windows_DotNETRuntimePrivateHandle, &EventName, &StartupId); +#define ETWOnStartup(StartEventName, EndEventName) \ + ETWTraceStartup trace##StartEventName##(Microsoft_Windows_DotNETRuntimePrivateHandle, &StartEventName, &StartupId, &EndEventName, &StartupId); +#define ETWFireEvent(EventName) \ + ETWTraceStartup::StartupTraceEvent(Microsoft_Windows_DotNETRuntimePrivateHandle, &EventName, &StartupId); #ifndef FEATURE_REDHAWK // Headers @@ -216,39 +221,291 @@ struct ProfilingScanContext; extern UINT32 g_nClrInstanceId; #define GetClrInstanceId() (static_cast(g_nClrInstanceId)) +#if defined(FEATURE_PAL) && (defined(FEATURE_EVENT_TRACE) || defined(FEATURE_EVENTSOURCE_XPLAT)) +#define KEYWORDZERO 0x0 -#if defined(FEATURE_PERFTRACING) -class EventPipeHelper +/***************************************/ +/* Tracing levels supported by CLR ETW */ +/***************************************/ +#define MAX_TRACE_LEVEL 6 // Maximum Number of Trace Levels supported +#define TRACE_LEVEL_FATAL 1 // Abnormal exit or termination +#define TRACE_LEVEL_ERROR 2 // Severe errors that need logging +#define TRACE_LEVEL_WARNING 3 // Warnings such as allocation failure +#define TRACE_LEVEL_INFORMATION 4 // Includes non-error cases such as Entry-Exit +#define TRACE_LEVEL_VERBOSE 5 // Detailed traces from intermediate steps + +#define DEF_LTTNG_KEYWORD_ENABLED 1 +#include "clrproviders.h" +#include "clrconfig.h" + +class XplatEventLoggerConfiguration { public: - static bool Enabled(); + XplatEventLoggerConfiguration() = default; + + XplatEventLoggerConfiguration(XplatEventLoggerConfiguration const & other) = delete; + XplatEventLoggerConfiguration(XplatEventLoggerConfiguration && other) + { + _provider = std::move(other._provider); + _isValid = other._isValid; + _enabledKeywords = other._enabledKeywords; + _level = other._level; + } + + ~XplatEventLoggerConfiguration() + { + _provider = nullptr; + } + + void Parse(LPWSTR configString) + { + auto providerComponent = GetNextComponentString(configString); + _provider = ParseProviderName(providerComponent); + if (_provider == nullptr) + { + _isValid = false; + return; + } + + auto keywordsComponent = GetNextComponentString(providerComponent.End + 1); + _enabledKeywords = ParseEnabledKeywordsMask(keywordsComponent); + + auto levelComponent = GetNextComponentString(keywordsComponent.End + 1); + _level = ParseEnabledKeywordsMask(levelComponent); + _isValid = true; + } + + bool IsValid() const + { + return _isValid; + } + + LPCWSTR GetProviderName() const + { + return _provider; + } + + ULONGLONG GetEnabledKeywordsMask() const + { + return _enabledKeywords; + } + + UINT GetLevel() const + { + return _level; + } + +private: + struct ComponentSpan + { + public: + ComponentSpan(LPCWSTR start, LPCWSTR end) + : Start(start), End(end) + { + } + + LPCWSTR Start; + LPCWSTR End; + }; + + ComponentSpan GetNextComponentString(LPCWSTR start) const + { + static WCHAR ComponentDelimiter = W(':'); + + auto end = wcschr(start, ComponentDelimiter); + if (end == nullptr) + { + end = start + wcslen(start); + } + + return ComponentSpan(start, end); + } + + LPCWSTR ParseProviderName(ComponentSpan const & component) const + { + auto providerName = (WCHAR*)nullptr; + if ((component.End - component.Start) != 0) + { + auto const length = component.End - component.Start; + providerName = new WCHAR[length + 1]; + memset(providerName, '\0', (length + 1) * sizeof(WCHAR)); + wcsncpy(providerName, component.Start, length); + } + return providerName; + } + + ULONGLONG ParseEnabledKeywordsMask(ComponentSpan const & component) const + { + auto enabledKeywordsMask = (ULONGLONG)(-1); + if ((component.End - component.Start) != 0) + { + enabledKeywordsMask = _wcstoui64(component.Start, nullptr, 16); + } + return enabledKeywordsMask; + } + + UINT ParseLevel(ComponentSpan const & component) const + { + auto level = TRACE_LEVEL_VERBOSE; + if ((component.End - component.Start) != 0) + { + level = _wtoi(component.Start); + } + return level; + } + + LPCWSTR _provider; + ULONGLONG _enabledKeywords; + UINT _level; + bool _isValid; }; -#endif // defined(FEATURE_PERFTRACING) -#if defined(FEATURE_EVENT_TRACE) || defined(FEATURE_EVENTSOURCE_XPLAT) +class XplatEventLoggerController +{ +public: + + static void UpdateProviderContext(XplatEventLoggerConfiguration const &config) + { + if (!config.IsValid()) + { + return; + } -#include "clrconfig.h" - class XplatEventLogger + auto providerName = config.GetProviderName(); + auto enabledKeywordsMask = config.GetEnabledKeywordsMask(); + auto level = config.GetLevel(); + if (_wcsicmp(providerName, W("*")) == 0 && enabledKeywordsMask == (ULONGLONG)(-1) && level == TRACE_LEVEL_VERBOSE) + { + ActivateAllKeywordsOfAllProviders(); + } + else + { + auto provider = GetProvider(providerName); + if (provider == nullptr) + { + return; + } + provider->EnabledKeywordsBitmask = enabledKeywordsMask; + provider->Level = level; + provider->IsEnabled = true; + } + } + + static void ActivateAllKeywordsOfAllProviders() + { + for (LTTNG_TRACE_CONTEXT * const provider : ALL_LTTNG_PROVIDERS_CONTEXT) + { + provider->EnabledKeywordsBitmask = (ULONGLONG)(-1); + provider->Level = TRACE_LEVEL_VERBOSE; + provider->IsEnabled = true; + } + } + +private: + + static LTTNG_TRACE_CONTEXT * const GetProvider(LPCWSTR providerName) + { + auto length = wcslen(providerName); + for (auto provider : ALL_LTTNG_PROVIDERS_CONTEXT) + { + if (_wcsicmp(provider->Name, providerName) == 0) + { + return provider; + } + } + return nullptr; + } +}; + +class XplatEventLogger { - public: - inline static BOOL IsEventLoggingEnabled() +public: + + inline static BOOL IsEventLoggingEnabled() + { + static ConfigDWORD configEventLogging; + return configEventLogging.val(CLRConfig::EXTERNAL_EnableEventLog); + } + + inline static bool IsProviderEnabled(DOTNET_TRACE_CONTEXT providerCtx) + { + return providerCtx.LttngProvider->IsEnabled; + } + + inline static bool IsKeywordEnabled(DOTNET_TRACE_CONTEXT providerCtx, UCHAR level, ULONGLONG keyword) + { + if (!providerCtx.LttngProvider->IsEnabled) { - static ConfigDWORD configEventLogging; - return configEventLogging.val(CLRConfig::EXTERNAL_EnableEventLog); + return false; } + + if ((level <= providerCtx.LttngProvider->Level) || (providerCtx.LttngProvider->Level == 0)) + { + if ((keyword == 0) || ((keyword & providerCtx.LttngProvider->EnabledKeywordsBitmask) != 0)) + { + return true; + } + } + return false; + } + + + /* + This method is where COMPlus_LTTngConfig environment variable is parsed and is registered with the runtime provider + context structs generated by src/scripts/genEventing.py. + It expects the environment variable to look like: + provider:keywords:level,provider:keywords:level + (Notice the "arguments" part is missing compared to EventPipe configuration) + + Ex) + Microsoft-Windows-DotNETRuntime:deadbeefdeadbeef:4,Microsoft-Windows-DotNETRuntimePrivate:deafbeefdeadbeef:5 + */ + static void InitializeLogger() + { + if (!IsEventLoggingEnabled()) + { + return; + } + + LPWSTR xplatEventConfig = NULL; + CLRConfig::GetConfigValue(CLRConfig::INTERNAL_LTTngConfig, &xplatEventConfig); + auto configuration = XplatEventLoggerConfiguration(); + auto configToParse = xplatEventConfig; + + if (configToParse == nullptr || *configToParse == L'\0') + { + XplatEventLoggerController::ActivateAllKeywordsOfAllProviders(); + return; + } + while (configToParse != nullptr) + { + static WCHAR comma = W(','); + auto end = wcschr(configToParse, comma); + configuration.Parse(configToParse); + XplatEventLoggerController::UpdateProviderContext(configuration); + if (end == nullptr) + { + break; + } + configToParse = end + 1; + } + } }; -#endif //defined(FEATURE_EVENT_TRACE) + +#endif // defined(FEATURE_PAL) && (defined(FEATURE_EVENT_TRACE) || defined(FEATURE_EVENTSOURCE_XPLAT)) #if defined(FEATURE_EVENT_TRACE) +struct EventFilterDescriptor; + VOID EventPipeEtwCallbackDotNETRuntimeStress( _In_ LPCGUID SourceId, _In_ ULONG ControlCode, _In_ UCHAR Level, _In_ ULONGLONG MatchAnyKeyword, _In_ ULONGLONG MatchAllKeyword, - _In_opt_ PVOID FilterData, + _In_opt_ EventFilterDescriptor* FilterData, _Inout_opt_ PVOID CallbackContext); VOID EventPipeEtwCallbackDotNETRuntime( @@ -257,7 +514,7 @@ VOID EventPipeEtwCallbackDotNETRuntime( _In_ UCHAR Level, _In_ ULONGLONG MatchAnyKeyword, _In_ ULONGLONG MatchAllKeyword, - _In_opt_ PVOID FilterData, + _In_opt_ EventFilterDescriptor* FilterData, _Inout_opt_ PVOID CallbackContext); VOID EventPipeEtwCallbackDotNETRuntimeRundown( @@ -266,7 +523,7 @@ VOID EventPipeEtwCallbackDotNETRuntimeRundown( _In_ UCHAR Level, _In_ ULONGLONG MatchAnyKeyword, _In_ ULONGLONG MatchAllKeyword, - _In_opt_ PVOID FilterData, + _In_opt_ EventFilterDescriptor* FilterData, _Inout_opt_ PVOID CallbackContext); VOID EventPipeEtwCallbackDotNETRuntimePrivate( @@ -275,7 +532,7 @@ VOID EventPipeEtwCallbackDotNETRuntimePrivate( _In_ UCHAR Level, _In_ ULONGLONG MatchAnyKeyword, _In_ ULONGLONG MatchAllKeyword, - _In_opt_ PVOID FilterData, + _In_opt_ EventFilterDescriptor* FilterData, _Inout_opt_ PVOID CallbackContext); #ifndef FEATURE_PAL @@ -329,10 +586,18 @@ extern "C" { #endif //!DONOT_DEFINE_ETW_CALLBACK && !DACCESS_COMPILE #endif //!FEATURE_PAL - #include "clretwallmain.h" -#endif // FEATURE_EVENT_TRACE +#if defined(FEATURE_PERFTRACING) +class EventPipeHelper +{ +public: + static bool Enabled(); + static bool IsEnabled(DOTNET_TRACE_CONTEXT Context, UCHAR Level, ULONGLONG Keyword); +}; +#endif // defined(FEATURE_PERFTRACING) + +#endif // FEATURE_EVENT_TRACE /**************************/ /* CLR ETW infrastructure */ @@ -351,7 +616,7 @@ extern "C" { // has started, one may want to do something useful when that happens (e.g enumerate all the loaded modules // in the system). To enable this, we have to implement a callback routine. // file:../VM/eventtrace.cpp#EtwCallback is CLR's implementation of the callback. -// +// #include "daccess.h" class Module; @@ -379,7 +644,7 @@ namespace ETW { // Class to wrap the ETW infrastructure logic #if !defined(FEATURE_PAL) - class CEtwTracer + class CEtwTracer { #if defined(FEATURE_EVENT_TRACE) ULONG RegGuids(LPCGUID ProviderId, PENABLECALLBACK EnableCallback, PVOID CallbackContext, PREGHANDLE RegHandle); @@ -391,7 +656,7 @@ namespace ETW HRESULT Register(); // Unregisters all the Event Tracing providers - HRESULT UnRegister(); + HRESULT UnRegister(); #else HRESULT Register() { @@ -406,7 +671,7 @@ namespace ETW #endif // !defined(FEATURE_PAL) class LoaderLog; - class MethodLog; + class MethodLog; // Class to wrap all the enumeration logic for ETW class EnumerationLog { @@ -447,7 +712,7 @@ namespace ETW MethodDCEndILToNativeMap= 0x00020000, JitMethodILToNativeMap= 0x00040000, TypeUnload= 0x00080000, - + // Helpers ModuleRangeEnabledAny = ModuleRangeLoad | ModuleRangeDCStart | ModuleRangeDCEnd | ModuleRangeLoadPrivate, JitMethodLoadOrDCStartAny = JitMethodLoad | JitMethodDCStart | MethodDCStartILToNativeMap, @@ -457,6 +722,7 @@ namespace ETW static VOID ProcessShutdown(); static VOID ModuleRangeRundown(); + static VOID SendOneTimeRundownEvents(); static VOID StartRundown(); static VOID EndRundown(); static VOID EnumerateForCaptureState(); @@ -475,7 +741,7 @@ namespace ETW { #if defined(FEATURE_EVENT_TRACE) && !defined(FEATURE_PAL) public: - typedef enum _EtwStackWalkStatus + typedef enum _EtwStackWalkStatus { Completed = 0, UnInitialized = 1, @@ -492,7 +758,7 @@ namespace ETW EtwStackWalkStatus GetCurrentThreadsCallStack(UINT32 *frameCount, PVOID **Stack); #endif // FEATURE_EVENT_TRACE && !defined(FEATURE_PAL) }; - + // Class to wrap all Loader logic for ETW class LoaderLog { @@ -529,6 +795,7 @@ namespace ETW ManifestModule=0x8, IbcOptimized=0x10, ReadyToRunModule=0x20, + PartialReadyToRunModule=0x40, }ModuleFlags; typedef enum _RangeFlags @@ -537,9 +804,9 @@ namespace ETW }RangeFlags; }LoaderStructs; - + static VOID DomainLoadReal(BaseDomain *pDomain, __in_opt LPWSTR wszFriendlyName=NULL); - + static VOID DomainLoad(BaseDomain *pDomain, __in_opt LPWSTR wszFriendlyName = NULL) { if (ETW_PROVIDER_ENABLED(MICROSOFT_WINDOWS_DOTNETRUNTIME_PROVIDER)) @@ -566,18 +833,18 @@ namespace ETW friend class ETW::EnumerationLog; #ifdef FEATURE_EVENT_TRACE static VOID SendEventsForJitMethods(BaseDomain *pDomainFilter, LoaderAllocator *pLoaderAllocatorFilter, DWORD dwEventOptions); - static VOID SendEventsForJitMethodsHelper(BaseDomain *pDomainFilter, + static VOID SendEventsForJitMethodsHelper( LoaderAllocator *pLoaderAllocatorFilter, DWORD dwEventOptions, BOOL fLoadOrDCStart, BOOL fUnloadOrDCEnd, BOOL fSendMethodEvent, BOOL fSendILToNativeMapEvent, - BOOL fGetReJitIDs); + BOOL fGetCodeIds); static VOID SendEventsForNgenMethods(Module *pModule, DWORD dwEventOptions); static VOID SendMethodJitStartEvent(MethodDesc *pMethodDesc, SString *namespaceOrClassName=NULL, SString *methodName=NULL, SString *methodSignature=NULL); - static VOID SendMethodILToNativeMapEvent(MethodDesc * pMethodDesc, DWORD dwEventOptions, SIZE_T pCode, ReJITID rejitID); - static VOID SendMethodEvent(MethodDesc *pMethodDesc, DWORD dwEventOptions, BOOL bIsJit, SString *namespaceOrClassName=NULL, SString *methodName=NULL, SString *methodSignature=NULL, SIZE_T pCode = 0, ReJITID rejitID = 0, BOOL bProfilerRejectedPrecompiledCode = FALSE, BOOL bReadyToRunRejectedPrecompiledCode = FALSE); + static VOID SendMethodILToNativeMapEvent(MethodDesc * pMethodDesc, DWORD dwEventOptions, PCODE pNativeCodeStartAddress, ReJITID ilCodeId); + static VOID SendMethodEvent(MethodDesc *pMethodDesc, DWORD dwEventOptions, BOOL bIsJit, SString *namespaceOrClassName=NULL, SString *methodName=NULL, SString *methodSignature=NULL, PCODE pNativeCodeStartAddress = 0, PrepareCodeConfig *pConfig = NULL); static VOID SendHelperEvent(ULONGLONG ullHelperStartAddress, ULONG ulHelperSize, LPCWSTR pHelperName); public: typedef union _MethodStructs @@ -591,6 +858,7 @@ namespace ETW JitHelperMethod=0x10, ProfilerRejectedPrecompiledCode=0x20, ReadyToRunRejectedPrecompiledCode=0x40, + // 0x80 to 0x200 are used for the optimization tier }MethodFlags; typedef enum _MethodExtent @@ -601,8 +869,12 @@ namespace ETW }MethodStructs; - static VOID MethodJitting(MethodDesc *pMethodDesc, SString *namespaceOrClassName=NULL, SString *methodName=NULL, SString *methodSignature=NULL); - static VOID MethodJitted(MethodDesc *pMethodDesc, SString *namespaceOrClassName=NULL, SString *methodName=NULL, SString *methodSignature=NULL, SIZE_T pCode = 0, ReJITID rejitID = 0, BOOL bProfilerRejectedPrecompiledCode = FALSE, BOOL bReadyToRunRejectedPrecompiledCode = FALSE); + static const UINT8 MethodFlagsJitOptimizationTierShift = 7; + static const unsigned int MethodFlagsJitOptimizationTierLowMask = 0x7; + + static VOID GetR2RGetEntryPoint(MethodDesc *pMethodDesc, PCODE pEntryPoint); + static VOID MethodJitting(MethodDesc *pMethodDesc, SString *namespaceOrClassName, SString *methodName, SString *methodSignature); + static VOID MethodJitted(MethodDesc *pMethodDesc, SString *namespaceOrClassName, SString *methodName, SString *methodSignature, PCODE pNativeCodeStartAddress, PrepareCodeConfig *pConfig); static VOID StubInitialized(ULONGLONG ullHelperStartAddress, LPCWSTR pHelperName); static VOID StubsInitialized(PVOID *pHelperStartAddresss, PVOID *pHelperNames, LONG ulNoOfHelpers); static VOID MethodRestored(MethodDesc * pMethodDesc); @@ -610,8 +882,9 @@ namespace ETW static VOID DynamicMethodDestroyed(MethodDesc *pMethodDesc); #else // FEATURE_EVENT_TRACE public: - static VOID MethodJitting(MethodDesc *pMethodDesc, SString *namespaceOrClassName=NULL, SString *methodName=NULL, SString *methodSignature=NULL) {}; - static VOID MethodJitted(MethodDesc *pMethodDesc, SString *namespaceOrClassName=NULL, SString *methodName=NULL, SString *methodSignature=NULL, SIZE_T pCode = 0, ReJITID rejitID = 0, BOOL bProfilerRejectedPrecompiledCode = FALSE, BOOL bReadyToRunRejectedPrecompiledCode = FALSE) {}; + static VOID GetR2RGetEntryPoint(MethodDesc *pMethodDesc, PCODE pEntryPoint) {}; + static VOID MethodJitting(MethodDesc *pMethodDesc, SString *namespaceOrClassName, SString *methodName, SString *methodSignature); + static VOID MethodJitted(MethodDesc *pMethodDesc, SString *namespaceOrClassName, SString *methodName, SString *methodSignature, PCODE pNativeCodeStartAddress, PrepareCodeConfig *pConfig); static VOID StubInitialized(ULONGLONG ullHelperStartAddress, LPCWSTR pHelperName) {}; static VOID StubsInitialized(PVOID *pHelperStartAddresss, PVOID *pHelperNames, LONG ulNoOfHelpers) {}; static VOID MethodRestored(MethodDesc * pMethodDesc) {}; @@ -733,7 +1006,7 @@ namespace ETW { public: typedef union _BinderStructs { - typedef enum _NGENBINDREJECT_REASON { + typedef enum _NGENBINDREJECT_REASON { NGEN_BIND_START_BIND = 0, NGEN_BIND_NO_INDEX = 1, NGEN_BIND_SYSTEM_ASSEMBLY_NOT_AVAILABLE = 2, @@ -797,19 +1070,19 @@ namespace ETW IsCLSCompliant=0x10 }ExceptionThrownFlags; }ExceptionStructs; - }; + }; // Class to wrap all Contention logic for ETW class ContentionLog { public: - typedef union _ContentionStructs + typedef union _ContentionStructs { - typedef enum _ContentionFlags { + typedef enum _ContentionFlags { ManagedContention=0, NativeContention=1 } ContentionFlags; } ContentionStructs; - }; + }; // Class to wrap all Interop logic for ETW class InteropLog { @@ -820,7 +1093,7 @@ namespace ETW class InfoLog { public: - typedef union _InfoStructs + typedef union _InfoStructs { typedef enum _StartupMode { @@ -866,6 +1139,86 @@ namespace ETW DWORD countSymbolBytes, DWORD* pCountSymbolBytesRead) { return S_OK; } #endif // FEATURE_EVENT_TRACE }; + +#define DISABLE_CONSTRUCT_COPY(T) \ + T() = delete; \ + T(const T &) = delete; \ + T &operator =(const T &) = delete + + // Class to wrap all Compilation logic for ETW + class CompilationLog + { + public: + class Runtime + { + public: +#ifdef FEATURE_EVENT_TRACE + static bool IsEnabled(); +#else + static bool IsEnabled() { return false; } +#endif + + DISABLE_CONSTRUCT_COPY(Runtime); + }; + + class Rundown + { + public: +#ifdef FEATURE_EVENT_TRACE + static bool IsEnabled(); +#else + static bool IsEnabled() { return false; } +#endif + + DISABLE_CONSTRUCT_COPY(Rundown); + }; + + // Class to wrap all TieredCompilation logic for ETW + class TieredCompilation + { + private: + static void GetSettings(UINT32 *flagsRef); + + public: + class Runtime + { + public: +#ifdef FEATURE_EVENT_TRACE + static bool IsEnabled(); + static void SendSettings(); + static void SendPause(); + static void SendResume(UINT32 newMethodCount); + static void SendBackgroundJitStart(UINT32 pendingMethodCount); + static void SendBackgroundJitStop(UINT32 pendingMethodCount, UINT32 jittedMethodCount); +#else + static bool IsEnabled() { return false; } + static void SendSettings() {} +#endif + + DISABLE_CONSTRUCT_COPY(Runtime); + }; + + class Rundown + { + public: +#ifdef FEATURE_EVENT_TRACE + static bool IsEnabled(); + static void SendSettings(); +#else + static bool IsEnabled() { return false; } + static void SendSettings() {} +#endif + + DISABLE_CONSTRUCT_COPY(Rundown); + }; + + DISABLE_CONSTRUCT_COPY(TieredCompilation); + }; + + DISABLE_CONSTRUCT_COPY(CompilationLog); + }; + +#undef DISABLE_CONSTRUCT_COPY }; @@ -952,7 +1305,7 @@ class ETWTraceStartup { } static void StartupTraceEvent(REGHANDLE _TraceHandle, PCEVENT_DESCRIPTOR _EventDescriptor, LPCGUID _EventGuid) { EVENT_DESCRIPTOR desc = *_EventDescriptor; - if(ETW_TRACING_ENABLED(MICROSOFT_WINDOWS_DOTNETRUNTIME_PRIVATE_PROVIDER_Context, desc)) + if(ETW_TRACING_ENABLED(MICROSOFT_WINDOWS_DOTNETRUNTIME_PRIVATE_PROVIDER_DOTNET_Context, desc)) { CoMofTemplate_h(MICROSOFT_WINDOWS_DOTNETRUNTIME_PRIVATE_PROVIDER_Context.RegistrationHandle, _EventDescriptor, _EventGuid, GetClrInstanceId()); } @@ -961,7 +1314,7 @@ class ETWTraceStartup { // "mc.exe -MOF" already generates this block for XP-suported builds inside ClrEtwAll.h; // on Vista+ builds, mc is run without -MOF, and we still have code that depends on it, so // we manually place it here. -FORCEINLINE +FORCEINLINE BOOLEAN __stdcall McGenEventTracingEnabled( __in PMCGEN_TRACE_CONTEXT EnableInfo, @@ -1056,7 +1409,7 @@ struct CallStackFrame #endif // FEATURE_EVENT_TRACE #if defined(FEATURE_EVENT_TRACE) && !defined(FEATURE_PAL) -FORCEINLINE +FORCEINLINE BOOLEAN __stdcall McGenEventProviderEnabled( __in PMCGEN_TRACE_CONTEXT Context, diff --git a/lib/coreclr/src/inc/ex.h b/lib/coreclr/src/inc/ex.h index 6497da027b5a..ac40cbacdf56 100644 --- a/lib/coreclr/src/inc/ex.h +++ b/lib/coreclr/src/inc/ex.h @@ -21,7 +21,6 @@ #include "winwrap.h" #include "corerror.h" #include "stresslog.h" -#include "genericstackprobe.h" #include "staticcontract.h" #include "entrypoints.h" @@ -121,18 +120,6 @@ void GetCurrentExceptionPointers(PEXCEPTION_POINTERS pExceptionInfo); // --------------------------------------------------------------------------- DWORD GetCurrentExceptionCode(); -// --------------------------------------------------------------------------- -// We save current ExceptionPointers using VectoredExceptionHandler. The save data is only valid -// duing exception handling. Return TRUE if the current exception is hard or soft SO. -// --------------------------------------------------------------------------- -bool IsCurrentExceptionSO(); - -// --------------------------------------------------------------------------- -// Return TRUE if the current exception is hard( or soft) SO. Soft SO -// is defined when the stack probing code is enabled (FEATURE_STACK_PROBE) -// --------------------------------------------------------------------------- -bool IsSOExceptionCode(DWORD exceptionCode); - // --------------------------------------------------------------------------- // Standard exception hierarchy & infrastructure for library code & EE // --------------------------------------------------------------------------- @@ -158,8 +145,6 @@ Exception | |-> DelegatingException Y | - |-> StackOverflowException Y - | |-> OutOfMemoryException Y | |-> CLRException Y @@ -244,15 +229,12 @@ class Exception HandlerState(); void CleanupTry(); - void SetupCatch(INDEBUG_COMMA(__in_z const char * szFile) int lineNum, bool fVMInitialized = true); + void SetupCatch(INDEBUG_COMMA(__in_z const char * szFile) int lineNum); void SucceedCatch(); BOOL DidCatch() { return (m_dwFlags & Caught); } void SetCaught() { m_dwFlags |= Caught; } - BOOL DidCatchSO() { return (m_dwFlags & CaughtSO); } - void SetCaughtSO() { m_dwFlags |= CaughtSO; } - BOOL DidCatchCxx() { return (m_dwFlags & CaughtCxx); } void SetCaughtCxx() { m_dwFlags |= CaughtCxx; } }; @@ -720,10 +702,6 @@ class CAutoTryCleanup // backout code following the END_CATCH that has to be executed. The solution is // to replace that backout code with holder objects. - -// This is a rotten way to define an enum but as long as we're treating -// "if (optimizabletoconstant)" warnings as fatal errors, we have little choice. - //----------------------------------------------------------------------- #define RethrowTransientExceptions \ @@ -732,14 +710,6 @@ class CAutoTryCleanup EX_RETHROW; \ } \ -#define RethrowSOExceptions \ - if (__state.DidCatchSO()) \ - { \ - STATIC_CONTRACT_THROWS_TERMINAL; \ - EX_RETHROW; \ - } \ - - // Don't use this - use RethrowCorruptingExceptions (see below) instead. #define SwallowAllExceptions ; @@ -771,10 +741,6 @@ class CAutoTryCleanup // SET_CE_RETHROW_FLAG_FOR_EX_CATCH macros helps evaluate if the CE is to be rethrown or not. This has been redefined in // Clrex.h to add the condition of evaluating the throwable as well (which is not available outside the VM folder). // -// Typically, SET_CE_RETHROW_FLAG_FOR_EX_CATCH would rethrow a Corrupted State Exception. However, SO needs to be dealt -// with specially and this work is done during EX_CATCH, by calling SetupCatch against the handler state, and by EX_ENDTRY -// by calling HANDLE_STACKOVERFLOW_AFTER_CATCH. -// // Passing FALSE as the second argument to IsProcessCorruptedStateException implies that SET_CE_RETHROW_FLAG_FOR_EX_CATCH // will ensure that we dont rethrow SO and allow EX_ENDTRY to SO specific processing. If none is done, then EX_ENDTRY will // rethrow SO. By that time stack has been reclaimed and thus, throwing SO will be safe. @@ -851,13 +817,10 @@ void ExThrowTrap(const char *fcn, const char *file, int line, const char *szType #endif -#define HANDLE_SO_TOLERANCE_FOR_THROW - #define EX_THROW(_type, _args) \ { \ FAULT_NOT_FATAL(); \ \ - HANDLE_SO_TOLERANCE_FOR_THROW; \ _type * ___pExForExThrow = new _type _args ; \ /* don't embed file names in retail to save space and avoid IP */ \ /* a findstr /n will allow you to locate it in a pinch */ \ @@ -884,7 +847,6 @@ Exception *ExThrowWithInnerHelper(Exception *inner); { \ FAULT_NOT_FATAL(); \ \ - HANDLE_SO_TOLERANCE_FOR_THROW; \ Exception *_inner2 = ExThrowWithInnerHelper(_inner); \ _type *___pExForExThrow = new _type _args ; \ ___pExForExThrow->SetInnerException(_inner2); \ @@ -926,7 +888,8 @@ Exception *ExThrowWithInnerHelper(Exception *inner); INDEBUG(static bool __alwayszero;) \ INDEBUG(VolatileLoad(&__alwayszero);) \ { \ - /* this is necessary for Rotor exception handling to work */ \ + /* Disallow returns to make exception handling work. */ \ + /* Some work is done after the catch, see EX_ENDTRY. */ \ DEBUG_ASSURE_NO_RETURN_BEGIN(EX_TRY) \ EX_TRY_HOLDER \ @@ -951,7 +914,6 @@ Exception *ExThrowWithInnerHelper(Exception *inner); PAL_CPP_CATCH_ALL \ { \ SCAN_EHMARKER_CATCH(); \ - VALIDATE_BACKOUT_STACK_CONSUMPTION; \ __defaultException_t __defaultException; \ CHECK::ResetAssert(); \ ExceptionHolder __pException(__state.m_pExceptionPtr); \ @@ -977,7 +939,8 @@ Exception *ExThrowWithInnerHelper(Exception *inner); INDEBUG(static bool __alwayszero;) \ INDEBUG(VolatileLoad(&__alwayszero);) \ { \ - /* this is necessary for Rotor exception handling to work */ \ + /* Disallow returns to make exception handling work. */ \ + /* Some work is done after the catch, see EX_ENDTRY. */ \ DEBUG_ASSURE_NO_RETURN_BEGIN(EX_TRY) \ #define EX_CATCH_IMPL_CPP_ONLY \ @@ -992,7 +955,6 @@ Exception *ExThrowWithInnerHelper(Exception *inner); __state.m_pExceptionPtr = __pExceptionRaw; \ SCAN_EHMARKER_END_CATCH(); \ SCAN_IGNORE_THROW_MARKER; \ - VALIDATE_BACKOUT_STACK_CONSUMPTION; \ __defaultException_t __defaultException; \ CHECK::ResetAssert(); \ ExceptionHolder __pException(__state.m_pExceptionPtr); \ @@ -1061,18 +1023,10 @@ Exception *ExThrowWithInnerHelper(Exception *inner); } \ SCAN_EHMARKER_END_CATCH(); \ } \ - EX_ENDTRY \ - + EX_ENDTRY + #define EX_ENDTRY \ - PAL_CPP_ENDTRY \ - if (__state.DidCatch()) \ - { \ - RESTORE_SO_TOLERANCE_STATE; \ - } \ - if (__state.DidCatchSO()) \ - { \ - HANDLE_STACKOVERFLOW_AFTER_CATCH; \ - } + PAL_CPP_ENDTRY #define EX_RETHROW \ { \ @@ -1130,10 +1084,7 @@ Exception *ExThrowWithInnerHelper(Exception *inner); #define EX_CATCH_THROWABLE(ppThrowable) \ EX_CATCH \ { \ - if (NULL != ppThrowable) \ - { \ - *ppThrowable = GET_THROWABLE(); \ - } \ + *ppThrowable = GET_THROWABLE(); \ } \ EX_END_CATCH(SwallowAllExceptions) @@ -1306,15 +1257,9 @@ Exception *ExThrowWithInnerHelper(Exception *inner); #define EX_END_HOOK \ } \ ANNOTATION_HANDLER_END; \ - if (IsCurrentExceptionSO()) \ - __state.SetCaughtSO(); \ - VM_NO_SO_INFRASTRUCTURE_CODE(_ASSERTE(!__state.DidCatchSO());) \ - if (!__state.DidCatchSO()) \ - EX_RETHROW; \ + EX_RETHROW; \ EX_END_CATCH_FOR_HOOK; \ - SO_INFRASTRUCTURE_CODE(if (__state.DidCatchSO())) \ - SO_INFRASTRUCTURE_CODE(ThrowStackOverflow();) \ - } \ + } // --------------------------------------------------------------------------- // Inline implementations. Pay no attention to that man behind the curtain. @@ -1323,7 +1268,6 @@ Exception *ExThrowWithInnerHelper(Exception *inner); inline Exception::HandlerState::HandlerState() { STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_CANNOT_TAKE_LOCK; STATIC_CONTRACT_SUPPORTS_DAC; @@ -1343,22 +1287,10 @@ inline void Exception::HandlerState::CleanupTry() LIMITED_METHOD_DAC_CONTRACT; } -inline void Exception::HandlerState::SetupCatch(INDEBUG_COMMA(__in_z const char * szFile) int lineNum, bool fVMInitialized /* = true */) +inline void Exception::HandlerState::SetupCatch(INDEBUG_COMMA(__in_z const char * szFile) int lineNum) { WRAPPER_NO_CONTRACT; - if (fVMInitialized) - { - // Calling into IsCurrentExceptionSO will end up using various VM support entities (e.g. TLS slots, accessing CExecutionEngine - // implementation that accesses other VM specific data, etc) that may not be ready/initialized - // until the VM is initialized. - // - // This is particularly important when we have exceptions thrown/triggerred during runtime's initialization - // and accessing such data can result in possible recursive AV's in the runtime. - if (IsCurrentExceptionSO()) - SetCaughtSO(); - } - /* don't embed file names in retail to save space and avoid IP */ /* a findstr /n will allow you to locate it in a pinch */ #ifdef _DEBUG @@ -1447,7 +1379,6 @@ void DECLSPEC_NORETURN ThrowWin32(DWORD err); void DECLSPEC_NORETURN ThrowLastError(); void DECLSPEC_NORETURN ThrowOutOfMemory(); void DECLSPEC_NORETURN ThrowStackOverflow(); -void DECLSPEC_NORETURN ThrowMessage(LPCSTR message, ...); #undef IfFailThrow inline HRESULT IfFailThrow(HRESULT hr) diff --git a/lib/coreclr/src/inc/fixuppointer.h b/lib/coreclr/src/inc/fixuppointer.h index 5a897e44eaa0..18886c0f5498 100644 --- a/lib/coreclr/src/inc/fixuppointer.h +++ b/lib/coreclr/src/inc/fixuppointer.h @@ -156,6 +156,26 @@ class RelativePointer } #endif // DACCESS_COMPILE + static TADDR GetRelativeMaybeNull(TADDR base, TADDR addr) + { + LIMITED_METHOD_DAC_CONTRACT; + if (addr == NULL) + { + return NULL; + } + else + { + return addr - base; + } + } + + static TADDR GetRelative(TADDR base, TADDR addr) + { + LIMITED_METHOD_DAC_CONTRACT; + PRECONDITION(addr != NULL); + return addr - base; + } + private: #ifndef DACCESS_COMPILE Volatile m_delta; @@ -568,16 +588,13 @@ class PlainPointer BOOL IsTagged(TADDR base) const { LIMITED_METHOD_DAC_CONTRACT; - return IsTagged(); + return FALSE; } // Returns whether the indirection cell contain fixup that has not been converted to real pointer yet. BOOL IsTagged() const { LIMITED_METHOD_DAC_CONTRACT; - TADDR addr = m_ptr; - if ((addr & FIXUP_POINTER_INDIRECTION) != 0) - return (*PTR_TADDR(addr - FIXUP_POINTER_INDIRECTION) & 1) != 0; return FALSE; } @@ -593,9 +610,6 @@ class PlainPointer PTR_TYPE * GetValuePtr() const { LIMITED_METHOD_CONTRACT; - TADDR addr = m_ptr; - if ((addr & FIXUP_POINTER_INDIRECTION) != 0) - return (PTR_TYPE *)(addr - FIXUP_POINTER_INDIRECTION); return (PTR_TYPE *)&m_ptr; } #endif // !DACCESS_COMPILE @@ -635,12 +649,27 @@ class PlainPointer return dac_cast)>(base)->GetValueMaybeNull(base); } + // Returns value of the encoded pointer. + // Allows the value to be tagged. + FORCEINLINE TADDR GetValueMaybeTagged() const + { + LIMITED_METHOD_DAC_CONTRACT; + return m_ptr; + } + + // Returns value of the encoded pointer. Assumes that the pointer is not NULL. + // Allows the value to be tagged. + FORCEINLINE TADDR GetValueMaybeTagged(TADDR base) const + { + LIMITED_METHOD_DAC_CONTRACT; + return m_ptr; + } + // Returns whether pointer is indirect. Assumes that the value is not NULL. bool IsIndirectPtr(TADDR base) const { LIMITED_METHOD_DAC_CONTRACT; - - return (m_ptr & FIXUP_POINTER_INDIRECTION) != 0; + return FALSE; } #ifndef DACCESS_COMPILE @@ -649,7 +678,7 @@ class PlainPointer bool IsIndirectPtr() const { LIMITED_METHOD_CONTRACT; - return IsIndirectPtr((TADDR)this); + return FALSE; } #endif @@ -657,8 +686,7 @@ class PlainPointer bool IsIndirectPtrMaybeNull(TADDR base) const { LIMITED_METHOD_DAC_CONTRACT; - - return IsIndirectPtr(base); + return FALSE; } #ifndef DACCESS_COMPILE @@ -667,7 +695,7 @@ class PlainPointer bool IsIndirectPtrMaybeNull() const { LIMITED_METHOD_CONTRACT; - return IsIndirectPtrMaybeNull((TADDR)this); + return FALSE; } #endif @@ -721,6 +749,19 @@ class PlainPointer } #endif + static TADDR GetRelativeMaybeNull(TADDR base, TADDR addr) + { + LIMITED_METHOD_DAC_CONTRACT; + return addr; + } + + static TADDR GetRelative(TADDR base, TADDR addr) + { + LIMITED_METHOD_DAC_CONTRACT; + PRECONDITION(addr != NULL); + return addr; + } + private: TADDR m_ptr; }; diff --git a/lib/coreclr/src/inc/formattype.cpp b/lib/coreclr/src/inc/formattype.cpp index 8a7965cb4fc2..fcbfadf6aeb4 100644 --- a/lib/coreclr/src/inc/formattype.cpp +++ b/lib/coreclr/src/inc/formattype.cpp @@ -86,7 +86,7 @@ static void appendStrNum(CQuickBytes *out, int num) { appendStr(out, buff); } -const PCCOR_SIGNATURE PrettyPrintSignature( +PCCOR_SIGNATURE PrettyPrintSignature( PCCOR_SIGNATURE typePtr, // type to convert, unsigned typeLen, // the lenght of 'typePtr' const char* name, // can be "", the name of the method for this sig 0 means local var sig @@ -184,7 +184,7 @@ const char* PrettyPrintSig( // Converts a com signature to a printable signature. // Note that return value is pointing at the CQuickBytes buffer, -const PCCOR_SIGNATURE PrettyPrintSignature( +PCCOR_SIGNATURE PrettyPrintSignature( PCCOR_SIGNATURE typePtr, // type to convert, unsigned typeLen, // the lenght of 'typePtr' const char* name, // can be "", the name of the method for this sig 0 means local var sig @@ -423,15 +423,12 @@ PCCOR_SIGNATURE PrettyPrintTypeOrDef( CONTRACTL { THROWS; - SO_TOLERANT; GC_NOTRIGGER; } CONTRACTL_END; PCCOR_SIGNATURE pBegin, pEnd=NULL; - BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(ThrowStackOverflow()); - #ifdef __ILDASM__ ULONG L = (ULONG)(out->Size()); #endif @@ -454,7 +451,6 @@ PCCOR_SIGNATURE PrettyPrintTypeOrDef( } } #endif - END_SO_INTOLERANT_CODE; return pEnd; } diff --git a/lib/coreclr/src/inc/fusionsetup.h b/lib/coreclr/src/inc/fusionsetup.h deleted file mode 100644 index 87b3e443e23c..000000000000 --- a/lib/coreclr/src/inc/fusionsetup.h +++ /dev/null @@ -1,63 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - - - -/*============================================================ -** -** Header: FusionSetup.h -** -** Purpose: Defines that are used in both managed and unmanged -** code -** -** -===========================================================*/ -#ifndef _FUSIONSETUP_H -#define _FUSIONSETUP_H - -#define DYNAMIC_DIRECTORY L"DYNAMIC_DIRECTORY" -#define LOADER_OPTIMIZATION L"LOADER_OPTIMIZATION" -#define LICENSE_FILE L"LICENSE_FILE" -#define APPENV_BASE L"APPBASE" -#define APPENV_RELATIVEPATH L"RELPATH" -#define APPENV_GLOBALPATH L"CORPATH" -#define APPENV_DEVPATH L"DEVPATH" -#define APPENV_RUNFROMSOURCE L"__FUSION_RUN_FROM_SOURCE__" -#define CONFIGURATION_EXTENSION L".config" -#define MACHINE_CONFIGURATION_FILE L"config\\machine.config" -#define MANIFEST_FILE_PATH L"MANIFEST_FILE_PATH" -#define VERSIONING_MANIFEST_BASE L"VERSIONING_MANIFEST_BASE" - -#ifndef ACTAG_HOST_CONFIG_FILE -#define ACTAG_HOST_CONFIG_FILE L"HOST_CONFIG" -#endif - -// These are defines instead of enums because they are -// used to change FusionSetup.cs as well as being used in -// unmanaged code. -// If you add a new value, add the corresponding enum value -// to AppDomainSetup+LoaderInformation, and add the corresponding -// property value to AppDomain.GetData() and SetData()'s switch -// statements. -#define LOADER_APPLICATION_BASE 0 -#define LOADER_CONFIGURATION_BASE 1 -#define LOADER_DYNAMIC_BASE 2 -#define LOADER_DEVPATH 3 -#define LOADER_APPLICATION_NAME 4 -#define LOADER_PRIVATE_PATH 5 -#define LOADER_PRIVATE_BIN_PATH_PROBE 6 -#define LOADER_SHADOW_COPY_DIRECTORIES 7 -#define LOADER_SHADOW_COPY_FILES 8 -#define LOADER_CACHE_PATH 9 -#define LOADER_LICENSE_FILE 10 -#define LOADER_DISALLOW_PUBLISHER_POLICY 11 -#define LOADER_DISALLOW_CODE_DOWNLOAD 12 -#define LOADER_DISALLOW_BINDING_REDIRECTS 13 -#define LOADER_DISALLOW_APPBASE_PROBING 14 -#define LOADER_CONFIGURATION_BYTES 15 -#define LOADER_MANIFEST_FILE_PATH 16 -#define LOADER_VERSIONING_MANIFEST_BASE 17 -#define LOADER_MAXIMUM 18 - -#endif diff --git a/lib/coreclr/src/inc/gcdecoder.cpp b/lib/coreclr/src/inc/gcdecoder.cpp index a2a2e8ccd58f..ed3f1f34d787 100644 --- a/lib/coreclr/src/inc/gcdecoder.cpp +++ b/lib/coreclr/src/inc/gcdecoder.cpp @@ -13,6 +13,11 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */ +// ****************************************************************************** +// WARNING!!!: This code is also used by SOS in the diagnostics repo. Should be +// updated in a backwards and forwards compatible way. +// See: https://github.com/dotnet/diagnostics/blob/master/src/inc/gcdecoder.cpp +// ****************************************************************************** #ifdef _TARGET_X86_ diff --git a/lib/coreclr/src/inc/gchost.idl b/lib/coreclr/src/inc/gchost.idl deleted file mode 100644 index 6d85f9151365..000000000000 --- a/lib/coreclr/src/inc/gchost.idl +++ /dev/null @@ -1,55 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -/* -------------------------------------------------------------------------- * - * Common Language Runtime Profiling interfaces - * - * The IGCHost allows a host environment to get statistics about the - * garbage collector as well as to gain some limited control over collections. - * This interface can be QueryInterface'd for on from the CorHost object. - * -------------------------------------------------------------------------- */ -import "unknwn.idl"; - - -#if defined(FEATURE_WINDOWSPHONE) -/* - * This structure is used to return statics for the GC system. Set the Flags - * value to a bitmask of values that should be returned. Only those values which - * are requested are calculated and returned to the caller. - */ -typedef struct _COR_GC_STATS -{ - ULONG Flags; // What values to get. - - // Value when COR_GC_COUNTS is specified. - SIZE_T ExplicitGCCount; // How many times was GC forced to run by external request. - SIZE_T GenCollectionsTaken[3]; // Number of collections done for each generation - - // Memory sizes, valid for COR_GC_MEMORYUSAGE. - SIZE_T CommittedKBytes; // Total committed bytes from all heaps. - SIZE_T ReservedKBytes; // Total reserved bytes from all heaps. - SIZE_T Gen0HeapSizeKBytes; // Size of gen 0 heap. - SIZE_T Gen1HeapSizeKBytes; // Size of gen 1 heap. - SIZE_T Gen2HeapSizeKBytes; // Size of gen 2 heap. - SIZE_T LargeObjectHeapSizeKBytes; // Size of large object heap. - SIZE_T KBytesPromotedFromGen0; // How many bytes promoted to next generation. - SIZE_T KBytesPromotedFromGen1; - -} COR_GC_STATS; -#endif // FEATURE_WINDOWSPHONE - -cpp_quote("/*") -cpp_quote(" * WARNING - This is a dummy interface that should never be used.") -cpp_quote(" * The code is written this way because Midl requires a CoClass, Interface, etc... that generates") -cpp_quote(" * a guid. Removing the IGCHost interface removes the only guid") -cpp_quote(" * This option was selected because ifdefs are not simple to implement for excluding files in SOURCES") -cpp_quote("*/") -[ - object, - uuid(F9423916-2A35-4f03-9EE9-DDAFA3C8AEE0), - pointer_default(unique), - local -] -interface IDummyDoNotUse : IUnknown -{ -} diff --git a/lib/coreclr/src/inc/gcinfo.h b/lib/coreclr/src/inc/gcinfo.h index 901f2cfc0762..acdfe6589a78 100644 --- a/lib/coreclr/src/inc/gcinfo.h +++ b/lib/coreclr/src/inc/gcinfo.h @@ -2,6 +2,11 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +// ****************************************************************************** +// WARNING!!!: These values are used by SOS in the diagnostics repo. Values should +// added or removed in a backwards and forwards compatible way. +// See: https://github.com/dotnet/diagnostics/blob/master/src/inc/gcinfo.h +// ****************************************************************************** /*****************************************************************************/ #ifndef _GCINFO_H_ diff --git a/lib/coreclr/src/inc/gcinfodecoder.h b/lib/coreclr/src/inc/gcinfodecoder.h index ad693e1414f3..dfaa3b16aec1 100644 --- a/lib/coreclr/src/inc/gcinfodecoder.h +++ b/lib/coreclr/src/inc/gcinfodecoder.h @@ -8,6 +8,12 @@ * *****************************************************************/ +// ****************************************************************************** +// WARNING!!!: These values are used by SOS in the diagnostics repo. Values should +// added or removed in a backwards and forwards compatible way. +// See: https://github.com/dotnet/diagnostics/blob/master/src/inc/gcinfodecoder.h +// ****************************************************************************** + #ifndef _GC_INFO_DECODER_ #define _GC_INFO_DECODER_ @@ -362,7 +368,7 @@ class BitStreamReader inline size_t DecodeVarLengthUnsigned( int base ) { _ASSERTE((base > 0) && (base < (int)BITS_PER_SIZE_T)); - size_t numEncodings = 1 << base; + size_t numEncodings = size_t{ 1 } << base; size_t result = 0; for(int shift=0; ; shift+=base) { @@ -381,7 +387,7 @@ class BitStreamReader inline SSIZE_T DecodeVarLengthSigned( int base ) { _ASSERTE((base > 0) && (base < (int)BITS_PER_SIZE_T)); - size_t numEncodings = 1 << base; + size_t numEncodings = size_t{ 1 } << base; SSIZE_T result = 0; for(int shift=0; ; shift+=base) { diff --git a/lib/coreclr/src/inc/gcinfodumper.h b/lib/coreclr/src/inc/gcinfodumper.h index 296dd295435a..cd939c134039 100644 --- a/lib/coreclr/src/inc/gcinfodumper.h +++ b/lib/coreclr/src/inc/gcinfodumper.h @@ -8,6 +8,11 @@ #include "gcinfotypes.h" #include "gcinfodecoder.h" +// ***************************************************************************** +// WARNING!!!: These values and code are also used by SOS in the diagnostics +// repo. Should updated in a backwards and forwards compatible way. +// See: https://github.com/dotnet/diagnostics/blob/master/src/inc/gcinfodumper.h +// ***************************************************************************** // // This class dumps the contents of the gc encodings, providing outputs diff --git a/lib/coreclr/src/inc/gcinfoencoder.h b/lib/coreclr/src/inc/gcinfoencoder.h index b1236ffeeb4a..18dfa8cfd078 100644 --- a/lib/coreclr/src/inc/gcinfoencoder.h +++ b/lib/coreclr/src/inc/gcinfoencoder.h @@ -199,7 +199,6 @@ class BitStreamWriter // bit 0 is the least significative bit void Write( size_t data, UINT32 count ); - void Write( BitArray& a, UINT32 count ); inline size_t GetBitCount() { diff --git a/lib/coreclr/src/inc/gcinfotypes.h b/lib/coreclr/src/inc/gcinfotypes.h index c802d97ec689..d45b9a6292a3 100644 --- a/lib/coreclr/src/inc/gcinfotypes.h +++ b/lib/coreclr/src/inc/gcinfotypes.h @@ -10,6 +10,11 @@ #include "gcinfo.h" #endif +// ***************************************************************************** +// WARNING!!!: These values and code are also used by SOS in the diagnostics +// repo. Should updated in a backwards and forwards compatible way. +// See: https://github.com/dotnet/diagnostics/blob/master/src/inc/gcinfotypes.h +// ***************************************************************************** #define PARTIALLY_INTERRUPTIBLE_GC_SUPPORTED @@ -246,6 +251,12 @@ inline bool IsValidFieldReturnKind(ReturnKind returnKind) return (returnKind == RT_Scalar || returnKind == RT_Object || returnKind == RT_ByRef); } +inline bool IsPointerFieldReturnKind(ReturnKind returnKind) +{ + _ASSERTE(IsValidFieldReturnKind(returnKind)); + return (returnKind == RT_Object || returnKind == RT_ByRef); +} + inline bool IsValidReturnRegister(size_t regNo) { return (regNo == 0) @@ -262,6 +273,20 @@ inline bool IsStructReturnKind(ReturnKind returnKind) return returnKind > 3; } +inline bool IsScalarReturnKind(ReturnKind returnKind) +{ + return (returnKind == RT_Scalar) +#ifdef _TARGET_X86_ + || (returnKind == RT_Float) +#endif // _TARGET_X86_ + ; +} + +inline bool IsPointerReturnKind(ReturnKind returnKind) +{ + return IsValidReturnKind(returnKind) && !IsScalarReturnKind(returnKind); +} + // Helpers for combining/extracting individual ReturnKinds from/to Struct ReturnKinds. // Encoding is two bits per register @@ -331,9 +356,6 @@ inline const char *ReturnKindToString(ReturnKind returnKind) // we use offsetof to get the offset of a field #include // offsetof -#ifndef offsetof -#define offsetof(s,m) ((size_t)&(((s *)0)->m)) -#endif enum infoHdrAdjustConstants { // Constants diff --git a/lib/coreclr/src/inc/genericstackprobe.h b/lib/coreclr/src/inc/genericstackprobe.h deleted file mode 100644 index 591bcc859618..000000000000 --- a/lib/coreclr/src/inc/genericstackprobe.h +++ /dev/null @@ -1,610 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// - -// -//----------------------------------------------------------------------------- -// Generic Stack Probe Code -// Used to setup stack guards and probes outside the VM tree -//----------------------------------------------------------------------------- - -#ifndef __GENERICSTACKPROBE_h__ -#define __GENERICSTACKPROBE_h__ - -#include "staticcontract.h" -#include "predeftlsslot.h" - -#if defined(DISABLE_CONTRACTS) -#undef FEATURE_STACK_PROBE -#endif - -#if defined(FEATURE_STACK_PROBE) -#ifdef _DEBUG -#define STACK_GUARDS_DEBUG -#else -#define STACK_GUARDS_RELEASE -#endif -#endif - -#ifdef FEATURE_STACK_PROBE -#define SO_INFRASTRUCTURE_CODE(x) x -#define NO_SO_INFRASTRUCTURE_CODE_ASSERTE(x) -#else -#define SO_INFRASTRUCTURE_CODE(x) -#define NO_SO_INFRASTRUCTURE_CODE_ASSERTE(x) _ASSERTE(x); -#endif - -/* This macro is redefined in stackprobe.h - * so that code expanded using this macro is present only for files - * within VM directory. See StackProbe.h for more details - */ -#define VM_NO_SO_INFRASTRUCTURE_CODE(x) - -// The types of stack validation we support in holders. -enum HolderStackValidation -{ - HSV_NoValidation, - HSV_ValidateMinimumStackReq, - HSV_ValidateNormalStackReq, -}; - -// Used to track transitions into the profiler -#define REMOVE_STACK_GUARD_FOR_PROFILER_CALL \ - REMOVE_STACK_GUARD - -// For AMD64, the stack size is 4K, same as X86, but the pointer size is 64, so the -// stack tends to grow a lot faster than X86. -#ifdef _TARGET_AMD64_ -#define ADJUST_PROBE(n) (2 * (n)) -#else -#define ADJUST_PROBE(n) (n) -#endif - -#if defined(FEATURE_STACK_PROBE) - -#ifdef STACK_GUARDS_DEBUG // DAC and non-DAC - all data structures referenced in DAC'ized code - // must be included so we can calculate layout. SO probes are not - // active in the DAC but the SO probe structures contribute to layout - - -// This class is used to place a marker upstack and verify that it was not overrun. It is -// different from the full blown stack probes in that it does not chain with other probes or -// test for stack overflow. Its sole purpose is to verify stack consumption. -// It is effectively an implicit probe though, because we are guaranteeing that we have -// enought stack to run and will not take an SO. So we enter SO-intolerant code when -// we install one of these. - -class StackMarkerStack; -struct ClrDebugState; - -class BaseStackMarker -{ - friend StackMarkerStack; - - ClrDebugState *m_pDebugState; - BOOL m_prevWasSOTolerant; // Were we SO-tolerant when we came in? - BOOL m_fMarkerSet; // Has the marker been set? - BOOL m_fTemporarilyDisabled;// Has the marker been temporarely disabled? - BOOL m_fAddedToStack; // Has this BaseStackMarker been added to the stack of markers for the thread. - float m_numPages; - UINT_PTR *m_pMarker; // Pointer to where to put our marker cookie on the stack. - BaseStackMarker*m_pPrevious; - BOOL m_fProtectedStackPage; - BOOL m_fAllowDisabling; - - BaseStackMarker() {}; // no default construction allowed - - // These should only be called by the ClrDebugState. - void RareDisableMarker(); - void RareReEnableMarker(); - - public: - BaseStackMarker(float numPages, BOOL fAllowDisabling); - - // we have this so that the check of the global can be inlined - // and we don't make the call to CheckMarker unless we need to. - void CheckForBackoutViolation(); - - void SetMarker(float numPages); - void CheckMarker(); - - void ProtectMarkerPageInDebugger(); - void UndoPageProtectionInDebugger(); - -}; - -class StackMarkerStack -{ -public: - // Since this is used from the ClrDebugState which can't have a default constructor, - // we need to provide an Init method to intialize the instance instead of having a constructor. - void Init() - { - m_pTopStackMarker = NULL; - m_fDisabled = FALSE; - } - - void PushStackMarker(BaseStackMarker *pStackMarker); - BaseStackMarker *PopStackMarker(); - - BOOL IsEmpty() - { - return (m_pTopStackMarker == NULL); - } - BOOL IsDisabled() - { - return m_fDisabled; - } - - void RareDisableStackMarkers(); - void RareReEnableStackMarkers(); - -private: - BaseStackMarker *m_pTopStackMarker; // The top of the stack of stack markers for the current thread. - BOOL m_fDisabled; -}; - -#endif // STACK_GUARDS_DEBUG - -#if !defined(DACCESS_COMPILE) - -// In debug builds, we redefine DEFAULT_ENTRY_PROBE_AMOUNT to a global static -// so that we can tune the entry point probe size at runtime. -#define DEFAULT_ENTRY_PROBE_SIZE 12 -#define DEFAULT_ENTRY_PROBE_AMOUNT DEFAULT_ENTRY_PROBE_SIZE - -#define BACKOUT_CODE_STACK_LIMIT 4.0 -#define HOLDER_CODE_NORMAL_STACK_LIMIT BACKOUT_CODE_STACK_LIMIT -#define HOLDER_CODE_MINIMUM_STACK_LIMIT 0.25 - -void DontCallDirectlyForceStackOverflow(); -void SOBackoutViolation(const char *szFunction, const char *szFile, int lineNum); -typedef void *EEThreadHandle; -class SOIntolerantTransitionHandler; -extern bool g_StackProbingEnabled; -extern void (*g_fpCheckForSOInSOIntolerantCode)(); -extern void (*g_fpSetSOIntolerantTransitionMarker)(); -extern BOOL (*g_fpDoProbe)(unsigned int n); -extern void (*g_fpHandleSoftStackOverflow)(BOOL fSkipDebugger); - -// Once we enter SO-intolerant code, we can never take a hard SO as we will be -// in an unknown state. SOIntolerantTransitionHandler is used to detect a hard SO in SO-intolerant -// code and to raise a Fatal Error if one occurs. -class SOIntolerantTransitionHandler -{ -private: - bool m_exceptionOccurred; - void * m_pPreviousHandler; - -public: - FORCEINLINE SOIntolerantTransitionHandler() - { - if (g_StackProbingEnabled) - { - CtorImpl(); - } - } - - FORCEINLINE ~SOIntolerantTransitionHandler() - { - if (g_StackProbingEnabled) - { - DtorImpl(); - } - } - - NOINLINE void CtorImpl(); - NOINLINE void DtorImpl(); - - void SetNoException() - { - m_exceptionOccurred = false; - } - - bool DidExceptionOccur() - { - return m_exceptionOccurred; - } -}; - - -extern void (*g_fpHandleStackOverflowAfterCatch)(); -void HandleStackOverflowAfterCatch(); - -#if defined(STACK_GUARDS_DEBUG) - -#ifdef _WIN64 -#define STACK_COOKIE_VALUE 0x0123456789ABCDEF -#define DISABLED_STACK_COOKIE_VALUE 0xDCDCDCDCDCDCDCDC -#else -#define STACK_COOKIE_VALUE 0x01234567 -#define DISABLED_STACK_COOKIE_VALUE 0xDCDCDCDC -#endif - -// This allows us to adjust the probe amount at run-time in checked builds -#undef DEFAULT_ENTRY_PROBE_AMOUNT -#define DEFAULT_ENTRY_PROBE_AMOUNT g_EntryPointProbeAmount - -class BaseStackGuardGeneric; -class BaseStackGuard; - -extern void (*g_fpRestoreCurrentStackGuard)(BOOL fDisabled); -extern BOOL (*g_fp_BaseStackGuard_RequiresNStackPages)(BaseStackGuardGeneric *pGuard, unsigned int n, BOOL fThrowOnSO); -extern void (*g_fp_BaseStackGuard_CheckStack)(BaseStackGuardGeneric *pGuard); -extern BOOL (*g_fpCheckNStackPagesAvailable)(unsigned int n); -extern BOOL g_ProtectStackPagesInDebugger; -void RestoreSOToleranceState(); -void EnsureSOTolerant(); - -extern BOOL g_EnableBackoutStackValidation; -extern DWORD g_EntryPointProbeAmount; - -//----------------------------------------------------------------------------- -// Check if a cookie is still at the given marker -//----------------------------------------------------------------------------- -inline BOOL IsMarkerOverrun(UINT_PTR *pMarker) -{ - return (*pMarker != STACK_COOKIE_VALUE); -} - -class AutoCleanupStackMarker : public BaseStackMarker -{ -public: - DEBUG_NOINLINE AutoCleanupStackMarker(float numPages) : - BaseStackMarker(numPages, TRUE) - { - SCAN_SCOPE_BEGIN; - ANNOTATION_FN_SO_INTOLERANT; - } - - DEBUG_NOINLINE ~AutoCleanupStackMarker() - { - SCAN_SCOPE_END; - CheckForBackoutViolation(); - } -}; - -#define VALIDATE_BACKOUT_STACK_CONSUMPTION \ - AutoCleanupStackMarker __stackMarker(ADJUST_PROBE(BACKOUT_CODE_STACK_LIMIT)); - -#define VALIDATE_BACKOUT_STACK_CONSUMPTION_FOR(numPages) \ - AutoCleanupStackMarker __stackMarker(ADJUST_PROBE(numPages)); - -#define UNSAFE_BEGIN_VALIDATE_BACKOUT_STACK_CONSUMPTION_NO_DISABLE \ - BaseStackMarker __stackMarkerNoDisable(ADJUST_PROBE(BACKOUT_CODE_STACK_LIMIT), FALSE); - -#define UNSAFE_BEGIN_VALIDATE_BACKOUT_STACK_CONSUMPTION_NO_DISABLE_FOR(numPages) \ - BaseStackMarker __stackMarkerNoDisable(ADJUST_PROBE(numPages), FALSE); - -#define UNSAFE_END_VALIDATE_BACKOUT_STACK_CONSUMPTION_NO_DISABLE \ - __stackMarkerNoDisable.CheckForBackoutViolation(); - -#define VALIDATE_HOLDER_STACK_CONSUMPTION_FOR_TYPE(validationType) \ - _ASSERTE(validationType != HSV_NoValidation); \ - AutoCleanupStackMarker __stackMarker( \ - ADJUST_PROBE(validationType == HSV_ValidateNormalStackReq ? HOLDER_CODE_NORMAL_STACK_LIMIT : HOLDER_CODE_MINIMUM_STACK_LIMIT)); - -class AutoCleanupDisableBackoutStackValidation -{ - public: - AutoCleanupDisableBackoutStackValidation(); - ~AutoCleanupDisableBackoutStackValidation(); - -private: - BOOL m_fAlreadyDisabled; - -}; - -// This macros disables the backout stack validation in the current scope. It should -// only be used in very rare situations. If you think you might have such a situation, -// please talk to the stack overflow devs before using it. -#define DISABLE_BACKOUT_STACK_VALIDATION \ - AutoCleanupDisableBackoutStackValidation __disableBacoutStackValidation; - -// In debug mode, we want to do a little more work on this transition to note the transition in the thread. -class DebugSOIntolerantTransitionHandler : public SOIntolerantTransitionHandler -{ - BOOL m_prevSOTolerantState; - ClrDebugState* m_clrDebugState; - - public: - DebugSOIntolerantTransitionHandler(); - ~DebugSOIntolerantTransitionHandler(); -}; - -// This is the base class structure for our probe infrastructure. We declare it here -// so that we can properly declare instances outside of the VM tree. But we only do the -// probes when we have a managed thread. -class BaseStackGuardGeneric -{ -public: - enum - { - cPartialInit, // Not yet intialized - cInit, // Initialized and installed - cUnwound, // Unwound on a normal path (used for debugging) - cEHUnwound // Unwound on an exception path (used for debugging) - } m_eInitialized; - - // *** Following fields must not move. The fault injection framework depends on them. - BaseStackGuard *m_pPrevGuard; // Previous guard for this thread. - UINT_PTR *m_pMarker; // Pointer to where to put our marker cookie on the stack. - unsigned int m_numPages; // space needed, specified in number of pages - BOOL m_isBoundaryGuard; // used to mark when we've left the EE - BOOL m_fDisabled; // Used to enable/disable stack guard - - - // *** End of fault injection-dependent fields - - // The following fields are really here to provide us with some nice debugging information. - const char *m_szFunction; - const char *m_szFile; - unsigned int m_lineNum; - const char *m_szNextFunction; // Name of the probe that came after us. - const char *m_szNextFile; - unsigned int m_nextLineNum; - DWORD m_UniqueId; - unsigned int m_depth; // How deep is this guard in the list of guards for this thread? - BOOL m_fProtectedStackPage; // TRUE if we protected a stack page with PAGE_NOACCESS. - BOOL m_fEHInProgress; // Is an EH in progress? This is cleared on a catch. - BOOL m_exceptionOccurred; // Did an exception occur through this probe? - -protected: - BaseStackGuardGeneric() - { - } - -public: - BaseStackGuardGeneric(const char *szFunction, const char *szFile, unsigned int lineNum) : - m_pPrevGuard(NULL), m_pMarker(NULL), - m_szFunction(szFunction), m_szFile(szFile), m_lineNum(lineNum), - m_szNextFunction(NULL), m_szNextFile(NULL), m_nextLineNum(0), - m_fProtectedStackPage(FALSE), m_UniqueId(-1), m_numPages(0), - m_eInitialized(cPartialInit), m_fDisabled(FALSE), - m_isBoundaryGuard(FALSE), - m_fEHInProgress(FALSE), - m_exceptionOccurred(FALSE) - { - STATIC_CONTRACT_LEAF; - } - - BOOL RequiresNStackPages(unsigned int n, BOOL fThrowOnSO = TRUE) - { - if (g_fp_BaseStackGuard_RequiresNStackPages == NULL) - { - return TRUE; - } - return g_fp_BaseStackGuard_RequiresNStackPages(this, n, fThrowOnSO); - } - - BOOL RequiresNStackPagesThrowing(unsigned int n) - { - if (g_fp_BaseStackGuard_RequiresNStackPages == NULL) - { - return TRUE; - } - return g_fp_BaseStackGuard_RequiresNStackPages(this, n, TRUE); - } - - BOOL RequiresNStackPagesNoThrow(unsigned int n) - { - if (g_fp_BaseStackGuard_RequiresNStackPages == NULL) - { - return TRUE; - } - return g_fp_BaseStackGuard_RequiresNStackPages(this, n, FALSE); - } - - void CheckStack() - { - if (m_eInitialized == cInit) - { - g_fp_BaseStackGuard_CheckStack(this); - } - } - - void SetNoException() - { - m_exceptionOccurred = FALSE; - } - - BOOL DidExceptionOccur() - { - return m_exceptionOccurred; - } - - BOOL Enabled() - { - return !m_fDisabled; - } - - void DisableGuard() - { - // As long as we don't have threads mucking with other thread's stack - // guards, we don't need to synchronize this. - m_fDisabled = TRUE; - } - - void EnableGuard() - { - // As long as we don't have threads mucking with other thread's stack - // guards, we don't need to synchronize this. - m_fDisabled = FALSE; - } - - -}; - -class StackGuardDisabler -{ - BOOL m_fDisabledGuard; - -public: - StackGuardDisabler(); - ~StackGuardDisabler(); - void NeverRestoreGuard(); - -}; - - - -// Derived version, add a dtor that automatically calls Check_Stack, move convenient, but can't use with SEH. -class AutoCleanupStackGuardGeneric : public BaseStackGuardGeneric -{ -protected: - AutoCleanupStackGuardGeneric() - { - } - -public: - AutoCleanupStackGuardGeneric(const char *szFunction, const char *szFile, unsigned int lineNum) : - BaseStackGuardGeneric(szFunction, szFile, lineNum) - { - STATIC_CONTRACT_LEAF; - } - - ~AutoCleanupStackGuardGeneric() - { - STATIC_CONTRACT_WRAPPER; - CheckStack(); - } -}; - - -// Used to remove stack guard... (kind of like a poor man's BEGIN_SO_TOLERANT -#define REMOVE_STACK_GUARD \ - StackGuardDisabler __guardDisable; - -// Used to transition into intolerant code when handling a SO -#define BEGIN_SO_INTOLERANT_CODE_NOPROBE \ - { \ - DebugSOIntolerantTransitionHandler __soIntolerantTransitionHandler; \ - /* work around unreachable code warning */ \ - if (true) \ - { \ - DEBUG_ASSURE_NO_RETURN_BEGIN(SO_INTOLERANT) - -#define END_SO_INTOLERANT_CODE_NOPROBE \ - ; \ - DEBUG_ASSURE_NO_RETURN_END(SO_INTOLERANT) \ - } \ - __soIntolerantTransitionHandler.SetNoException(); \ - } \ - - - -#define BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(ActionOnSO) \ - { \ - AutoCleanupStackGuardGeneric stack_guard_XXX(__FUNCTION__, __FILE__, __LINE__); \ - if (! stack_guard_XXX.RequiresNStackPagesNoThrow(ADJUST_PROBE(g_EntryPointProbeAmount))) \ - { \ - ActionOnSO; \ - } \ - else \ - { \ - DebugSOIntolerantTransitionHandler __soIntolerantTransitionHandler; \ - ANNOTATION_SO_PROBE_BEGIN(DEFAULT_ENTRY_PROBE_AMOUNT); \ - if (true) \ - { \ - DEBUG_ASSURE_NO_RETURN_BEGIN(SO_INTOLERANT) - - -#define END_SO_INTOLERANT_CODE \ - ; \ - DEBUG_ASSURE_NO_RETURN_END(SO_INTOLERANT) \ - } \ - ANNOTATION_SO_PROBE_END; \ - __soIntolerantTransitionHandler.SetNoException(); \ - stack_guard_XXX.SetNoException(); \ - } \ - } \ - - -#define BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD_FORCE_SO() \ - EnsureSOTolerant(); \ - BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(DontCallDirectlyForceStackOverflow()); \ - - -// Restores the SO-tolerance state and the marker for the current guard if any -#define RESTORE_SO_TOLERANCE_STATE \ - RestoreSOToleranceState(); - -#define HANDLE_STACKOVERFLOW_AFTER_CATCH \ - HandleStackOverflowAfterCatch() - -#elif defined(STACK_GUARDS_RELEASE) - -#define VALIDATE_BACKOUT_STACK_CONSUMPTION -#define VALIDATE_BACKOUT_STACK_CONSUMPTION_FOR -#define UNSAFE_BEGIN_VALIDATE_BACKOUT_STACK_CONSUMPTION_NO_DISABLE -#define UNSAFE_BEGIN_VALIDATE_BACKOUT_STACK_CONSUMPTION_NO_DISABLE_FOR(numPages) -#define UNSAFE_END_VALIDATE_BACKOUT_STACK_CONSUMPTION_NO_DISABLE -#define VALIDATE_HOLDER_STACK_CONSUMPTION_FOR_TYPE(validationType) -#define RESTORE_SO_TOLERANCE_STATE -#define HANDLE_STACKOVERFLOW_AFTER_CATCH \ - HandleStackOverflowAfterCatch() -#define DISABLE_BACKOUT_STACK_VALIDATION -#define BACKOUT_STACK_VALIDATION_VIOLATION -#define BEGIN_SO_INTOLERANT_CODE_NOPROBE -#define END_SO_INTOLERANT_CODE_NOPROBE -#define REMOVE_STACK_GUARD - -#define BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(ActionOnSO) \ - { \ - if (g_StackProbingEnabled && !g_fpDoProbe(ADJUST_PROBE(DEFAULT_ENTRY_PROBE_AMOUNT)))\ - { \ - ActionOnSO; \ - } else { \ - SOIntolerantTransitionHandler __soIntolerantTransitionHandler; \ - /* work around unreachable code warning */ \ - if (true) \ - { \ - DEBUG_ASSURE_NO_RETURN_BEGIN(SO_INTOLERANT) - -#define BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD_FORCE_SO() \ - BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(DontCallDirectlyForceStackOverflow()); \ - -#define END_SO_INTOLERANT_CODE \ - ; \ - DEBUG_ASSURE_NO_RETURN_END(SO_INTOLERANT) \ - } \ - __soIntolerantTransitionHandler.SetNoException(); \ - } \ - } - -#endif - -#endif // !DACCESS_COMPILE -#endif // FEATURE_STACK_PROBES - -// if the feature is off or we are compiling for DAC, disable all the probes -#if !defined(FEATURE_STACK_PROBE) || defined(DACCESS_COMPILE) - -#define VALIDATE_BACKOUT_STACK_CONSUMPTION -#define VALIDATE_BACKOUT_STACK_CONSUMPTION_FOR -#define UNSAFE_BEGIN_VALIDATE_BACKOUT_STACK_CONSUMPTION_NO_DISABLE -#define UNSAFE_BEGIN_VALIDATE_BACKOUT_STACK_CONSUMPTION_NO_DISABLE_FOR(numPages) -#define UNSAFE_END_VALIDATE_BACKOUT_STACK_CONSUMPTION_NO_DISABLE -#define VALIDATE_HOLDER_STACK_CONSUMPTION_FOR_TYPE(validationType) -#define BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD(ActionOnSO) -#define BEGIN_SO_INTOLERANT_CODE_NO_THROW_CHECK_THREAD_FORCE_SO() -#define END_SO_INTOLERANT_CODE -#define RESTORE_SO_TOLERANCE_STATE - -#define HANDLE_STACKOVERFLOW_AFTER_CATCH - -#define DISABLE_BACKOUT_STACK_VALIDATION -#define BACKOUT_STACK_VALIDATION_VIOLATION -#define BEGIN_SO_INTOLERANT_CODE_NOPROBE -#define END_SO_INTOLERANT_CODE_NOPROBE -#define REMOVE_STACK_GUARD - -// Probe size is 0 as Stack Overflow probing is not enabled -#define DEFAULT_ENTRY_PROBE_AMOUNT 0 - -#define BACKOUT_CODE_STACK_LIMIT 0 - -#endif //!FEATURE_STACK_PROBE || DACCESS_COMPILE - -#endif // __GENERICSTACKPROBE_h__ diff --git a/lib/coreclr/src/inc/genericstackprobe.inl b/lib/coreclr/src/inc/genericstackprobe.inl deleted file mode 100644 index 9b8dd410be10..000000000000 --- a/lib/coreclr/src/inc/genericstackprobe.inl +++ /dev/null @@ -1,15 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// - -// - - -#ifndef _GENERICSTACKPROBE_INL_ -#define _GENERICSTACKPROBE_INL_ - -#include "genericstackprobe.h" - - -#endif // _GENERICSTACKPROBE_INL_ diff --git a/lib/coreclr/src/inc/genheaders.cs b/lib/coreclr/src/inc/genheaders.cs index af33b1d17fb7..6a55cd85ee26 100644 --- a/lib/coreclr/src/inc/genheaders.cs +++ b/lib/coreclr/src/inc/genheaders.cs @@ -1,3 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + using System; using System.Xml; using System.Xml.Schema; @@ -31,8 +35,9 @@ public static void Main(string[] args) { int minHR = MakeHresult(SeverityError,FaciltyUrt,0); int maxHR = MakeHresult(SeverityError,FaciltyUrt,0xffff); - + PrintLicenseHeader(HSW); PrintHeader(HSW); + PrintLicenseHeader(RSW); PrintResourceHeader(RSW); XmlTextReader rdr = new XmlTextReader(args[0]); @@ -150,6 +155,12 @@ private static void ValidationCallBack(object sender, ValidationEventArgs e) { Environment.Exit(-1); } + private static void PrintLicenseHeader(StreamWriter SW) { + SW.WriteLine("// Licensed to the .NET Foundation under one or more agreements."); + SW.WriteLine("// The .NET Foundation licenses this file to you under the MIT license."); + SW.WriteLine("// See the LICENSE file in the project root for more information."); + SW.WriteLine(); + } private static void PrintHeader(StreamWriter SW) { diff --git a/lib/coreclr/src/inc/holder.h b/lib/coreclr/src/inc/holder.h index 299056b12143..204f807a08cf 100644 --- a/lib/coreclr/src/inc/holder.h +++ b/lib/coreclr/src/inc/holder.h @@ -8,7 +8,6 @@ #include #include "cor.h" -#include "genericstackprobe.h" #include "staticcontract.h" #include "volatile.h" #include "palclr.h" @@ -62,10 +61,8 @@ _NAME & operator=(_NAME const &); #endif - #ifdef _DEBUG - //------------------------------------------------------------------------------------------------ // This is used to make Visual Studio autoexp.dat work sensibly with holders again. // The problem is that certain codebases (particulary Fusion) implement key data structures @@ -131,11 +128,6 @@ class HolderBase HolderBase(TYPE value) : m_value(value) { - // TODO: Find a way to enable this check. - // We can have a holder in SO tolerant, then probe, then acquire a value. This works - // because the dtor is guaranteed to run with enough stack. - // EnsureSOIntolerantOK(__FUNCTION__, __FILE__, __LINE__); - #ifdef _DEBUG m_pAutoExpVisibleValue = (const AutoExpVisibleValue *)(&m_value); #endif //_DEBUG @@ -238,8 +230,7 @@ template typename TYPE, typename BASE, UINT_PTR DEFAULTVALUE = 0, - BOOL IS_NULL(TYPE, TYPE) = CompareDefault, - HolderStackValidation VALIDATION_TYPE = HSV_ValidateNormalStackReq + BOOL IS_NULL(TYPE, TYPE) = CompareDefault > class BaseHolder : protected BASE { @@ -303,16 +294,7 @@ class BaseHolder : protected BASE if (m_acquired) { _ASSERTE(!IsNull()); - - if (VALIDATION_TYPE != HSV_NoValidation) - { - VALIDATE_HOLDER_STACK_CONSUMPTION_FOR_TYPE(VALIDATION_TYPE); - this->DoRelease(); - } - else - { - this->DoRelease(); - } + this->DoRelease(); m_acquired = FALSE; } } @@ -347,7 +329,7 @@ class BaseHolder : protected BASE HIDE_GENERATED_METHODS(BaseHolder) }; // BaseHolder<> -template +template class StateHolder { private: @@ -383,15 +365,7 @@ class StateHolder if (m_acquired) { - if (VALIDATION_TYPE != HSV_NoValidation) - { - VALIDATE_HOLDER_STACK_CONSUMPTION_FOR_TYPE(VALIDATION_TYPE); - RELEASEF(); - } - else - { - RELEASEF(); - } + RELEASEF(); m_acquired = FALSE; } } @@ -415,7 +389,7 @@ class StateHolder }; // class StateHolder<> // Holder for the case where the acquire function can fail. -template +template class ConditionalStateHolder { private: @@ -453,15 +427,7 @@ class ConditionalStateHolder if (m_acquired) { - if (VALIDATION_TYPE != HSV_NoValidation) - { - VALIDATE_HOLDER_STACK_CONSUMPTION_FOR_TYPE(VALIDATION_TYPE); - RELEASEF(m_value); - } - else - { - RELEASEF(m_value); - } + RELEASEF(m_value); m_acquired = FALSE; } } @@ -503,10 +469,10 @@ class ConditionalStateHolder // the value it contains. //----------------------------------------------------------------------------- template , HolderStackValidation VALIDATION_TYPE = HSV_ValidateNormalStackReq> -class BaseWrapper : public BaseHolder + UINT_PTR DEFAULTVALUE = 0, BOOL IS_NULL(TYPE, TYPE) = CompareDefault> +class BaseWrapper : public BaseHolder { - typedef BaseHolder BaseT; + typedef BaseHolder BaseT; #ifdef __GNUC__ @@ -642,7 +608,7 @@ class BaseWrapper : public BaseHolderm_value != TYPE(value)); } -#ifdef __llvm__ +#ifdef __GNUC__ // This handles the NULL value that is an int and clang // doesn't want to convert int to a pointer FORCEINLINE bool operator==(int value) const @@ -653,7 +619,7 @@ class BaseWrapper : public BaseHolderm_value != TYPE((void*)(SIZE_T)value)); } -#endif // __llvm__ +#endif // __GNUC__ FORCEINLINE const TYPE &operator->() const { return this->m_value; @@ -728,14 +694,12 @@ FORCEINLINE void SafeArrayDoNothing(SAFEARRAY* p) } - - //----------------------------------------------------------------------------- // Holder/Wrapper are the simplest way to define holders - they synthesizes a base class out of // function pointers //----------------------------------------------------------------------------- -template +template class FunctionBase : protected HolderBase { protected: @@ -752,17 +716,7 @@ class FunctionBase : protected HolderBase void DoRelease() { - // Consider removing this stack validation since it is redundant with the - // one that is already being done in BaseHolder & BaseWrapper. - if (VALIDATION_TYPE != HSV_NoValidation) - { - VALIDATE_HOLDER_STACK_CONSUMPTION_FOR_TYPE(VALIDATION_TYPE); - RELEASEF(this->m_value); - } - else - { - RELEASEF(this->m_value); - } + RELEASEF(this->m_value); } }; // class Function<> @@ -773,17 +727,16 @@ template void (*RELEASEF)(TYPE), UINT_PTR DEFAULTVALUE = 0, BOOL IS_NULL(TYPE, TYPE) = CompareDefault, - HolderStackValidation VALIDATION_TYPE = HSV_ValidateNormalStackReq, // For legacy compat (see EEJitManager::WriterLockHolder), where default ctor // causes ACQUIREF(DEFAULTVALUE), but ACQUIREF ignores the argument and // operates on static or global value instead. bool DEFAULT_CTOR_ACQUIRE = true > -class Holder : public BaseHolder, - DEFAULTVALUE, IS_NULL, VALIDATION_TYPE> +class Holder : public BaseHolder, + DEFAULTVALUE, IS_NULL> { - typedef BaseHolder, - DEFAULTVALUE, IS_NULL, VALIDATION_TYPE> BaseT; + typedef BaseHolder, + DEFAULTVALUE, IS_NULL> BaseT; public: FORCEINLINE Holder() @@ -823,17 +776,16 @@ template void (*RELEASEF)(TYPE), UINT_PTR DEFAULTVALUE = 0, BOOL IS_NULL(TYPE, TYPE) = CompareDefault, - HolderStackValidation VALIDATION_TYPE = HSV_ValidateNormalStackReq, // For legacy compat (see EEJitManager::WriterLockHolder), where default ctor // causes ACQUIREF(DEFAULTVALUE), but ACQUIREF ignores the argument and // operates on static or global value instead. bool DEFAULT_CTOR_ACQUIRE = true > -class Wrapper : public BaseWrapper, - DEFAULTVALUE, IS_NULL, VALIDATION_TYPE> +class Wrapper : public BaseWrapper, + DEFAULTVALUE, IS_NULL> { - typedef BaseWrapper, - DEFAULTVALUE, IS_NULL, VALIDATION_TYPE> BaseT; + typedef BaseWrapper, + DEFAULTVALUE, IS_NULL> BaseT; public: FORCEINLINE Wrapper() @@ -974,7 +926,6 @@ FORCEINLINE void DoTheRelease(TYPE *value) { if (value) { - VALIDATE_HOLDER_STACK_CONSUMPTION_FOR_TYPE(HSV_ValidateNormalStackReq); value->Release(); } } @@ -1221,7 +1172,7 @@ typedef Wrapper< bool *, BoolSet, BoolUnset > BoolFlagStateHolder; FORCEINLINE void CounterIncrease(RAW_KEYWORD(volatile) LONG* p) {InterlockedIncrement(p);}; FORCEINLINE void CounterDecrease(RAW_KEYWORD(volatile) LONG* p) {InterlockedDecrement(p);}; -typedef Wrapper, HSV_NoValidation> CounterHolder; +typedef Wrapper> CounterHolder; #ifndef FEATURE_PAL @@ -1295,50 +1246,6 @@ class HKEYHolder }; #endif // !FEATURE_PAL -//----------------------------------------------------------------------------- -// Wrapper to suppress auto-destructor (UNDER CONSTRUCTION) -// Usage: -// -// BEGIN_MANUAL_HOLDER(NewArrayHolder, foo); -// ... use foo via -> -// END_MANUAL_HOLDER(foo); -// -//----------------------------------------------------------------------------- - -template -class NoAuto__DONTUSEDIRECTLY -{ - private: - BYTE hiddeninstance[SIZE]; - - public: - // Unfortunately, you can only use the default constructor - NoAuto__DONTUSEDIRECTLY() - { - new (hiddeninstance) TYPE (); - } - - operator TYPE& () { return *(TYPE *)hiddeninstance; } - TYPE& operator->() { return *(TYPE *)hiddeninstance; } - TYPE& operator*() { return *(TYPE *)hiddeninstance; } - - void Destructor() { (*(TYPE*)hiddeninstance)->TYPE::~TYPE(); } -}; - -#define BEGIN_MANUAL_HOLDER(_TYPE, _NAME) \ - { \ - NoAuto__DONTUSEDIRECTLY<_TYPE> _NAME; \ - __try \ - { - -#define END_MANUAL_HOLDER(_NAME) \ - } \ - __finally \ - { \ - _NAME.Destructor(); \ - } \ - } - //---------------------------------------------------------------------------- // // External data access does not want certain holder implementations diff --git a/lib/coreclr/src/inc/iappdomainsetup.h b/lib/coreclr/src/inc/iappdomainsetup.h deleted file mode 100644 index ef8d9a3cfaaa..000000000000 --- a/lib/coreclr/src/inc/iappdomainsetup.h +++ /dev/null @@ -1,612 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -// - -// ******************************************************** -// ******************************************************** -// ******************************************************** -// -// !!!! DON'T USE THIS FILE, IT WILL BE OBSOLETE SOON !!!! -// -// ******************************************************** -// ******************************************************** -// ******************************************************** - - - - -#ifndef FEATURE_COMINTEROP -#error FEATURE_COMINTEROP is required for this file -#endif // FEATURE_COMINTEROP - - - -#ifdef _MSC_VER -#pragma warning( disable: 4049 ) /* more than 64k source lines */ -#endif - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 6.00.0338 */ -/* at Wed Jan 17 16:59:41 2001 - */ -/* Compiler settings for IAppDomainSetup.idl: - Os, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 440 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __IAppDomainSetup_h__ -#define __IAppDomainSetup_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IAppDomainSetup_FWD_DEFINED__ -#define __IAppDomainSetup_FWD_DEFINED__ -typedef interface IAppDomainSetup IAppDomainSetup; -#endif /* __IAppDomainSetup_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "unknwn.h" - -#ifdef __cplusplus -extern "C"{ -#endif - -void * __RPC_USER MIDL_user_allocate(size_t); -void __RPC_USER MIDL_user_free( void * ); - -#ifndef __IAppDomainSetup_INTERFACE_DEFINED__ -#define __IAppDomainSetup_INTERFACE_DEFINED__ - -/* interface IAppDomainSetup */ -/* [object][oleautomation][version][uuid] */ - - -EXTERN_C const IID IID_IAppDomainSetup; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("27FFF232-A7A8-40DD-8D4A-734AD59FCD41") - IAppDomainSetup : public IUnknown - { - public: - virtual /* [propget] */ HRESULT __stdcall get_ApplicationBase( - /* [retval][out] */ BSTR *pRetVal) = 0; - - virtual /* [propput] */ HRESULT __stdcall put_ApplicationBase( - /* [in] */ BSTR pRetVal) = 0; - - virtual /* [propget] */ HRESULT __stdcall get_ApplicationName( - /* [retval][out] */ BSTR *pRetVal) = 0; - - virtual /* [propput] */ HRESULT __stdcall put_ApplicationName( - /* [in] */ BSTR pRetVal) = 0; - - virtual /* [propget] */ HRESULT __stdcall get_CachePath( - /* [retval][out] */ BSTR *pRetVal) = 0; - - virtual /* [propput] */ HRESULT __stdcall put_CachePath( - /* [in] */ BSTR pRetVal) = 0; - - virtual /* [propget] */ HRESULT __stdcall get_ConfigurationFile( - /* [retval][out] */ BSTR *pRetVal) = 0; - - virtual /* [propput] */ HRESULT __stdcall put_ConfigurationFile( - /* [in] */ BSTR pRetVal) = 0; - - virtual /* [propget] */ HRESULT __stdcall get_DynamicBase( - /* [retval][out] */ BSTR *pRetVal) = 0; - - virtual /* [propput] */ HRESULT __stdcall put_DynamicBase( - /* [in] */ BSTR pRetVal) = 0; - - virtual /* [propget] */ HRESULT __stdcall get_LicenseFile( - /* [retval][out] */ BSTR *pRetVal) = 0; - - virtual /* [propput] */ HRESULT __stdcall put_LicenseFile( - /* [in] */ BSTR pRetVal) = 0; - - virtual /* [propget] */ HRESULT __stdcall get_PrivateBinPath( - /* [retval][out] */ BSTR *pRetVal) = 0; - - virtual /* [propput] */ HRESULT __stdcall put_PrivateBinPath( - /* [in] */ BSTR pRetVal) = 0; - - virtual /* [propget] */ HRESULT __stdcall get_PrivateBinPathProbe( - /* [retval][out] */ BSTR *pRetVal) = 0; - - virtual /* [propput] */ HRESULT __stdcall put_PrivateBinPathProbe( - /* [in] */ BSTR pRetVal) = 0; - - virtual /* [propget] */ HRESULT __stdcall get_ShadowCopyDirectories( - /* [retval][out] */ BSTR *pRetVal) = 0; - - virtual /* [propput] */ HRESULT __stdcall put_ShadowCopyDirectories( - /* [in] */ BSTR pRetVal) = 0; - - virtual /* [propget] */ HRESULT __stdcall get_ShadowCopyFiles( - /* [retval][out] */ BSTR *pRetVal) = 0; - - virtual /* [propput] */ HRESULT __stdcall put_ShadowCopyFiles( - /* [in] */ BSTR pRetVal) = 0; - - }; - -#else /* C style interface */ - - typedef struct IAppDomainSetupVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IAppDomainSetup * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IAppDomainSetup * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IAppDomainSetup * This); - - /* [propget] */ HRESULT ( __stdcall *get_ApplicationBase )( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - /* [propput] */ HRESULT ( __stdcall *put_ApplicationBase )( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - /* [propget] */ HRESULT ( __stdcall *get_ApplicationName )( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - /* [propput] */ HRESULT ( __stdcall *put_ApplicationName )( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - /* [propget] */ HRESULT ( __stdcall *get_CachePath )( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - /* [propput] */ HRESULT ( __stdcall *put_CachePath )( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - /* [propget] */ HRESULT ( __stdcall *get_ConfigurationFile )( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - /* [propput] */ HRESULT ( __stdcall *put_ConfigurationFile )( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - /* [propget] */ HRESULT ( __stdcall *get_DynamicBase )( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - /* [propput] */ HRESULT ( __stdcall *put_DynamicBase )( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - /* [propget] */ HRESULT ( __stdcall *get_LicenseFile )( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - /* [propput] */ HRESULT ( __stdcall *put_LicenseFile )( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - /* [propget] */ HRESULT ( __stdcall *get_PrivateBinPath )( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - /* [propput] */ HRESULT ( __stdcall *put_PrivateBinPath )( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - /* [propget] */ HRESULT ( __stdcall *get_PrivateBinPathProbe )( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - /* [propput] */ HRESULT ( __stdcall *put_PrivateBinPathProbe )( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - /* [propget] */ HRESULT ( __stdcall *get_ShadowCopyDirectories )( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - /* [propput] */ HRESULT ( __stdcall *put_ShadowCopyDirectories )( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - /* [propget] */ HRESULT ( __stdcall *get_ShadowCopyFiles )( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - /* [propput] */ HRESULT ( __stdcall *put_ShadowCopyFiles )( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - END_INTERFACE - } IAppDomainSetupVtbl; - - interface IAppDomainSetup - { - CONST_VTBL struct IAppDomainSetupVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IAppDomainSetup_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define IAppDomainSetup_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define IAppDomainSetup_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define IAppDomainSetup_get_ApplicationBase(This,pRetVal) \ - (This)->lpVtbl -> get_ApplicationBase(This,pRetVal) - -#define IAppDomainSetup_put_ApplicationBase(This,pRetVal) \ - (This)->lpVtbl -> put_ApplicationBase(This,pRetVal) - -#define IAppDomainSetup_get_ApplicationName(This,pRetVal) \ - (This)->lpVtbl -> get_ApplicationName(This,pRetVal) - -#define IAppDomainSetup_put_ApplicationName(This,pRetVal) \ - (This)->lpVtbl -> put_ApplicationName(This,pRetVal) - -#define IAppDomainSetup_get_CachePath(This,pRetVal) \ - (This)->lpVtbl -> get_CachePath(This,pRetVal) - -#define IAppDomainSetup_put_CachePath(This,pRetVal) \ - (This)->lpVtbl -> put_CachePath(This,pRetVal) - -#define IAppDomainSetup_get_ConfigurationFile(This,pRetVal) \ - (This)->lpVtbl -> get_ConfigurationFile(This,pRetVal) - -#define IAppDomainSetup_put_ConfigurationFile(This,pRetVal) \ - (This)->lpVtbl -> put_ConfigurationFile(This,pRetVal) - -#define IAppDomainSetup_get_DynamicBase(This,pRetVal) \ - (This)->lpVtbl -> get_DynamicBase(This,pRetVal) - -#define IAppDomainSetup_put_DynamicBase(This,pRetVal) \ - (This)->lpVtbl -> put_DynamicBase(This,pRetVal) - -#define IAppDomainSetup_get_LicenseFile(This,pRetVal) \ - (This)->lpVtbl -> get_LicenseFile(This,pRetVal) - -#define IAppDomainSetup_put_LicenseFile(This,pRetVal) \ - (This)->lpVtbl -> put_LicenseFile(This,pRetVal) - -#define IAppDomainSetup_get_PrivateBinPath(This,pRetVal) \ - (This)->lpVtbl -> get_PrivateBinPath(This,pRetVal) - -#define IAppDomainSetup_put_PrivateBinPath(This,pRetVal) \ - (This)->lpVtbl -> put_PrivateBinPath(This,pRetVal) - -#define IAppDomainSetup_get_PrivateBinPathProbe(This,pRetVal) \ - (This)->lpVtbl -> get_PrivateBinPathProbe(This,pRetVal) - -#define IAppDomainSetup_put_PrivateBinPathProbe(This,pRetVal) \ - (This)->lpVtbl -> put_PrivateBinPathProbe(This,pRetVal) - -#define IAppDomainSetup_get_ShadowCopyDirectories(This,pRetVal) \ - (This)->lpVtbl -> get_ShadowCopyDirectories(This,pRetVal) - -#define IAppDomainSetup_put_ShadowCopyDirectories(This,pRetVal) \ - (This)->lpVtbl -> put_ShadowCopyDirectories(This,pRetVal) - -#define IAppDomainSetup_get_ShadowCopyFiles(This,pRetVal) \ - (This)->lpVtbl -> get_ShadowCopyFiles(This,pRetVal) - -#define IAppDomainSetup_put_ShadowCopyFiles(This,pRetVal) \ - (This)->lpVtbl -> put_ShadowCopyFiles(This,pRetVal) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [propget] */ HRESULT __stdcall IAppDomainSetup_get_ApplicationBase_Proxy( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - -void __RPC_STUB IAppDomainSetup_get_ApplicationBase_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput] */ HRESULT __stdcall IAppDomainSetup_put_ApplicationBase_Proxy( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - -void __RPC_STUB IAppDomainSetup_put_ApplicationBase_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget] */ HRESULT __stdcall IAppDomainSetup_get_ApplicationName_Proxy( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - -void __RPC_STUB IAppDomainSetup_get_ApplicationName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput] */ HRESULT __stdcall IAppDomainSetup_put_ApplicationName_Proxy( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - -void __RPC_STUB IAppDomainSetup_put_ApplicationName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget] */ HRESULT __stdcall IAppDomainSetup_get_CachePath_Proxy( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - -void __RPC_STUB IAppDomainSetup_get_CachePath_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput] */ HRESULT __stdcall IAppDomainSetup_put_CachePath_Proxy( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - -void __RPC_STUB IAppDomainSetup_put_CachePath_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget] */ HRESULT __stdcall IAppDomainSetup_get_ConfigurationFile_Proxy( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - -void __RPC_STUB IAppDomainSetup_get_ConfigurationFile_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput] */ HRESULT __stdcall IAppDomainSetup_put_ConfigurationFile_Proxy( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - -void __RPC_STUB IAppDomainSetup_put_ConfigurationFile_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget] */ HRESULT __stdcall IAppDomainSetup_get_DynamicBase_Proxy( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - -void __RPC_STUB IAppDomainSetup_get_DynamicBase_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput] */ HRESULT __stdcall IAppDomainSetup_put_DynamicBase_Proxy( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - -void __RPC_STUB IAppDomainSetup_put_DynamicBase_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget] */ HRESULT __stdcall IAppDomainSetup_get_LicenseFile_Proxy( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - -void __RPC_STUB IAppDomainSetup_get_LicenseFile_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput] */ HRESULT __stdcall IAppDomainSetup_put_LicenseFile_Proxy( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - -void __RPC_STUB IAppDomainSetup_put_LicenseFile_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget] */ HRESULT __stdcall IAppDomainSetup_get_PrivateBinPath_Proxy( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - -void __RPC_STUB IAppDomainSetup_get_PrivateBinPath_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput] */ HRESULT __stdcall IAppDomainSetup_put_PrivateBinPath_Proxy( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - -void __RPC_STUB IAppDomainSetup_put_PrivateBinPath_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget] */ HRESULT __stdcall IAppDomainSetup_get_PrivateBinPathProbe_Proxy( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - -void __RPC_STUB IAppDomainSetup_get_PrivateBinPathProbe_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput] */ HRESULT __stdcall IAppDomainSetup_put_PrivateBinPathProbe_Proxy( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - -void __RPC_STUB IAppDomainSetup_put_PrivateBinPathProbe_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget] */ HRESULT __stdcall IAppDomainSetup_get_ShadowCopyDirectories_Proxy( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - -void __RPC_STUB IAppDomainSetup_get_ShadowCopyDirectories_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput] */ HRESULT __stdcall IAppDomainSetup_put_ShadowCopyDirectories_Proxy( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - -void __RPC_STUB IAppDomainSetup_put_ShadowCopyDirectories_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propget] */ HRESULT __stdcall IAppDomainSetup_get_ShadowCopyFiles_Proxy( - IAppDomainSetup * This, - /* [retval][out] */ BSTR *pRetVal); - - -void __RPC_STUB IAppDomainSetup_get_ShadowCopyFiles_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [propput] */ HRESULT __stdcall IAppDomainSetup_put_ShadowCopyFiles_Proxy( - IAppDomainSetup * This, - /* [in] */ BSTR pRetVal); - - -void __RPC_STUB IAppDomainSetup_put_ShadowCopyFiles_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* __IAppDomainSetup_INTERFACE_DEFINED__ */ - - -/* Additional Prototypes for ALL interfaces */ - -unsigned long __RPC_USER BSTR_UserSize( unsigned long *, unsigned long , BSTR * ); -unsigned char * __RPC_USER BSTR_UserMarshal( unsigned long *, unsigned char *, BSTR * ); -unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); -void __RPC_USER BSTR_UserFree( unsigned long *, BSTR * ); - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/lib/coreclr/src/inc/iceefilegen.h b/lib/coreclr/src/inc/iceefilegen.h index c33a7b12ee5c..65289f4f93af 100644 --- a/lib/coreclr/src/inc/iceefilegen.h +++ b/lib/coreclr/src/inc/iceefilegen.h @@ -61,12 +61,13 @@ typedef HRESULT (__stdcall * PFN_DestroyICeeFileGen)(ICeeFileGen ** ceeFileGen); #define ICEE_CREATE_FILE_STRIP_RELOCS 0x00000008 // strip the .reloc section #define ICEE_CREATE_FILE_EMIT_FIXUPS 0x00000010 // emit fixups for use by Vulcan -#define ICEE_CREATE_MACHINE_MASK 0x0000FF00 // space for up to 256 machine targets +#define ICEE_CREATE_MACHINE_MASK 0x0000FF00 // space for up to 256 machine targets (note: most users just do a bit check, not an equality compare after applying the mask) #define ICEE_CREATE_MACHINE_ILLEGAL 0x00000000 // An illegal machine name #define ICEE_CREATE_MACHINE_I386 0x00000100 // Create a IMAGE_FILE_MACHINE_I386 #define ICEE_CREATE_MACHINE_IA64 0x00000200 // Create a IMAGE_FILE_MACHINE_IA64 #define ICEE_CREATE_MACHINE_AMD64 0x00000400 // Create a IMAGE_FILE_MACHINE_AMD64 #define ICEE_CREATE_MACHINE_ARM 0x00000800 // Create a IMAGE_FILE_MACHINE_ARMNT +#define ICEE_CREATE_MACHINE_ARM64 0x00001000 // Create a IMAGE_FILE_MACHINE_ARM64 // Pass this to CreateCeeFileEx to create a pure IL Exe or DLL #define ICEE_CREATE_FILE_PURE_IL ICEE_CREATE_FILE_PE32 | \ @@ -75,6 +76,8 @@ typedef HRESULT (__stdcall * PFN_DestroyICeeFileGen)(ICeeFileGen ** ceeFileGen); class ICeeFileGen { public: + virtual ~ICeeFileGen() = default; + virtual HRESULT CreateCeeFile(HCEEFILE *ceeFile); // call this to instantiate a file handle // @FUTURE: remove this function. We no longer support mdScope. diff --git a/lib/coreclr/src/inc/il_kywd.h b/lib/coreclr/src/inc/il_kywd.h index e16d7c7b9d7e..826906854b64 100644 --- a/lib/coreclr/src/inc/il_kywd.h +++ b/lib/coreclr/src/inc/il_kywd.h @@ -108,6 +108,7 @@ KYWD( "internalcall", INTERNALCALL_, NO_VALUE ) KYWD( "noinlining", NOINLINING_, NO_VALUE ) KYWD( "nooptimization", NOOPTIMIZATION_, NO_VALUE ) + KYWD( "aggressiveoptimization", AGGRESSIVEOPTIMIZATION_, NO_VALUE ) KYWD( "nomangle", NOMANGLE_, NO_VALUE ) KYWD( "lasterr", LASTERR_, NO_VALUE ) KYWD( "winapi", WINAPI_, NO_VALUE ) @@ -194,9 +195,9 @@ KYWD( "legacy", LEGACY_, NO_VALUE ) KYWD( "library", LIBRARY_, NO_VALUE ) KYWD( "x86", X86_, NO_VALUE ) - KYWD( "ia64", IA64_, NO_VALUE ) KYWD( "amd64", AMD64_, NO_VALUE ) KYWD( "arm", ARM_, NO_VALUE ) + KYWD( "arm64", ARM64_, NO_VALUE ) KYWD( ".publickey", _PUBLICKEY, NO_VALUE ) KYWD( ".publickeytoken",_PUBLICKEYTOKEN, NO_VALUE ) KYWD( "algorithm", ALGORITHM_, NO_VALUE ) diff --git a/lib/coreclr/src/inc/ipcfunccall.h b/lib/coreclr/src/inc/ipcfunccall.h deleted file mode 100644 index 15034e09f89c..000000000000 --- a/lib/coreclr/src/inc/ipcfunccall.h +++ /dev/null @@ -1,117 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -//***************************************************************************** -// File: IPCFuncCall.h -// -// Define class to support a cross process function call. -// -//***************************************************************************** - - -#ifndef _IPCFUNCCALLIMPL_H_ -#define _IPCFUNCCALLIMPL_H_ - -//----------------------------------------------------------------------------- -// 1. Handler creates a IPCFuncCallHandler object and inits it with -// a callback function. -// 2. Source calls IPCFuncCallSource::DoThreadSafeCall(). This will pause the -// thread and trigger the callback on the handlers side. -// -// This mechanism is very robust. See the error return codes on -// DoThreadSafeCall() for more details. -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -// Send the call -//----------------------------------------------------------------------------- -class IPCFuncCallSource -{ -public: -//............................................................................. -// Error return codes for members. -// Our biggest error concerns are timeouts and no handlers. HRESULTS won't -// help us with these, so we'll have to use our own codes. -//............................................................................. - enum EError - { - // (Common) the function was called, and we waited for the full duration. - Ok, - - // (Common) The function MAY have been called, but we timed out before it - // finished This means either: The function was called, but took too long - // to finish or The handler died on us right after we hooked up to it and - // so the function never even got called. - Fail_Timeout_Call, - - // (Common) There was no handler for us to call - Fail_NoHandler, - - // (rare) The function was never called. We successfully connected to the handler, - // but we timed out waiting for the mutex. - Fail_Timeout_Lock, - - // (very rare) We were unable to create the mutex to serialize - Fail_CreateMutex, - - // (very rare) Catch-all General Failure. - Failed - - }; - - -// Make a call, wrapped in a mutex - static EError DoThreadSafeCall(); - - -protected: - -}; - - -//----------------------------------------------------------------------------- -// AuxThread Callback -//----------------------------------------------------------------------------- -DWORD WINAPI HandlerAuxThreadProc(LPVOID lpParameter); - - -//----------------------------------------------------------------------------- -// Callback for handler. AuxThread will call this. -//----------------------------------------------------------------------------- -typedef void (*HANDLER_CALLBACK)(); - -//----------------------------------------------------------------------------- -// Receieves the call. This should be in a different process than the source -//----------------------------------------------------------------------------- -class IPCFuncCallHandler -{ -public: - HRESULT InitFCHandler(HANDLER_CALLBACK pfnCallback, HANDLER_CALLBACK pfnCleanupCallback); - void TerminateFCHandler(); - void WaitForShutdown(); - - IPCFuncCallHandler(); - ~IPCFuncCallHandler(); - -protected: - BOOL IsShutdownComplete(); - void SafeCleanup(); - HANDLE m_hStartEnum; // event to notify start call - HANDLE m_hDoneEnum; // event to notify end call - - Volatile m_hAuxThread; // thread to listen for m_hStartEnum - - HANDLER_CALLBACK m_pfnCallback; - HANDLER_CALLBACK m_pfnCleanupCallback; - - Volatile m_fShutdownAuxThread; // flag the Aux thread to finish up gracefully - HANDLE m_hShutdownThread; // Event to signal the Aux thread to finish up gracefully - - HMODULE m_hCallbackModule; // Hold the module's ref to make sure that the - // aux thread's code doesn't get unmapped. -// Make auxthread our friend so he can access all our eventing objects - friend DWORD WINAPI HandlerAuxThreadProc(LPVOID); -}; - - -#endif // _IPCFUNCCALLIMPL_H_ diff --git a/lib/coreclr/src/inc/ipcmanagerinterface.h b/lib/coreclr/src/inc/ipcmanagerinterface.h deleted file mode 100644 index ef71371273c3..000000000000 --- a/lib/coreclr/src/inc/ipcmanagerinterface.h +++ /dev/null @@ -1,204 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -//***************************************************************************** -// File: IPCManagerInterface.h -// -// Interface for InterProcess Communication with a COM+ process. -// -//***************************************************************************** - - -#ifndef _IPCMANAGERINTERFACE_H_ -#define _IPCMANAGERINTERFACE_H_ - -#include "../ipcman/ipcheader.h" - -struct PerfCounterIPCControlBlock; -struct AppDomainEnumerationIPCBlock; - -#include "../ipcman/ipcmanagerimpl.h" - -// These are the right that we will give to the global section and global events used -// in communicating between debugger and debugee -// -// SECTION_ALL_ACCESS is needed for the IPC block. Unfortunately, we DACL our events and -// IPC block identically. Or this particular right does not need to bleed into here. -// -#define CLR_IPC_GENERIC_RIGHT (GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE | STANDARD_RIGHTS_ALL | SECTION_ALL_ACCESS) - -//----------------------------------------------------------------------------- -// Writer - create a COM+ IPC Block with security attributes. -//----------------------------------------------------------------------------- -class IPCWriterInterface : public IPCWriterImpl -{ -public: - - BOOL TryAllocBlock(DWORD numRetries); - BOOL TryFreeBlock(); - - //............................................................................. - // Creation / Destruction only on implementation - //............................................................................. - HRESULT Init(); - void Terminate(); - - //............................................................................. - // Marks the data in the IPC block as initialized - //............................................................................. - void Publish(); - - //............................................................................. - // Accessor for the Perf block - //............................................................................. - PerfCounterIPCControlBlock * GetPerfBlock(); - - void DestroySecurityAttributes(SECURITY_ATTRIBUTES *pSA); - -#ifndef DACCESS_COMPILE - - //............................................................................. - // Create the SxS Public IPC block. - //............................................................................. - HRESULT CreateSxSPublicBlockOnPid(DWORD PID); - - //............................................................................. - // Open the SxS Public IPC block that has alread been created. - //............................................................................. - HRESULT OpenSxSPublicBlockOnPid(DWORD PID); - - HRESULT GetSxSPublicSecurityAttributes(DWORD pid, SECURITY_ATTRIBUTES **ppSA); - -#endif - - DWORD GetBlockTableSize(); - PTR_VOID GetBlockTableStart(); - - /*********************************** LEGACY FUNCTIONS *********************************** - * - * Though newer versions of the runtime do not open the LegacyPrivate block or the LegacyPublic - * block, we need functionality in the reader to inspect the LegacyPrivate block and LegacyPublic - * block so reading data from older runtimes. - * - ****************************************************************************************/ - - //............................................................................. - // The AppDomain block resides within the LegacyPrivate IPC block. - //............................................................................. - AppDomainEnumerationIPCBlock * GetAppDomainBlock(); - - //............................................................................. - // Create the LegacyPrivate IPC block. If this fails because the IPC block has already been - // created by another module then the phInstIPCBlockOwner argument will be set to the - // HINSTANCE of the module that created the IPC block. - // Set inService to TRUE if creating from within a service on behalf of a process. - //............................................................................. - HRESULT CreateLegacyPrivateBlockTempV4OnPid(DWORD PID, BOOL inService, HINSTANCE *phInstIPCBlockOwner); - - //............................................................................. - // Open the LegacyPrivate IPC block that has alread been created. - //............................................................................. - HRESULT OpenLegacyPrivateBlockOnPid(DWORD PID); - - //............................................................................. - // ReDacl our LegacyPrivate block after it has been created. - //............................................................................. - HRESULT ReDaclLegacyPrivateBlock(PSECURITY_DESCRIPTOR pSecurityDescriptor); - - //............................................................................. - // Accessors - return info from header - - // These functions work on LegacyPrivate Block - //............................................................................. - DWORD GetBlockSize(); - PTR_VOID GetBlockStart(); - PCWSTR GetInstancePath(); -}; - -//----------------------------------------------------------------------------- -// IPCReader class connects to a COM+ IPC block and reads from it -// @FUTURE - make global & private readers -//----------------------------------------------------------------------------- -class IPCReaderInterface : public IPCReaderImpl -{ -public: - - void MakeInstanceName(const WCHAR * szProcessName, DWORD pid, DWORD runtimeId, SString & sName); - void MakeInstanceNameWhidbey(const WCHAR * szProcessName, DWORD pid, SString & sName); - - BOOL TryOpenBlock(IPCHeaderReadHelper & readHelper, DWORD blockIndex); - - //............................................................................. - // Create & Destroy - //............................................................................. - ~IPCReaderInterface(); - - HRESULT OpenLegacyPrivateBlockTempV4OnPid(DWORD pid); - HRESULT OpenLegacyPrivateBlockTempV4OnPid(DWORD pid, DWORD dwDesiredAccess); - - HRESULT OpenLegacyPrivateBlockOnPid(DWORD pid); - HRESULT OpenLegacyPrivateBlockOnPid(DWORD pid, DWORD dwDesiredAccess); - HRESULT OpenLegacyPrivateBlockOnPidReadWrite(DWORD pid); - HRESULT OpenLegacyPrivateBlockOnPidReadOnly(DWORD pid); - void CloseLegacyPrivateBlock(); - -#ifndef DACCESS_COMPILE - HRESULT OpenLegacyPublicBlockOnPid(DWORD pid); - HRESULT OpenLegacyPublicBlockOnPid(DWORD pid, DWORD dwDesiredAccess); - HRESULT OpenLegacyPublicBlockOnPidReadOnly(DWORD pid); - void CloseLegacyPublicBlock(); - - HRESULT OpenBlockTableOnPid(DWORD pid); - HRESULT OpenBlockTableOnPid(DWORD pid, DWORD dwDesiredAccess); - HRESULT OpenBlockTableOnPidReadOnly(DWORD pid); - void CloseBlockTable(); -#endif - - //............................................................................. - // Accessors - return info from header - // @FUTURE - factor this into IPCWriterInterface as well. - //............................................................................. - USHORT GetBlockVersion(); - USHORT GetLegacyPublicBlockVersion(); - HINSTANCE GetInstance(); - USHORT GetBuildYear(); - USHORT GetBuildNumber(); - PVOID GetBlockStart(); - PCWSTR GetInstancePath(); - - //........................................ - // Check the block to see if its valid - //........................................ - BOOL IsValidLegacy(BOOL fIsLegacyPublicBlock); - -#ifndef DACCESS_COMPILE - //BOOL IsValidForSxSPublic(IPCControlBlock * pBlock); -#endif - - //............................................................................. - // Get different sections of the IPC - //............................................................................. - void * GetLegacyPrivateBlock(ELegacyPrivateIPCClient eClient); - void * GetLegacyPublicBlock(ELegacyPublicIPCClient eClient); -#ifndef DACCESS_COMPILE - //void * GetSxSPublicBlock(DWORD chunkIndex, EIPCClient eClient); -#endif - - void * GetPerfBlockLegacyPrivate(); - void * GetPerfBlockLegacyPublic(); -#ifndef DACCESS_COMPILE - //PerfCounterIPCControlBlock * GetPerfBlockSxSPublic(DWORD chunkIndex); -#endif - AppDomainEnumerationIPCBlock * GetAppDomainBlock(); - - //............................................................................. - // Return true if we're connected to a memory-mapped file, else false. - //............................................................................. - bool IsLegacyPrivateBlockOpen() const; - bool IsLegacyPublicBlockOpen() const; - bool IsBlockTableOpen() const; - - HRESULT IsCompatablePlatformForDebuggerAndDebuggee(DWORD pid, BOOL * pfCompatible); -}; - -#endif - diff --git a/lib/coreclr/src/inc/iterator.h b/lib/coreclr/src/inc/iterator.h index 98cf6185e0e9..7616c2c044ad 100644 --- a/lib/coreclr/src/inc/iterator.h +++ b/lib/coreclr/src/inc/iterator.h @@ -219,7 +219,7 @@ class CheckedIteratorBase { LIMITED_METHOD_CONTRACT; SUPPORTS_DAC; -#if defined(_DEBUG) +#if defined(_DEBUG) && (defined(_MSC_VER) || defined(__llvm__)) __if_exists(CONTAINER::m_revision) { CHECK_MSG(m_revision == m_container->m_revision, @@ -242,10 +242,12 @@ class CheckedIteratorBase LIMITED_METHOD_CONTRACT; #if defined(_DEBUG) m_container = container; +#if defined(_MSC_VER) || defined(__llvm__) __if_exists(CONTAINER::m_revision) { m_revision = m_container->m_revision; } +#endif #endif } @@ -253,14 +255,14 @@ class CheckedIteratorBase { LIMITED_METHOD_DAC_CONTRACT; -#if defined(_DEBUG) +#if defined(_DEBUG) && (defined(_MSC_VER) || defined(__llvm__)) __if_exists(CONTAINER::m_revision) { m_revision = m_container->m_revision; } #endif } - + #if defined(_DEBUG) const CONTAINER *GetContainerDebug() const { diff --git a/lib/coreclr/src/inc/jithelpers.h b/lib/coreclr/src/inc/jithelpers.h index 140badfbb444..d7d501f382f6 100644 --- a/lib/coreclr/src/inc/jithelpers.h +++ b/lib/coreclr/src/inc/jithelpers.h @@ -73,7 +73,10 @@ JITHELPER(CORINFO_HELP_NEW_CROSSCONTEXT, NULL, CORINFO_HELP_SIG_CANNOT_USE_ALIGN_STUB) JITHELPER(CORINFO_HELP_NEWFAST, JIT_New, CORINFO_HELP_SIG_REG_ONLY) DYNAMICJITHELPER(CORINFO_HELP_NEWSFAST, JIT_New, CORINFO_HELP_SIG_REG_ONLY) + JITHELPER(CORINFO_HELP_NEWSFAST_FINALIZE, NULL, CORINFO_HELP_SIG_REG_ONLY) DYNAMICJITHELPER(CORINFO_HELP_NEWSFAST_ALIGN8, JIT_New, CORINFO_HELP_SIG_REG_ONLY) + JITHELPER(CORINFO_HELP_NEWSFAST_ALIGN8_VC, NULL, CORINFO_HELP_SIG_REG_ONLY) + JITHELPER(CORINFO_HELP_NEWSFAST_ALIGN8_FINALIZE, NULL, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_NEW_MDARR, JIT_NewMDArr,CORINFO_HELP_SIG_8_VA) JITHELPER(CORINFO_HELP_NEW_MDARR_NONVARARG, JIT_NewMDArrNonVarArg,CORINFO_HELP_SIG_4_STACK) JITHELPER(CORINFO_HELP_NEWARR_1_DIRECT, JIT_NewArr1,CORINFO_HELP_SIG_REG_ONLY) @@ -156,7 +159,7 @@ JITHELPER(CORINFO_HELP_VERIFICATION_RUNTIME_CHECK, JIT_VerificationRuntimeCheck,CORINFO_HELP_SIG_REG_ONLY) // GC support - DYNAMICJITHELPER(CORINFO_HELP_STOP_FOR_GC, JIT_RareDisableHelper,CORINFO_HELP_SIG_REG_ONLY) + DYNAMICJITHELPER(CORINFO_HELP_STOP_FOR_GC, JIT_RareDisableHelper, CORINFO_HELP_SIG_REG_ONLY) #ifdef ENABLE_FAST_GCPOLL_HELPER DYNAMICJITHELPER(CORINFO_HELP_POLL_GC, JIT_PollGC, CORINFO_HELP_SIG_REG_ONLY) #else @@ -263,13 +266,14 @@ JITHELPER(CORINFO_HELP_RUNTIMEHANDLE_METHOD_LOG,JIT_GenericHandleMethodLogging, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_RUNTIMEHANDLE_CLASS, JIT_GenericHandleClass, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_RUNTIMEHANDLE_CLASS_LOG, JIT_GenericHandleClassLogging, CORINFO_HELP_SIG_REG_ONLY) - JITHELPER(CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPEHANDLE_OBSOLETE, NULL, CORINFO_HELP_SIG_CANNOT_USE_ALIGN_STUB) - JITHELPER(CORINFO_HELP_METHODDESC_TO_RUNTIMEMETHODHANDLE_OBSOLETE, NULL, CORINFO_HELP_SIG_CANNOT_USE_ALIGN_STUB) - JITHELPER(CORINFO_HELP_FIELDDESC_TO_RUNTIMEFIELDHANDLE_OBSOLETE, NULL, CORINFO_HELP_SIG_CANNOT_USE_ALIGN_STUB) JITHELPER(CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE, JIT_GetRuntimeType, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE_MAYBENULL, JIT_GetRuntimeType_MaybeNull, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_METHODDESC_TO_STUBRUNTIMEMETHOD, JIT_GetRuntimeMethodStub,CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_FIELDDESC_TO_STUBRUNTIMEFIELD, JIT_GetRuntimeFieldStub, CORINFO_HELP_SIG_REG_ONLY) + JITHELPER(CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPEHANDLE, JIT_GetRuntimeType, CORINFO_HELP_SIG_REG_ONLY) + JITHELPER(CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPEHANDLE_MAYBENULL, JIT_GetRuntimeType_MaybeNull, CORINFO_HELP_SIG_REG_ONLY) + + JITHELPER(CORINFO_HELP_ARE_TYPES_EQUIVALENT, NULL, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_VIRTUAL_FUNC_PTR, JIT_VirtualFunctionPointer, CORINFO_HELP_SIG_4_STACK) //JITHELPER(CORINFO_HELP_VIRTUAL_FUNC_PTR_LOG,JIT_VirtualFunctionPointerLogging) @@ -294,9 +298,17 @@ JITHELPER(CORINFO_HELP_EE_PINVOKE_FIXUP, NDirectImportThunk, CORINFO_HELP_SIG_NO_ALIGN_STUB) +#ifdef FEATURE_PREJIT JITHELPER(CORINFO_HELP_EE_VSD_FIXUP, StubDispatchFixupStub, CORINFO_HELP_SIG_NO_ALIGN_STUB) +#else + JITHELPER(CORINFO_HELP_EE_VSD_FIXUP, NULL, CORINFO_HELP_SIG_NO_ALIGN_STUB) +#endif JITHELPER(CORINFO_HELP_EE_EXTERNAL_FIXUP, ExternalMethodFixupStub, CORINFO_HELP_SIG_NO_ALIGN_STUB) +#ifdef FEATURE_PREJIT JITHELPER(CORINFO_HELP_EE_VTABLE_FIXUP, VirtualMethodFixupStub, CORINFO_HELP_SIG_NO_ALIGN_STUB) +#else + JITHELPER(CORINFO_HELP_EE_VTABLE_FIXUP, NULL, CORINFO_HELP_SIG_NO_ALIGN_STUB) +#endif JITHELPER(CORINFO_HELP_EE_REMOTING_THUNK, NULL, CORINFO_HELP_SIG_UNDEF) @@ -346,11 +358,12 @@ JITHELPER(CORINFO_HELP_THROW_ARGUMENTEXCEPTION, JIT_ThrowArgumentException, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_THROW_ARGUMENTOUTOFRANGEEXCEPTION, JIT_ThrowArgumentOutOfRangeException, CORINFO_HELP_SIG_REG_ONLY) + JITHELPER(CORINFO_HELP_THROW_NOT_IMPLEMENTED, JIT_ThrowNotImplementedException, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_THROW_PLATFORM_NOT_SUPPORTED, JIT_ThrowPlatformNotSupportedException, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_THROW_TYPE_NOT_SUPPORTED, JIT_ThrowTypeNotSupportedException, CORINFO_HELP_SIG_REG_ONLY) - JITHELPER(CORINFO_HELP_JIT_PINVOKE_BEGIN, NULL, CORINFO_HELP_SIG_UNDEF) - JITHELPER(CORINFO_HELP_JIT_PINVOKE_END, NULL, CORINFO_HELP_SIG_UNDEF) + JITHELPER(CORINFO_HELP_JIT_PINVOKE_BEGIN, JIT_PInvokeBegin, CORINFO_HELP_SIG_REG_ONLY) + JITHELPER(CORINFO_HELP_JIT_PINVOKE_END, JIT_PInvokeEnd, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_JIT_REVERSE_PINVOKE_ENTER, NULL, CORINFO_HELP_SIG_UNDEF) JITHELPER(CORINFO_HELP_JIT_REVERSE_PINVOKE_EXIT, NULL, CORINFO_HELP_SIG_UNDEF) diff --git a/lib/coreclr/src/inc/jithost.h b/lib/coreclr/src/inc/jithost.h deleted file mode 100644 index 73ad3343b597..000000000000 --- a/lib/coreclr/src/inc/jithost.h +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -#ifndef __JITHOST_H__ -#define __JITHOST_H__ - -// Common implementation of ICorJitHost that respects CLR host policies. -class JitHost : public ICorJitHost -{ -private: - static JitHost theJitHost; - - JitHost() {} - JitHost(const JitHost& other) = delete; - JitHost& operator=(const JitHost& other) = delete; - -public: - virtual void* allocateMemory(size_t size, bool usePageAllocator); - virtual void freeMemory(void* block, bool usePageAllocator); - virtual int getIntConfigValue(const wchar_t* name, int defaultValue); - virtual const wchar_t* getStringConfigValue(const wchar_t* name); - virtual void freeStringConfigValue(const wchar_t* value); - - static ICorJitHost* getJitHost(); -}; - -#endif // __JITHOST_H__ diff --git a/lib/coreclr/src/inc/legacyactivationshimutil.h b/lib/coreclr/src/inc/legacyactivationshimutil.h deleted file mode 100644 index 4e6cdf0d25ec..000000000000 --- a/lib/coreclr/src/inc/legacyactivationshimutil.h +++ /dev/null @@ -1,1116 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// LegacyActivationShim.h -// -// This file allows simple migration from .NET Runtime v2 Host Activation APIs -// to the .NET Runtime v4 Host Activation APIs through simple shim functions. - -#ifndef __LEGACYACTIVATIONSHIMUTIL_H__ -#define __LEGACYACTIVATIONSHIMUTIL_H__ - -// To minimize how much we perturb sources that we are included in, we make sure that -// all macros we define/redefine are restored at the end of the header. -#pragma push_macro("SELECTANY") -#pragma push_macro("_TEXT_ENCODE") -#pragma push_macro("countof") -#pragma push_macro("UNUSED") - -#ifndef _MSC_VER -#error "LegacyActivationShim.h cannot be used on non-MS compilers" -#endif - -// ---SELECTANY------------------------------------------------------------------------------------ -#undef SELECTANY -#define SELECTANY extern __declspec(selectany) - -// Allow users of these headers to provide custom 'LoadLibrary' implementation (e.g. WszLoadLibrary). -// Example of usage is in ndp\clr\src\fusion\tools\viewer. -#ifndef LEGACY_ACTIVATION_SHIM_LOAD_LIBRARY -#define LEGACY_ACTIVATION_SHIM_LOAD_LIBRARY ::LoadLibrary -#endif - -// _T macro alternative to make strings ASCII/UNICODE -#undef _TEXT_ENCODE -#ifdef UNICODE -#define _TEXT_ENCODE(str) L ## str -#else //!UNICODE -#define _TEXT_ENCODE(str) str -#endif //!UNICODE - -// countof ... number of items in an array -#ifndef countof -#define countof(x) (sizeof(x) / sizeof(x[0])) -#endif countof - -#ifndef UNUSED -#define UNUSED(var) ((void)(var)) -#endif //UNUSED - -#ifndef __LEGACYACTIVATIONSHIM_H__ - #error Error: Include LegacyActivationShim.h or LegacyActivationShimDelayLoad.h instead of directly including LegacyActivationShimUtil.h -#endif // __LEGACYACTIVATIONSHIM_H__ - -// ---PLACEMENT NEW-------------------------------------------------------------------------------- -#ifndef __PLACEMENT_NEW_INLINE -#define __PLACEMENT_NEW_INLINE -// Inline placement new -inline void* operator new(size_t, void *_Where) -{ // construct array with placement at _Where - return (_Where); -} - -// delete if placement new fails -inline void operator delete(void *, void *) -{ -} -#endif __PLACEMENT_NEW_INLINE - -// ---LEGACYACTIVATON NAMESPACE-------------------------------------------------------------------- -namespace LegacyActivationShim -{ - // ---UTIL NAMESPACE--------------------------------------------------------------------------- - namespace Util - { - // ---INTERLOCKEDCOMPAREEXCHANGEPOINTERT--------------------------------------------------- - // Variation on InterlockedCompareExchangePointer that adds some type safety. - // Added 'T' to end of name because an identical name to the original function - // confuses GCC - template - inline - T InterlockedCompareExchangePointerT( - T volatile* destination, - T exchange, - T comparand) - { -#ifdef __UtilCode_h__ - // Utilcode has redefined InterlockedCompareExchangePointer - return ::InterlockedCompareExchangeT(destination, exchange, comparand); -#else // __UtilCode_h__ - return reinterpret_cast(InterlockedCompareExchangePointer( - (PVOID volatile *)(destination), - (PVOID)(exchange), - (PVOID)(comparand))); -#endif // __UtilCode_h__ else - } - - // ---PlacementNewDeleteHelper------------------------------------------------------------- - template - class PlacementNewDeleteHelper; - - template - class PlacementNewDeleteHelper - { - public: - // Some environments #define New and Delete, so name these functions - // Construct and Destruct to keep them unique. - static void Construct(TYPE const & value, void *pvWhere) - { new (pvWhere) TYPE(value); } - - static void Destruct(TYPE & value) - { value.~TYPE(); } - }; - - template - class PlacementNewDeleteHelper - { - public: - static void Construct(TYPE const & value, void *pvWhere) - { *reinterpret_cast(pvWhere) = value; } - - static void Destruct(TYPE &) - { } - }; - - // ---HOLDERBASE--------------------------------------------------------------------------- - template - class HolderBase - { - public: - // Relies on implicit default constructor, which permits zero-init static - // object declaration. Do not define one. - // HolderBase() {} - - protected: - char m_value[sizeof(TYPE)]; - - inline - TYPE & GetRef() - { return *reinterpret_cast(&m_value[0]); } - - inline - TYPE & GetPtr() - { return reinterpret_cast(&m_value[0]); } - - inline - void Construct(TYPE const & value) - { PlacementNewDeleteHelper::Construct(value, (void *)&m_value[0]); } - - inline - void Destruct() - { PlacementNewDeleteHelper::Destruct(GetRef()); } - }; - - // ---HOLDER------------------------------------------------------------------------------- - template - class Holder : public HolderBase - { - protected: - bool m_assigned; - bool m_suppressed; - - public: - inline - Holder() : m_assigned(false), m_suppressed(false) - {} - - inline - Holder(TYPE const & value) : m_assigned(false), m_suppressed(false) - { Assign(value); } - - inline - ~Holder() - { Release(); } - - inline - void Assign(TYPE const & value) - { - Release(); - Construct(value); - m_assigned = true; - (*ASSIGNF)(GetValue()); - } - - inline - void Release() - { - if (m_assigned) - { - if (!m_suppressed) - { - (*RELEASEF)(GetValue()); - } - m_assigned = false; - m_suppressed = false; - Destruct(); - } - } - - inline - void SuppressRelease() - { - m_suppressed = m_assigned; - } - - inline - TYPE & GetValue() - { - // _ASSERTE(m_assigned); - return GetRef(); - } - - inline - bool IsAssigned() - { return m_assigned; } - }; - - // ---ZEROINITGLOBALHOLDER----------------------------------------------------------------- - // This class should ONLY be used for global (file scope) variables. It relies on zero - // initialized data in the image. This will fail miserably for other scenarios, as the - // memory used for the object may not be zero-initialized, which will result in incorrect - // behaviour. - template - class ZeroInitGlobalHolder : public HolderBase - { - protected: - bool m_assigned; - - public: - // Relies on implicit default constructor, which permits zero-init static - // field declaration. Do not define an explicit constructor. - // ZeroInitGlobalHolder() {} - - inline - ~ZeroInitGlobalHolder() - { Release(); } - - inline - void Assign(TYPE const & value) - { - Release(); - Construct(value); - m_assigned = true; - (*ASSIGNF)(GetValue()); - } - - inline - void Release() - { - if (m_assigned) - { - (*RELEASEF)(GetValue()); - m_assigned = false; - Destruct(); - } - } - - inline - TYPE & GetValue() - { - // _ASSERTE(m_assigned); - return GetRef(); - } - - inline - bool IsAssigned() - { return m_assigned; } - - inline - void ClearUnsafe() - { m_assigned = false; } - }; - - // ---DONOTHINGHELPER---------------------------------------------------------------------- - template - inline - void DoNothingHelper(TYPE & value) - { UNUSED(value); } - - // ---RELEASEHELPER------------------------------------------------------------------------ - template - inline - void ReleaseHelper(TYPE & value) - { value->Release(); } - - // ---RELEASEHOLDER------------------------------------------------------------------------ - template - class ReleaseHolder - : public Holder< TYPE, &DoNothingHelper, &ReleaseHelper > - { - public: - inline - ReleaseHolder(TYPE & value) - : Holder< TYPE, &DoNothingHelper, &ReleaseHelper >(value) - {} - - ReleaseHolder() - : Holder< TYPE, &DoNothingHelper, &ReleaseHelper >() - {} - }; - - // ---ZEROINITGLOBALRELEASEHOLDER---------------------------------------------------------- - template - class ZeroInitGlobalReleaseHolder - : public ZeroInitGlobalHolder< TYPE, &DoNothingHelper, &ReleaseHelper > - { - }; - - // ---FREELIBRARYHELPER-------------------------------------------------------------------- - inline - void FreeLibraryHelper(HMODULE & hMod) - { - FreeLibrary(hMod); - } - - // ---HMODULEHOLDER------------------------------------------------------------------------ - class HMODULEHolder - : public Holder< HMODULE, &DoNothingHelper, &FreeLibraryHelper > - { - public: - inline - HMODULEHolder(HMODULE value) - : Holder< HMODULE, &DoNothingHelper, &FreeLibraryHelper >(value) - {} - - HMODULEHolder() - : Holder< HMODULE, &DoNothingHelper, &FreeLibraryHelper >() - {} - }; - - // ---ZEROINITHMODULEHOLDER---------------------------------------------------------------- - class ZeroInitGlobalHMODULEHolder - : public ZeroInitGlobalHolder< HMODULE, &DoNothingHelper, &FreeLibraryHelper > - { - }; - - // ---DELAYLOADFUNCTOR--------------------------------------------------------------------- - // T must be a function typedef. - // For example, "typedef int X(short i); DelayLoadFunctor pfnX;" - template - class DelayLoadFunctor - { - private: - HMODULEHolder m_hModHolder; - T * m_proc; - - public: - HRESULT Init(LPCTSTR wzDllName, LPCSTR szProcName) - { - // Load module - HMODULE hMod = LEGACY_ACTIVATION_SHIM_LOAD_LIBRARY(wzDllName); - if (hMod == NULL) - return HRESULT_FROM_WIN32(::GetLastError()); - HMODULEHolder hModHolder(hMod); - - // Load proc address - T * proc = reinterpret_cast(::GetProcAddress(hMod, szProcName)); - if (proc == NULL) - return HRESULT_FROM_WIN32(::GetLastError()); - - // Store results - hModHolder.SuppressRelease(); - m_hModHolder.Assign(hMod); - m_proc = proc; - - return S_OK; - } - - HRESULT Init(HMODULE hMod, LPCSTR szProcName) - { - // Load proc address - T * proc = reinterpret_cast(::GetProcAddress(hMod, szProcName)); - if (proc == NULL) - return HRESULT_FROM_WIN32(::GetLastError()); - - // Store result - m_proc = proc; - - // Success - return S_OK; - } - - T& operator()() - { - return *m_proc; - } - }; - - // ---ZEROINITGLOBALSPINLOCK---------------------------------------------------------------- - class ZeroInitGlobalSpinLock - { - private: - enum LOCK_STATE - { - UNLOCKED = 0, - LOCKED = 1 - }; - - LONG volatile m_lock; - - static inline void Lock(ZeroInitGlobalSpinLock*& lock) - { - while (InterlockedExchange(&lock->m_lock, LOCKED) == LOCKED) - { - ::SwitchToThread(); - } - } - - static inline void Unlock(ZeroInitGlobalSpinLock*& lock) - { InterlockedExchange(&lock->m_lock, UNLOCKED); } - - public: - typedef LegacyActivationShim::Util::Holder - Holder; - }; - - // ---MSCOREEDATA-------------------------------------------------------------------------- - SELECTANY HMODULE g_hModMscoree = NULL; - SELECTANY ZeroInitGlobalHMODULEHolder g_hModMscoreeHolder; - - // ---GETMSCOREE--------------------------------------------------------------------------- - inline - HRESULT GetMSCOREE(HMODULE *pMscoree) - { - if (g_hModMscoree == NULL) - { - HMODULE hModMscoree = LEGACY_ACTIVATION_SHIM_LOAD_LIBRARY(_TEXT_ENCODE("mscoree.dll")); - if (hModMscoree == NULL) - return HRESULT_FROM_WIN32(GetLastError()); - HMODULEHolder hModMscoreeHolder(hModMscoree); - - if (LegacyActivationShim::Util::InterlockedCompareExchangePointerT( - &g_hModMscoree, hModMscoree, NULL) == NULL) - { - g_hModMscoreeHolder.ClearUnsafe(); - g_hModMscoreeHolder.Assign(g_hModMscoree); - hModMscoreeHolder.SuppressRelease(); - } - } - - *pMscoree = g_hModMscoree; - return S_OK; - } - - // ---MSCOREEFUNCTOR----------------------------------------------------------------------- - template - class MscoreeFunctor : public DelayLoadFunctor - { - public: - HRESULT Init(LPCSTR szProcName) - { - HRESULT hr = S_OK; - HMODULE hModMscoree = NULL; - IfHrFailRet(GetMSCOREE(&hModMscoree)); - - return DelayLoadFunctor::Init(hModMscoree, szProcName); - } - }; - - // ---CALLCLRCREATEINSTANCE------------------------------------------------------------------ - inline - HRESULT CallCLRCreateInstance( - REFCLSID clsid, - REFIID riid, - LPVOID *ppInterface) - { - HRESULT hr = S_OK; - HMODULE hMscoree = NULL; - IfHrFailRet(GetMSCOREE(&hMscoree)); - - typedef HRESULT (__stdcall *CLRCreateInstance_pfn) ( - REFCLSID clsid, - REFIID riid, - LPVOID *ppInterface); - - CLRCreateInstance_pfn pfnCLRCreateInstance = - reinterpret_cast(GetProcAddress(hMscoree, "CLRCreateInstance")); - - if (pfnCLRCreateInstance == NULL) - return HRESULT_FROM_WIN32(GetLastError()); - - return (*pfnCLRCreateInstance)( - clsid, - riid, - ppInterface); - } - - // ---CLRMETAHOST INTERFACE DATA----------------------------------------------------------- - SELECTANY ICLRMetaHost* g_pCLRMetaHost = NULL; - SELECTANY ZeroInitGlobalReleaseHolder g_hCLRMetaHost; - - // ---GETCLRMETAHOST----------------------------------------------------------------------- - // NOTE: Does not AddRef returned interface pointer. - inline - HRESULT GetCLRMetaHost( - /*out*/ ICLRMetaHost **ppCLRMetaHost) - { - HRESULT hr = S_OK; - - if (g_pCLRMetaHost == NULL) - { - ICLRMetaHost *pMetaHost = NULL; - IfHrFailRet(CallCLRCreateInstance(CLSID_CLRMetaHost, - IID_ICLRMetaHost, - reinterpret_cast(&pMetaHost))); - ReleaseHolder hMetaHost(pMetaHost); - - // - // Great - we got an ICLRMetaHost. Now publish this to - // g_pCLRMetaHost in a thread-safe way. - // - - if (LegacyActivationShim::Util::InterlockedCompareExchangePointerT( - &g_pCLRMetaHost, pMetaHost, NULL) == NULL) - { - // Successful publish. In this case, we also assign to the - // holder to ensure that the interface is released when the - // image is unloaded. - g_hCLRMetaHost.ClearUnsafe(); - g_hCLRMetaHost.Assign(g_pCLRMetaHost); - hMetaHost.SuppressRelease(); // Keep it AddRef'ed for the g_hCLRMetaHost - } - } - - *ppCLRMetaHost = g_pCLRMetaHost; - - return hr; - } - - // ---HasNewActivationAPIs----------------------------------------------------------------- - SELECTANY ULONG g_fHasNewActivationAPIs = ULONG(-1); - - inline - bool HasNewActivationAPIs() - { - if (g_fHasNewActivationAPIs == ULONG(-1)) - { - ICLRMetaHost *pMetaHost = NULL; - HRESULT hr = GetCLRMetaHost(&pMetaHost); - InterlockedCompareExchange((LONG volatile *)&g_fHasNewActivationAPIs, (LONG)(SUCCEEDED(hr)), ULONG(-1)); - } - - return g_fHasNewActivationAPIs != 0; - } - - // ---CLRMETAHOSTPOLICY INTERFACE DATA----------------------------------------------------- - SELECTANY ICLRMetaHostPolicy* g_pCLRMetaHostPolicy = NULL; - SELECTANY ZeroInitGlobalReleaseHolder g_hCLRMetaHostPolicy; - - // ---GETCLRMETAHOSTPOLICY----------------------------------------------------------------- - // NOTE: Does not AddRef returned interface pointer. - inline - HRESULT GetCLRMetaHostPolicy( - /*out*/ ICLRMetaHostPolicy **ppICLRMetaHostPolicy) - { - HRESULT hr = S_OK; - - if (g_pCLRMetaHostPolicy == NULL) - { - ICLRMetaHostPolicy *pMetaHostPolicy = NULL; - IfHrFailRet(CallCLRCreateInstance(CLSID_CLRMetaHostPolicy, - IID_ICLRMetaHostPolicy, - reinterpret_cast(&pMetaHostPolicy))); - ReleaseHolder hMetaHostPolicy(pMetaHostPolicy); - - // - // Great - we got an ICLRMetaHostPolicy. Now publish this to - // g_pCLRMetaHostPolicy in a thread-safe way. - // - - if (LegacyActivationShim::Util::InterlockedCompareExchangePointerT( - &g_pCLRMetaHostPolicy, pMetaHostPolicy, NULL) == NULL) - { - // Successful publish. In this case, we also assign to the - // holder to ensure that the interface is released when the - // image is unloaded. - g_hCLRMetaHostPolicy.ClearUnsafe(); - g_hCLRMetaHostPolicy.Assign(g_pCLRMetaHostPolicy); - hMetaHostPolicy.SuppressRelease(); - } - } - - *ppICLRMetaHostPolicy = g_pCLRMetaHostPolicy; - - return hr; - } - - // ---RUNTIMEINFO DATA--------------------------------------------------------------------- - struct RuntimeInfo - { - ICLRRuntimeInfo *m_pRuntimeInfo; - - DWORD m_cchImageVersion; - WCHAR m_wszImageVersion[512]; - - inline - void Init() - { - m_pRuntimeInfo = NULL; - m_cchImageVersion = countof(m_wszImageVersion); - m_wszImageVersion[0] = L'\0'; - } - - inline - void Release() - { - if (m_pRuntimeInfo != NULL) - { - m_pRuntimeInfo->Release(); - m_pRuntimeInfo = NULL; - } - } - }; - - SELECTANY LONG g_runtimeInfoIsInitialized = FALSE; - SELECTANY RuntimeInfo g_runtimeInfo; - SELECTANY ZeroInitGlobalSpinLock g_runtimeInfoLock; - SELECTANY ZeroInitGlobalReleaseHolder g_hRuntimeInfo; - - // ---GETCLRRUNTIMEINFOHELPER-------------------------------------------------------------- - // Logic: - // 1. Try to bind using ICLRMetaHostPolicy::GetRequestedRuntime and incoming arguments. - // 2. Try to bind using ICLRMetaHostPolicy::GetRequestedRuntime and "v4.0.0" and - // upgrade policy. - // 3. Try to bind to latest using GetRequestedRuntimeInfo. - - inline - HRESULT GetCLRRuntimeInfoHelper( - /*out*/ ICLRRuntimeInfo **ppCLRRuntimeInfo, - LPCWSTR pEXE = NULL, - IStream *pIStream = NULL, - __inout_ecount_opt(*pcchVersion) LPWSTR wszVersion = NULL, - DWORD *pcchVersion = NULL, - __out_ecount_opt(*pcchImageVersion) LPWSTR wszImageVersion = NULL, - DWORD *pcchImageVersion = NULL) - { - HRESULT hr = S_OK; - - // - // 1. Try policy-based binding first, which will incorporate config files and such. - // - - ICLRMetaHostPolicy *pMetaHostPolicy = NULL; - IfHrFailRet(GetCLRMetaHostPolicy(&pMetaHostPolicy)); - - DWORD dwConfigFlags = 0; - - hr = pMetaHostPolicy->GetRequestedRuntime( - METAHOST_POLICY_USE_PROCESS_IMAGE_PATH, - pEXE, - pIStream, - wszVersion, - pcchVersion, - wszImageVersion, - pcchImageVersion, - &dwConfigFlags, - IID_ICLRRuntimeInfo, - reinterpret_cast(ppCLRRuntimeInfo)); - - if (hr != S_OK && - pEXE == NULL && - pIStream == NULL && - wszVersion == NULL) - { // - // 2. Try to bind using ICLRMetaHostPolicy::GetRequestedRuntime and "v4.0.0" and upgrade policy. - // - - WCHAR _wszVersion[256]; // We can't use new in this header, so just pick an obscenely long version string length of 256 - DWORD _cchVersion = countof(_wszVersion); - wcscpy_s(_wszVersion, _cchVersion, L"v4.0.0"); - hr = pMetaHostPolicy->GetRequestedRuntime( - static_cast(METAHOST_POLICY_USE_PROCESS_IMAGE_PATH | - METAHOST_POLICY_APPLY_UPGRADE_POLICY), - pEXE, - pIStream, // (is NULL) - _wszVersion, - &_cchVersion, - wszImageVersion, - pcchImageVersion, - &dwConfigFlags, - IID_ICLRRuntimeInfo, - reinterpret_cast(ppCLRRuntimeInfo)); - } - - if (hr != S_OK && - pEXE == NULL && - pIStream == NULL && - wszVersion == NULL) - { // - // 3. Try to bind using GetRequestedRuntimeInfo(NULL) - // - - typedef HRESULT __stdcall GetRequestedRuntimeInfo_t( - LPCWSTR pExe, - LPCWSTR pwszVersion, - LPCWSTR pConfigurationFile, - DWORD startupFlags, - DWORD runtimeInfoFlags, - LPWSTR pDirectory, - DWORD dwDirectory, - DWORD *dwDirectoryLength, - LPWSTR pVersion, - DWORD cchBuffer, - DWORD* dwlength); - - HMODULE hMscoree = NULL; - IfHrFailRet(GetMSCOREE(&hMscoree)); - - // We're using GetRequestedRuntimeInfo here because it is the only remaining API - // that will not be Whidbey-capped and will allow "bind to latest" semantics. This - // is cheating a bit, but should work for now. The alternative is to use - // ICLRMetaHost::EnumerateRuntimes to achieve the same result. - DelayLoadFunctor GetRequestedRuntimeInfoFN; - IfHrFailRet(GetRequestedRuntimeInfoFN.Init(hMscoree, "GetRequestedRuntimeInfo")); - - WCHAR szDir_[_MAX_PATH]; - DWORD cchDir_ = countof(szDir_); - WCHAR szVersion_[_MAX_PATH]; - DWORD cchVersion_ = countof(szVersion_); - DWORD dwInfoFlags_ = RUNTIME_INFO_UPGRADE_VERSION - | RUNTIME_INFO_DONT_SHOW_ERROR_DIALOG; - - IfHrFailRet(GetRequestedRuntimeInfoFN()( - NULL, - NULL, - NULL, - 0, - dwInfoFlags_, - szDir_, - cchDir_, - &cchDir_, - szVersion_, - cchVersion_, - &cchVersion_)); - - // Unable to get a version to try to load. - if (hr != S_OK) - { - return CLR_E_SHIM_RUNTIMELOAD; - } - - ICLRMetaHost *pMetaHost = NULL; - IfHrFailRet(GetCLRMetaHost(&pMetaHost)); - - hr = pMetaHost->GetRuntime(szVersion_, - IID_ICLRRuntimeInfo, - reinterpret_cast(ppCLRRuntimeInfo)); - - if (hr != S_OK) - { - return CLR_E_SHIM_RUNTIMELOAD; - } - - if (wszImageVersion != NULL) - { - wcsncpy_s(wszImageVersion, *pcchImageVersion, szVersion_, cchVersion_); - *pcchImageVersion = cchVersion_; - } - } - - if (hr == S_OK && - (dwConfigFlags & METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK) == - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_TRUE) - { // If the config requested that the runtime be bound as the legacy runtime. - IfHrFailRet((*ppCLRRuntimeInfo)->BindAsLegacyV2Runtime()); - } - - return hr; - } - - // ---GETRUNTIMEINFO----------------------------------------------------------------------- - inline - HRESULT GetRuntimeInfo( - /*out*/ RuntimeInfo **ppRuntimeInfo, - LPCWSTR pEXE = NULL, - IStream *pIStream = NULL, - __inout_ecount_opt(*pcchVersion) LPWSTR wszVersion = NULL, - DWORD *pcchVersion = NULL) - { - HRESULT hr = S_OK; - - if (!g_runtimeInfoIsInitialized) - { - ZeroInitGlobalSpinLock::Holder lock(&g_runtimeInfoLock); - if (!g_runtimeInfoIsInitialized) - { - g_runtimeInfo.Init(); - - IfHrFailRet(GetCLRRuntimeInfoHelper( - &g_runtimeInfo.m_pRuntimeInfo, - pEXE, - pIStream, - wszVersion, - pcchVersion, - g_runtimeInfo.m_wszImageVersion, - &g_runtimeInfo.m_cchImageVersion)); - - // - // Initialized - now publish. - // - - g_hRuntimeInfo.ClearUnsafe(); - g_hRuntimeInfo.Assign(&g_runtimeInfo); - InterlockedExchange(&g_runtimeInfoIsInitialized, TRUE); - } - } - - // - // Return the struct - // - - *ppRuntimeInfo = &g_runtimeInfo; - return hr; - } - - // --------BINDTOV4------------------------------------------------------------------------ - // Used by hosted DLLs that require the use of v4 for all their - // LegacyActivationShim calls. Can (and should) be called from DllMain, - // provided the DLL has a static (non-delayload) dependency on mscoree.dll. - inline - HRESULT BindToV4() - { - HRESULT hr = E_FAIL; - - if (!g_runtimeInfoIsInitialized) - { - ZeroInitGlobalSpinLock::Holder lock(&g_runtimeInfoLock); - if (!g_runtimeInfoIsInitialized) - { - ICLRMetaHostPolicy *pMetaHostPolicy = NULL; - IfHrFailRet(GetCLRMetaHostPolicy(&pMetaHostPolicy)); - - g_runtimeInfo.Init(); - - // - // Try to bind using ICLRMetaHostPolicy::GetRequestedRuntime and "v4.0.0" and upgrade policy. - // - - WCHAR _wszVersion[256]; // We can't use new in this header, so just pick an obscenely long version string length of 256 - DWORD _cchVersion = countof(_wszVersion); - wcscpy_s(_wszVersion, _cchVersion, L"v4.0.0"); - - IfHrFailRet(pMetaHostPolicy->GetRequestedRuntime( - METAHOST_POLICY_APPLY_UPGRADE_POLICY, - NULL, // image path - NULL, // config stream - _wszVersion, - &_cchVersion, - g_runtimeInfo.m_wszImageVersion, - &g_runtimeInfo.m_cchImageVersion, - NULL, // config flags - IID_ICLRRuntimeInfo, - reinterpret_cast(&g_runtimeInfo.m_pRuntimeInfo))); - - // - // Initialized - now publish. - // - - g_hRuntimeInfo.ClearUnsafe(); - g_hRuntimeInfo.Assign(&g_runtimeInfo); - InterlockedExchange(&g_runtimeInfoIsInitialized, TRUE); - - hr = S_OK; - } - } - - return hr; - } - - // ---GETCLRRUNTIMEINFO-------------------------------------------------------------------- - inline - HRESULT GetCLRRuntimeInfo( - /*out*/ ICLRRuntimeInfo **ppCLRRuntimeInfo, - LPCWSTR pEXE = NULL, - IStream *pIStream = NULL, - __inout_ecount_opt(*pcchVersion) LPWSTR wszVersion = NULL, - DWORD *pcchVersion = NULL) - { - HRESULT hr = S_OK; - - RuntimeInfo *pRuntimeInfo = NULL; - IfHrFailRet(GetRuntimeInfo(&pRuntimeInfo, pEXE, pIStream, wszVersion, pcchVersion)); - - *ppCLRRuntimeInfo = pRuntimeInfo->m_pRuntimeInfo; - return hr; - } - - // ---GetConfigImageVersion---------------------------------------------------------------- - inline - HRESULT GetConfigImageVersion( - __out_ecount(*pcchBuffer) LPWSTR wzBuffer, - DWORD *pcchBuffer) - { - HRESULT hr = S_OK; - - RuntimeInfo *pRuntimeInfo = NULL; - IfHrFailRet(GetRuntimeInfo(&pRuntimeInfo)); - - DWORD cchBuffer = *pcchBuffer; - *pcchBuffer = pRuntimeInfo->m_cchImageVersion; - - if (cchBuffer <= pRuntimeInfo->m_cchImageVersion) - { - wcsncpy_s( - wzBuffer, - cchBuffer, - pRuntimeInfo->m_wszImageVersion, - pRuntimeInfo->m_cchImageVersion); - } - else - { - IfHrFailRet(HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)); - } - - return hr; - } - - // ---ICLRSTRONGNAME INTERFACE DATA-------------------------------------------------------- - SELECTANY ICLRStrongName* g_pCLRStrongName = NULL; - SELECTANY ZeroInitGlobalReleaseHolder g_hCLRStrongName; - - // ---GETCLRSTRONGNAME--------------------------------------------------------------------- - // NOTE: Does not AddRef returned interface pointer. - inline - HRESULT GetCLRStrongName( - /*out*/ ICLRStrongName **ppCLRStrongName) - { - HRESULT hr = S_OK; - - if (g_pCLRStrongName == NULL) - { - ICLRRuntimeInfo *pInfo = NULL; - IfHrFailRet(GetCLRRuntimeInfo(&pInfo)); - - ICLRStrongName *pStrongName; - - IfHrFailRet(pInfo->GetInterface( - CLSID_CLRStrongName, - IID_ICLRStrongName, - reinterpret_cast(&pStrongName))); - - // - // Great - we got an ICLRStrongName. Now publish this to - // g_pCLRStrongName in a thread-safe way. - // - - if (LegacyActivationShim::Util::InterlockedCompareExchangePointerT( - &g_pCLRStrongName, pStrongName, NULL) == NULL) - { - // Successful publish. In this case, we also assign to the - // holder to ensure that the interface is released when the - // image is unloaded. - g_hCLRStrongName.ClearUnsafe(); - g_hCLRStrongName.Assign(g_pCLRStrongName); - } - else - { - // We were beat to the punch, don't publish this interface - // and make sure we use the published value for consistency. - pStrongName->Release(); - } - } - - *ppCLRStrongName = g_pCLRStrongName; - return hr; - } - - // ---ICLRSTRONGNAME2 INTERFACE DATA-------------------------------------------------------- - SELECTANY ICLRStrongName2* g_pCLRStrongName2 = NULL; - SELECTANY ZeroInitGlobalReleaseHolder g_hCLRStrongName2; - - // ---GETCLRSTRONGNAME2--------------------------------------------------------------------- - // NOTE: Does not AddRef returned interface pointer. - inline - HRESULT GetCLRStrongName2( - /*out*/ ICLRStrongName2 **ppCLRStrongName2) - { - HRESULT hr = S_OK; - - if (g_pCLRStrongName2 == NULL) - { - ICLRRuntimeInfo *pInfo = NULL; - IfHrFailRet(GetCLRRuntimeInfo(&pInfo)); - - ICLRStrongName2 *pStrongName; - - IfHrFailRet(pInfo->GetInterface( - CLSID_CLRStrongName, - IID_ICLRStrongName2, - reinterpret_cast(&pStrongName))); - - // - // Great - we got an ICLRStrongName2. Now publish this to - // g_pCLRStrongName2 in a thread-safe way. - // - - if (LegacyActivationShim::Util::InterlockedCompareExchangePointerT( - &g_pCLRStrongName2, pStrongName, NULL) == NULL) - { - // Successful publish. In this case, we also assign to the - // holder to ensure that the interface is released when the - // image is unloaded. - g_hCLRStrongName2.ClearUnsafe(); - g_hCLRStrongName2.Assign(g_pCLRStrongName2); - } - else - { - // We were beat to the punch, don't publish this interface - // and make sure we use the published value for consistency. - pStrongName->Release(); - } - } - - *ppCLRStrongName2 = g_pCLRStrongName2; - return hr; - } - - // ---AddStartupFlags------------------------------------------------------------------------------ - inline - HRESULT AddStartupFlags( - ICLRRuntimeInfo *pInfo, - LPCWSTR wszBuildFlavor, - DWORD dwStartupFlags, - LPCWSTR wszHostConfigFile) - { - if (wszBuildFlavor != NULL && - (wszBuildFlavor[0] == L's' || wszBuildFlavor[0] == L'S') && - (wszBuildFlavor[1] == L'v' || wszBuildFlavor[1] == L'V') && - (wszBuildFlavor[2] == L'r' || wszBuildFlavor[2] == L'R') && - wszBuildFlavor[3] == 0) - { - dwStartupFlags |= STARTUP_SERVER_GC; - } - - HRESULT hr = S_OK; - - DWORD dwEffectiveStartupFlags = 0; - IfHrFailRet(pInfo->GetDefaultStartupFlags(&dwEffectiveStartupFlags, NULL, NULL)); - - // Startup flags at this point are either default (i.e. STARTUP_CONCURRENT_GC) - // or have been set based on a config file. We want to clear the concurrent - // GC flag because we are supplying non-defaults, and combine them with the - // user supplied flags. Note that STARTUP_CONCURRENT_GC is never set as part - // of reading a config so we are not losing any information here. - - dwEffectiveStartupFlags &= ~STARTUP_CONCURRENT_GC; - dwEffectiveStartupFlags |= dwStartupFlags; - - return pInfo->SetDefaultStartupFlags(dwEffectiveStartupFlags, wszHostConfigFile); - } - - // ------------------------------------------------------------------------------------------------ - SELECTANY HMODULE g_hShlwapi = NULL; - SELECTANY ZeroInitGlobalHMODULEHolder g_hShlwapiHolder; - - // ------------------------------------------------------------------------------------------------ - inline - HRESULT CreateIStreamFromFile( - LPCWSTR wszFilePath, - IStream **ppIStream) - { - HRESULT hr = S_OK; - *ppIStream = NULL; - - if (g_hShlwapi == NULL) - { - HMODULE hShlwapi = LEGACY_ACTIVATION_SHIM_LOAD_LIBRARY(_TEXT_ENCODE("shlwapi.dll")); - if (hShlwapi == NULL) - return HRESULT_FROM_WIN32(GetLastError()); - HMODULEHolder hShlwapiHolder(hShlwapi); - - if (LegacyActivationShim::Util::InterlockedCompareExchangePointerT( - &g_hShlwapi, hShlwapi, NULL) == NULL) - { - g_hShlwapiHolder.ClearUnsafe(); - g_hShlwapiHolder.Assign(hShlwapi); - hShlwapiHolder.SuppressRelease(); - } - } - - typedef HRESULT (__stdcall * SHCreateStreamOnFile_pfn)( - LPCWSTR wszFile, - DWORD grfMode, - IStream **ppstm); - - SHCreateStreamOnFile_pfn pCreateStreamOnFile = - reinterpret_cast(GetProcAddress(g_hShlwapi, "SHCreateStreamOnFileW")); - - if (pCreateStreamOnFile == NULL) - return HRESULT_FROM_WIN32(GetLastError()); - - //_ASSERTE(pCreateStreamOnFile != NULL); - - // Create IStream - IStream* pStream(NULL); - IfHrFailRet((*pCreateStreamOnFile)(wszFilePath, 0 /*STGM_READ*/, &pStream)); - ReleaseHolder hStream(pStream); - - // Success, prevent release and assign IStream to out parameter - *ppIStream = pStream; - hStream.SuppressRelease(); - - return S_OK; - } - }; // namespace Util -}; // namespace LegacyActivationShim - -#pragma pop_macro("UNUSED") -#pragma pop_macro("countof") -#pragma pop_macro("_TEXT_ENCODE") -#pragma pop_macro("SELECTANY") - -#endif // __LEGACYACTIVATIONSHIMUTIL_H__ - diff --git a/lib/coreclr/src/inc/loaderheap.h b/lib/coreclr/src/inc/loaderheap.h index a2dec9cc25e2..ee45b7464542 100644 --- a/lib/coreclr/src/inc/loaderheap.h +++ b/lib/coreclr/src/inc/loaderheap.h @@ -274,8 +274,8 @@ class UnlockedLoaderHeap #endif public: - typedef void EnumPageRegionsCallback (PTR_VOID pvAllocationBase, SIZE_T cbReserved); - void EnumPageRegions (EnumPageRegionsCallback *pCallback); + typedef bool EnumPageRegionsCallback (PTR_VOID pvArgs, PTR_VOID pvAllocationBase, SIZE_T cbReserved); + void EnumPageRegions (EnumPageRegionsCallback *pCallback, PTR_VOID pvArgs); #ifndef DACCESS_COMPILE protected: diff --git a/lib/coreclr/src/inc/loglf.h b/lib/coreclr/src/inc/loglf.h index e7fbd519d9a7..76a9897b534c 100644 --- a/lib/coreclr/src/inc/loglf.h +++ b/lib/coreclr/src/inc/loglf.h @@ -16,7 +16,7 @@ DEFINE_LOG_FACILITY(LF_GCALLOC ,0x00000100) DEFINE_LOG_FACILITY(LF_CORDB ,0x00000200) DEFINE_LOG_FACILITY(LF_CLASSLOADER ,0x00000400) DEFINE_LOG_FACILITY(LF_CORPROF ,0x00000800) -DEFINE_LOG_FACILITY(LF_REMOTING ,0x00001000) +DEFINE_LOG_FACILITY(LF_DIAGNOSTICS_PORT ,0x00001000) DEFINE_LOG_FACILITY(LF_DBGALLOC ,0x00002000) DEFINE_LOG_FACILITY(LF_EH ,0x00004000) DEFINE_LOG_FACILITY(LF_ENC ,0x00008000) diff --git a/lib/coreclr/src/inc/metadatatracker.h b/lib/coreclr/src/inc/metadatatracker.h index 00aa56afaeab..90db2424aff1 100644 --- a/lib/coreclr/src/inc/metadatatracker.h +++ b/lib/coreclr/src/inc/metadatatracker.h @@ -5,7 +5,7 @@ #ifndef _METADATATRACKER_H_ #define _METADATATRACKER_H_ -#if defined(FEATURE_PREJIT) && defined(FEATURE_WINDOWSPHONE) +#ifdef FEATURE_PREJIT #define METADATATRACKER_DATA 1 #if !defined(DACCESS_COMPILE) @@ -66,14 +66,12 @@ class MetaDataTracker THROWS; GC_NOTRIGGER; INJECT_FAULT(ThrowOutOfMemory()); - SO_INTOLERANT; } CONTRACTL_END; m_ModuleName = NULL; - DWORD len = (DWORD)wcslen(modName); - _ASSERTE(len + 1 != 0); // Prevent Overflow + size_t len = wcslen(modName); m_ModuleName = new wchar_t[len + 1]; NewArrayHolder moduleNameHolder(m_ModuleName); wcscpy_s((wchar_t *)m_ModuleName, len + 1, (wchar_t *)modName); @@ -98,7 +96,6 @@ class MetaDataTracker NOTHROW; GC_NOTRIGGER; FORBID_FAULT; - SO_INTOLERANT; } CONTRACTL_END; @@ -158,7 +155,6 @@ class MetaDataTracker { STATIC_CONTRACT_NOTHROW; STATIC_CONTRACT_GC_NOTRIGGER; - STATIC_CONTRACT_SO_NOT_MAINLINE; if (!Enabled()) return; @@ -185,11 +181,10 @@ class MetaDataTracker return NoteAccessWorker(address); } - __declspec(noinline) static void* NoteAccessWorker(void *address) + NOINLINE static void* NoteAccessWorker(void *address) { STATIC_CONTRACT_NOTHROW; STATIC_CONTRACT_GC_NOTRIGGER; - STATIC_CONTRACT_SO_NOT_MAINLINE; if (s_IBCLogMetaDataAccess != NULL) s_IBCLogMetaDataAccess(address); @@ -208,11 +203,10 @@ class MetaDataTracker NoteSearchWorker(result); } - __declspec(noinline) static void NoteSearchWorker(void *result) + NOINLINE static void NoteSearchWorker(void *result) { STATIC_CONTRACT_NOTHROW; STATIC_CONTRACT_GC_NOTRIGGER; - STATIC_CONTRACT_SO_NOT_MAINLINE; if (s_IBCLogMetaDataSearch != NULL && result != NULL) s_IBCLogMetaDataSearch(result); @@ -266,7 +260,6 @@ class MetaDataTracker GC_NOTRIGGER; INJECT_FAULT(ThrowOutOfMemory()); POSTCONDITION(CheckPointer(RETVAL, NULL_OK)); - SO_INTOLERANT; } CONTRACT_END; diff --git a/lib/coreclr/src/inc/metahost.idl b/lib/coreclr/src/inc/metahost.idl index 2bc7f1a3c9d1..1ed19b5ba9bd 100644 --- a/lib/coreclr/src/inc/metahost.idl +++ b/lib/coreclr/src/inc/metahost.idl @@ -37,32 +37,15 @@ import "ocidl.idl"; import "mscoree.idl"; cpp_quote("#include ") -cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") -/************************************************************************************** - ** This should be the only flat public API exposed from mscoree going forward. ** - ** The returned interface is likely to be implemented in a separate versioned DLL ** - ** (mscorhst.dll living in the versioned directory for instance). Acceptable values ** - ** for riid in v4.0 are IID_ICLRMetaHost, IID_ICLRMetaHostPolicy and ** - ** IID_ICLRDebugging. ** - **************************************************************************************/ cpp_quote("STDAPI CLRCreateInstance(REFCLSID clsid, REFIID riid, /*iid_is(riid)*/ LPVOID *ppInterface);") -// CLSID CLRStrongName : uuid(B79B0ACD-F5CD-409b-B5A5-A16244610B92) -cpp_quote("EXTERN_GUID(CLSID_CLRStrongName, 0xB79B0ACD, 0xF5CD, 0x409b, 0xB5, 0xA5, 0xA1, 0x62, 0x44, 0x61, 0x0B, 0x92);") - // IID ICLRMetaHost : uuid(D332DB9E-B9B3-4125-8207-A14884F53216) cpp_quote("EXTERN_GUID(IID_ICLRMetaHost, 0xD332DB9E, 0xB9B3, 0x4125, 0x82, 0x07, 0xA1, 0x48, 0x84, 0xF5, 0x32, 0x16);") // CLSID_CLRMetaHost : uuid(9280188D-0E8E-4867-B30C-7FA83884E8DE) cpp_quote("EXTERN_GUID(CLSID_CLRMetaHost, 0x9280188d, 0xe8e, 0x4867, 0xb3, 0xc, 0x7f, 0xa8, 0x38, 0x84, 0xe8, 0xde);") -// IID ICLRMetaHostPolicy : uuid(E2190695-77B2-492e-8E14-C4B3A7FDD593) -cpp_quote("EXTERN_GUID(IID_ICLRMetaHostPolicy, 0xE2190695, 0x77B2, 0x492e, 0x8E, 0x14, 0xC4, 0xB3, 0xA7, 0xFD, 0xD5, 0x93);") - -// CLSID_CLRMetaHostPolicy : uuid(2EBCD49A-1B47-4a61-B13A-4A03701E594B) -cpp_quote("EXTERN_GUID(CLSID_CLRMetaHostPolicy, 0x2ebcd49a, 0x1b47, 0x4a61, 0xb1, 0x3a, 0x4a, 0x3, 0x70, 0x1e, 0x59, 0x4b);") - // IID ICLRDebugging : uuid(D28F3C5A-9634-4206-A509-477552EEFB10) cpp_quote("EXTERN_GUID(IID_ICLRDebugging, 0xd28f3c5a, 0x9634, 0x4206, 0xa5, 0x9, 0x47, 0x75, 0x52, 0xee, 0xfb, 0x10);") @@ -72,40 +55,12 @@ cpp_quote("EXTERN_GUID(CLSID_CLRDebugging, 0xbacc578d, 0xfbdd, 0x48a4, 0x96, 0x9 // IID ICLRRuntimeInfo : uuid(BD39D1D2-BA2F-486a-89B0-B4B0CB466891) cpp_quote("EXTERN_GUID(IID_ICLRRuntimeInfo, 0xBD39D1D2, 0xBA2F, 0x486a, 0x89, 0xB0, 0xB4, 0xB0, 0xCB, 0x46, 0x68, 0x91);") -// IID ICLRStrongName : uuid(9FD93CCF-3280-4391-B3A9-96E1CDE77C8D) -cpp_quote("EXTERN_GUID(IID_ICLRStrongName, 0x9FD93CCF, 0x3280, 0x4391, 0xB3, 0xA9, 0x96, 0xE1, 0xCD, 0xE7, 0x7C, 0x8D);") - -// IID ICLRStrongName2 : uuid(C22ED5C5-4B59-4975-90EB-85EA55C0069B) -cpp_quote("EXTERN_GUID(IID_ICLRStrongName2, 0xC22ED5C5, 0x4B59, 0x4975, 0x90, 0xEB, 0x85, 0xEA, 0x55, 0xC0, 0x06, 0x9B);") - -// IID ICLRStrongName3 : uuid(22c7089b-bbd3-414a-b698-210f263f1fed) -cpp_quote("EXTERN_GUID(IID_ICLRStrongName3, 0x22c7089b, 0xbbd3, 0x414a, 0xb6, 0x98, 0x21, 0x0f, 0x26, 0x3f, 0x1f, 0xed);") - -// CLSID for legacy debugging interface : uuid(DF8395B5-A4BA-450b-A77C-A9A47762C520} -cpp_quote("EXTERN_GUID(CLSID_CLRDebuggingLegacy, 0xDF8395B5, 0xA4BA, 0x450b, 0xA7, 0x7C, 0xA9, 0xA4, 0x77, 0x62, 0xC5, 0x20);") - -// CLSID CLRProfiling interface : uuid{BD097ED8-733E-43fe-8ED7-A95FF9A8448C} -cpp_quote("EXTERN_GUID(CLSID_CLRProfiling, 0xbd097ed8, 0x733e, 0x43fe, 0x8e, 0xd7, 0xa9, 0x5f, 0xf9, 0xa8, 0x44, 0x8c);") - -// IID ICLRProfiling interface : uuid{B349ABE3-B56F-4689-BFCD-76BF39D888EA} -cpp_quote("EXTERN_GUID(IID_ICLRProfiling, 0xb349abe3, 0xb56f, 0x4689, 0xbf, 0xcd, 0x76, 0xbf, 0x39, 0xd8, 0x88, 0xea);") - // IID ICLRDebuggingLibraryProvider interface : uuid{3151C08D-4D09-4f9b-8838-2880BF18FE51} cpp_quote("EXTERN_GUID(IID_ICLRDebuggingLibraryProvider, 0x3151c08d, 0x4d09, 0x4f9b, 0x88, 0x38, 0x28, 0x80, 0xbf, 0x18, 0xfe, 0x51);") // IID ICLRDebuggingLibraryProvider2 interface : uuid{E04E2FF1-DCFD-45D5-BCD1-16FFF2FAF7BA} cpp_quote("EXTERN_GUID(IID_ICLRDebuggingLibraryProvider2, 0xE04E2FF1, 0xDCFD, 0x45D5, 0xBC, 0xD1, 0x16, 0xFF, 0xF2, 0xFA, 0xF7, 0xBA);") -typedef HRESULT(__stdcall * CLRCreateInstanceFnPtr)( - REFCLSID clsid, - REFIID riid, - LPVOID *ppInterface); - -typedef HRESULT(__stdcall * CreateInterfaceFnPtr)( - REFCLSID clsid, - REFIID riid, - LPVOID *ppInterface); - // For use in ICLRMetaHost::RequestRuntimeLoadedNotification interface ICLRRuntimeInfo; @@ -214,146 +169,6 @@ interface ICLRMetaHost : IUnknown [in] INT32 iExitCode); } // interface ICLRMetaHost -typedef enum -{ - /********************************************************************************** - ** Functions will not take into account runtimes already loaded into the ** - ** process (thus guaranteed to give the same answer regardless of load order). ** - **********************************************************************************/ - METAHOST_POLICY_HIGHCOMPAT = 0x00000000, - - /********************************************************************************** - ** 0x00000000 - 0x00000004 reserved for future policies. ** - **********************************************************************************/ - - /********************************************************************************** - ** Applies upgrade policy when an exact match is not found. ** - **********************************************************************************/ - METAHOST_POLICY_APPLY_UPGRADE_POLICY = 0x00000008, - - /********************************************************************************** - ** Binds as if the provided information were being use in a new process. This ** - ** allows a host to determine what runtime an EXE will bind to when launched. ** - **********************************************************************************/ - METAHOST_POLICY_EMULATE_EXE_LAUNCH = 0x00000010, - - /********************************************************************************** - ** Produces an error dialog if GetRequestedRuntime is unable to find a runtime ** - ** compatible with the input parameters. This error dialog can take the form ** - ** of a dialog box that takes a user to an fwlink, or as a Windows feature ** - ** dialog asking if the user would like to enable the appropriate feature (when ** - ** available, this dialog is preferred over the fwlink dialog). ** - **********************************************************************************/ - METAHOST_POLICY_SHOW_ERROR_DIALOG = 0x00000020, - - /********************************************************************************** - ** By default, GetRequestedRuntime will not fall back to the process image path ** - ** (typically the EXE that was used to launch the process) when determining the ** - ** runtime to bind to. Specify this flag to have GetRequestedRuntime implicitly ** - ** use the process image (and any corresponding configuration file) as ** - ** additional input to the binding process. ** - **********************************************************************************/ - METAHOST_POLICY_USE_PROCESS_IMAGE_PATH = 0x00000040, - - /********************************************************************************** - ** By default, we will not check whether the appropriate SKU is installed ** - ** unless SKU is specified in the config file entry. ** - ** Setting this flag forces the check when no information is available in the ** - ** config file, allowing applications without config files to fail gracefully ** - ** on smaller SKUs than the default install of .NET ** - **********************************************************************************/ - METAHOST_POLICY_ENSURE_SKU_SUPPORTED = 0x00000080, - - /********************************************************************************** - ** By default, we ignore METAHOST_POLICY_SHOW_ERROR_DIALOG if ** - ** SEM_FAILCRITICALERRORS is set ** - ** This flag tell us that a silent failure would be so undesirable that ** - ** the METAHOST_POLICY_SHOW_ERROR_DIALOG should be honored, even if for some ** - ** reason (e.g. inheritance from another process) SEM_FAILCRITICALERRORS is set ** - **********************************************************************************/ - METAHOST_POLICY_IGNORE_ERROR_MODE = 0x00001000, - -} -METAHOST_POLICY_FLAGS; - -/************************************************************************************** - ** This enum describes the possible flags returned in GetRequestedRuntinme's ** - ** pdwConfigFlags out parameter. - **************************************************************************************/ -typedef enum -{ - /********************************************************************************** - ** If a config file is used during GetRequestedRuntime's binding process, these ** - ** values indicate whether or not the startup tag has the ** - ** useLegacyV2RuntimeActivationPolicy attribute set, and if so to what value. ** - **********************************************************************************/ - - // Indicates presence and value of useLegacyV2RuntimeActivationPolicy attr - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_UNSET = 0x00000000, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_TRUE = 0x00000001, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_FALSE = 0x00000002, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK = 0x00000003, -} -METAHOST_CONFIG_FLAGS; - -/************************************************************************************** - ** ICLRMetaHostPolicy ** - ** Activated using mscoree!CLRCreateInstance. Implements a policy for determining ** - ** a runtime based on various inputs (metadata, config stream, ...). ** - **************************************************************************************/ -[ - uuid(E2190695-77B2-492e-8E14-C4B3A7FDD593), - version(1.0), - helpstring("CLR meta hosting policy"), - local -] -interface ICLRMetaHostPolicy : IUnknown -{ - /********************************************************************************** - ** Returns requested runtime version and runtime (not necessarily of that ** - ** version) based on a managed binary, version, and config file. ** - ** The return value is S_OK if a compatible runtime was found and S_FALSE if ** - ** not. *ppRuntime will be NULL in the latter case. ** - ** Supersedes: GetRequestedRuntimeInfo, GetRequestedRuntimeVersion, ** - ** CorBindToRuntimeHost, CorBindToRuntimeByCfg, ** - ** GetCORRequiredVersion ** - **********************************************************************************/ - HRESULT GetRequestedRuntime( - [in] METAHOST_POLICY_FLAGS dwPolicyFlags, - [in] LPCWSTR pwzBinary, // optional - [in] IStream *pCfgStream, // optional - [in, out, size_is(*pcchVersion), annotation("_Inout_updates_all_opt_(*pcchVersion)")] - LPWSTR pwzVersion, // optional - [in, out] DWORD *pcchVersion, - [out, size_is(*pcchImageVersion), annotation("_Out_writes_all_opt_(*pcchImageVersion)")] - LPWSTR pwzImageVersion, // image version to be used by compilers - [in, out] DWORD *pcchImageVersion, - [out] DWORD *pdwConfigFlags, - [in] REFIID riid, // IID_ICLRRuntimeInfo - [out, iid_is(riid), retval] LPVOID *ppRuntime); -} // interface ICLRMetaHostPolicy - -/*************************************************************************************** - ** ICLRProfiling ** - ** Activated using mscoree!CLRCreateInstance. Export AttachProfiler API to profilers ** - ***************************************************************************************/ -[ - uuid(B349ABE3-B56F-4689-BFCD-76BF39D888EA), - version(1.0), - helpstring("CLR profiling interface for MetaHost interface"), - local -] -interface ICLRProfiling : IUnknown -{ - HRESULT AttachProfiler( - [in] DWORD dwProfileeProcessID, - [in] DWORD dwMillisecondsMax, // optional - [in] const CLSID * pClsidProfiler, - [in] LPCWSTR wszProfilerPath, // optional - [in, size_is(cbClientData)] void * pvClientData, // optional - [in] UINT cbClientData); // optional -} - /************************************************************************************* ** This structure defines the version of a CLR for debugging purposes. ** ** The wStructVersion field allows for future revisions to this structure to be ** @@ -673,7 +488,6 @@ interface ICLRRuntimeInfo : IUnknown ** CLSID_TypeNameFactory IID_ITypeNameFactory ** ** CLSID_CLRStrongName IID_ICLRStrongName ** ** CLSID_CLRDebuggingLegacy IID_ICorDebug ** - ** CLSID_CLRProfiling IID_ICLRProfiling ** ** ** ** Supersedes: CorBindTo* and others ** **********************************************************************************/ @@ -732,413 +546,3 @@ interface ICLRRuntimeInfo : IUnknown [out] BOOL *pbStarted, [out] DWORD *pdwStartupFlags); }; - -/************************************************************************************** - ** ICLRStrongName ** - ** These are the strong name APIs exposed by mscoree refactored into an interface. ** - ** The only change is the omission of StrongNameErrorInfo and having all methods ** - ** return the COM standard HRESULT. TODO (low-pri): ** - ** ideas what could be done here - we have an opportunity to make breaking changes, ** - ** cleanup etc. - **************************************************************************************/ -[ - uuid(9FD93CCF-3280-4391-B3A9-96E1CDE77C8D), - version(1.0), - helpstring("CLR strong name interface"), - local -] -interface ICLRStrongName : IUnknown -{ - /********************************************************************************** - ** Gets a hash of the specified assembly file, using the specified hash ** - ** algorithm. ** - ** Supersedes: GetHashFromAssemblyFile ** - **********************************************************************************/ - HRESULT GetHashFromAssemblyFile( - [in] LPCSTR pszFilePath, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Gets a hash of the specified assembly file, using the specified hash ** - ** algorithm (Unicode version). ** - ** Supersedes: GetHashFromAssemblyFileW ** - **********************************************************************************/ - HRESULT GetHashFromAssemblyFileW( - [in] LPCWSTR pwzFilePath, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Gets a hash of the assembly at the specified memory address, using the ** - ** specified hash algorithm. ** - ** Supersedes: GetHashFromBlob ** - **********************************************************************************/ - HRESULT GetHashFromBlob( - [in] BYTE *pbBlob, - [in] DWORD cchBlob, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Generates a hash over the contents of the specified file. ** - ** Supersedes: GetHashFromFile ** - **********************************************************************************/ - HRESULT GetHashFromFile( - [in] LPCSTR pszFilePath, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Generates a hash over the contents of the specified file (Unicode version). ** - ** Supersedes: GetHashFromFileW ** - **********************************************************************************/ - HRESULT GetHashFromFileW( - [in] LPCWSTR pwzFilePath, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Generates a hash over the contents of the file with the specified file ** - ** handle, using the specified hash algorithm. ** - ** Supersedes: GetHashFromHandle ** - **********************************************************************************/ - HRESULT GetHashFromHandle( - [in] HANDLE hFile, - [in, out] unsigned int *piHashAlg, - [out, size_is(cchHash), length_is(*pchHash)] BYTE *pbHash, - [in] DWORD cchHash, - [out] DWORD *pchHash); - - /********************************************************************************** - ** Determines whether two assemblies differ only by their strong name ** - ** signatures. ** - ** Supersedes: StrongNameCompareAssemblies ** - **********************************************************************************/ - HRESULT StrongNameCompareAssemblies( - [in] LPCWSTR pwzAssembly1, - [in] LPCWSTR pwzAssembly2, - [out, retval] DWORD *pdwResult); - - /********************************************************************************** - ** Frees memory that was allocated with a previous call to a strong name ** - ** function such as StrongNameGetPublicKey, StrongNameTokenFromPublicKey, or ** - ** StrongNameSignatureGeneration. ** - ** Supersedes: StrongNameFreeBuffer ** - **********************************************************************************/ - HRESULT StrongNameFreeBuffer( - [in] BYTE *pbMemory); - - /********************************************************************************** - ** Fills the specified buffer with the binary representation of the executable. ** - ** Supersedes: StrongNameGetBlob ** - **********************************************************************************/ - HRESULT StrongNameGetBlob( - [in] LPCWSTR pwzFilePath, - [in, out, size_is(*pcbBlob), length_is(*pcbBlob)] BYTE *pbBlob, - [in, out] DWORD *pcbBlob); - - /********************************************************************************** - ** Gets a binary representation of the assembly image at the specified memory ** - ** address. ** - ** Supersedes: StrongNameGetBlobFromImage ** - **********************************************************************************/ - HRESULT StrongNameGetBlobFromImage( - [in, size_is(dwLength)] BYTE *pbBase, - [in] DWORD dwLength, - [out, size_is(*pcbBlob), length_is(*pcbBlob)] BYTE *pbBlob, - [in, out] DWORD *pcbBlob); - - /********************************************************************************** - ** Gets the public key from a private/public key pair. ** - ** Supersedes: StrongNameGetPublicKey ** - **********************************************************************************/ - HRESULT StrongNameGetPublicKey( - [in] LPCWSTR pwzKeyContainer, - [in] BYTE *pbKeyBlob, - [in] ULONG cbKeyBlob, - [out] BYTE **ppbPublicKeyBlob, - [out] ULONG *pcbPublicKeyBlob); - - /********************************************************************************** - ** Gets the buffer size required for a hash, using the specified hash ** - ** algorithm. ** - ** Supersedes: StrongNameHashSize ** - **********************************************************************************/ - HRESULT StrongNameHashSize( - [in] ULONG ulHashAlg, - [out, retval] DWORD *pcbSize); - - /********************************************************************************** - ** Deletes the specified key container. ** - ** Supersedes: StrongNameKeyDelete ** - **********************************************************************************/ - HRESULT StrongNameKeyDelete( - [in] LPCWSTR pwzKeyContainer); - - /********************************************************************************** - ** Creates a new public/private key pair for strong name use. ** - ** Supersedes: StrongNameKeyGen ** - **********************************************************************************/ - HRESULT StrongNameKeyGen( - [in] LPCWSTR pwzKeyContainer, - [in] DWORD dwFlags, - [out] BYTE **ppbKeyBlob, - [out] ULONG *pcbKeyBlob); - - /********************************************************************************** - ** Generates a new public/private key pair with the specified key size, for ** - ** strong name use. ** - ** Supersedes: StrongNameKeyGenEx ** - **********************************************************************************/ - HRESULT StrongNameKeyGenEx( - [in] LPCWSTR pwzKeyContainer, - [in] DWORD dwFlags, - [in] DWORD dwKeySize, - [out] BYTE **ppbKeyBlob, - [out] ULONG *pcbKeyBlob); - - /********************************************************************************** - ** Imports a public/private key pair into a container. ** - ** Supersedes: StrongNameKeyInstall ** - **********************************************************************************/ - HRESULT StrongNameKeyInstall( - [in] LPCWSTR pwzKeyContainer, - [in] BYTE *pbKeyBlob, - [in] ULONG cbKeyBlob); - - /********************************************************************************** - ** Generates a strong name signature for the specified assembly. ** - ** Supersedes: StrongNameSignatureGeneration ** - **********************************************************************************/ - HRESULT StrongNameSignatureGeneration( - [in] LPCWSTR pwzFilePath, - [in] LPCWSTR pwzKeyContainer, - [in] BYTE *pbKeyBlob, - [in] ULONG cbKeyBlob, - [out] BYTE **ppbSignatureBlob, - [out] ULONG *pcbSignatureBlob); - - /********************************************************************************** - ** Generates a strong name signature for the specified assembly, according to ** - ** the specified flags. ** - ** Supersedes: StrongNameSignatureGenerationEx ** - **********************************************************************************/ - HRESULT StrongNameSignatureGenerationEx( - [in] LPCWSTR wszFilePath, - [in] LPCWSTR wszKeyContainer, - [in] BYTE *pbKeyBlob, - [in] ULONG cbKeyBlob, - [out] BYTE **ppbSignatureBlob, - [out] ULONG *pcbSignatureBlob, - [in] DWORD dwFlags); - - /********************************************************************************** - ** Returns the size of the strong name signature. ** - ** Supersedes: StrongNameSignatureSize ** - **********************************************************************************/ - HRESULT StrongNameSignatureSize( - [in] BYTE *pbPublicKeyBlob, - [in] ULONG cbPublicKeyBlob, - [in] DWORD *pcbSize); - - /********************************************************************************** - ** Gets a value indicating whether the assembly manifest at the supplied path ** - ** contains a strong name signature, which is verified according to the ** - ** specified flags. ** - ** Supersedes: StrongNameSignatureVerification ** - **********************************************************************************/ - HRESULT StrongNameSignatureVerification( - [in] LPCWSTR pwzFilePath, - [in] DWORD dwInFlags, - [out, retval] DWORD *pdwOutFlags); - - /********************************************************************************** - ** Gets a value indicating whether the assembly manifest at the supplied path ** - ** contains a strong name signature. ** - ** Supersedes: StrongNameSignatureVerificationEx ** - **********************************************************************************/ - HRESULT StrongNameSignatureVerificationEx( - [in] LPCWSTR pwzFilePath, - [in] BOOLEAN fForceVerification, - [out, retval] BOOLEAN *pfWasVerified); - - /********************************************************************************** - ** Verifies that an assembly that has already been mapped to memory is valid ** - ** for the associated public key. ** - ** Supersedes: StrongNameSignatureVerificationFromImage ** - **********************************************************************************/ - HRESULT StrongNameSignatureVerificationFromImage( - [in] BYTE *pbBase, - [in] DWORD dwLength, - [in] DWORD dwInFlags, - [out, retval] DWORD *pdwOutFlags); - - /********************************************************************************** - ** Creates a strong name token from the specified assembly file. ** - ** Supersedes: StrongNameTokenFromAssembly ** - **********************************************************************************/ - HRESULT StrongNameTokenFromAssembly( - [in] LPCWSTR pwzFilePath, - [out] BYTE **ppbStrongNameToken, - [out] ULONG *pcbStrongNameToken); - - /********************************************************************************** - ** Creates a strong name token from the specified assembly file, and returns ** - ** the public key that the token represents. ** - ** Supersedes: StrongNameTokenFromAssemblyEx ** - **********************************************************************************/ - HRESULT StrongNameTokenFromAssemblyEx( - [in] LPCWSTR pwzFilePath, - [out] BYTE **ppbStrongNameToken, - [out] ULONG *pcbStrongNameToken, - [out] BYTE **ppbPublicKeyBlob, - [out] ULONG *pcbPublicKeyBlob); - /********************************************************************************** - ** Gets a token representing a public key. A strong name token is the shortened ** - ** form of a public key. ** - ** Supersedes: StrongNameTokenFromPublicKey ** - **********************************************************************************/ - HRESULT StrongNameTokenFromPublicKey( - [in] BYTE *pbPublicKeyBlob, - [in] ULONG cbPublicKeyBlob, - [out] BYTE **ppbStrongNameToken, - [out] ULONG *pcbStrongNameToken); -}; // interface ICLRStrongName - -/************************************************************************************** - ** ICLRStrongName2 ** - ** Strongname Api's ** - **************************************************************************************/ -[ - uuid(C22ED5C5-4B59-4975-90EB-85EA55C0069B), - version(1.0), - helpstring("CLR strong name interface 2"), - local -] -interface ICLRStrongName2 : IUnknown -{ - /********************************************************************************** - ** Gets the public key from a private/public key pair, specifying a hash ** - ** algorithm and a signature algorithm. ** - **********************************************************************************/ - HRESULT StrongNameGetPublicKeyEx( - [in] LPCWSTR pwzKeyContainer, - [in] BYTE *pbKeyBlob, - [in] ULONG cbKeyBlob, - [out] BYTE **ppbPublicKeyBlob, - [out] ULONG *pcbPublicKeyBlob, - [in] ULONG uHashAlgId, // specify algorithm, or set to 0 for default - [in] ULONG uReserved); // reserved for future use, always set to 0 - - /********************************************************************************** - ** Verify the signature of a strongly named assembly, providing a mapping from ** - ** the ECMA key to a real key ** - **********************************************************************************/ - HRESULT StrongNameSignatureVerificationEx2( - [in] LPCWSTR wszFilePath, - [in] BOOLEAN fForceVerification, - [in] BYTE *pbEcmaPublicKey, - [in] DWORD cbEcmaPublicKey, - [out] BOOLEAN *pfWasVerified); -}; // interface ICLRStrongName2 - -/************************************************************************************* -** ICLRStrongName3 ** -** StrongName digest signing APIs ** -**************************************************************************************/ -[ - uuid(22c7089b-bbd3-414a-b698-210f263f1fed), - version(1.0), - helpstring("CLR strong name digest signing interface"), - local -] -interface ICLRStrongName3 : IUnknown -{ - // Generate the digest of an input assembly, which can be signed with StrongNameDigestSign - HRESULT StrongNameDigestGenerate( - [in] LPCWSTR wszFilePath, - [out] BYTE** ppbDigestBlob, - [out] ULONG* pcbDigestBlob, - [in] DWORD dwFlags); - - // Sign an the digest of an assembly calculated by StrongNameDigestGenerate - HRESULT StrongNameDigestSign( - [in] LPCWSTR wszKeyContainer, - [in, size_is(cbKeyBlob)] BYTE* pbKeyBlob, - [in] ULONG cbKeyBlob, - [in, size_is(cbDigestBlob)] BYTE* pbDigestBlob, - [in] ULONG cbDigestBlob, - [in] DWORD hashAlgId, - [out] BYTE** ppbSignatureBlob, - [out] ULONG* pcbSignatureBlob, - [in] DWORD dwFlags); - - // Embed a digest signature generated with StrongNameDigestSign into an assembly - HRESULT StrongNameDigestEmbed( - [in] LPCWSTR wszFilePath, - [in, size_is(cbSignatureBlob)] BYTE* pbSignatureBlob, - [in] ULONG cbSignatureBlob); -}; - -[ - uuid(5288DA6A-A8D3-43a1-8365-37DB0E7D5943), - version(1.0), -] -library CLRMetaHost -{ - interface ICLRMetaHost; - interface ICLRMetaHostPolicy; - interface ICLRProfiling; - interface ICLRDebuggingLibraryProvider; - interface ICLRDebugging; - interface ICLRRuntimeInfo; - interface ICLRStrongName; - - // Scenario: EXE activation - // 1. ICLRMetaHostPolicy::GetRequestedRuntime - // 2. ICLRRuntimeInfo::GetProcAddress("ExeMain") - // 3. ExeMain() - TODO: Add a hosting API to execute an EXE? - - // Scenario: COM activation - // 1. - // 2. ICLRMetaHostPolicy::GetRequestedRuntime - // 3. ICLRRuntimeInfo::GetInterface(IID_ICLRRuntimeHost) - // 4. ICLRRuntimeHost::Start - // 5. ICLRRuntimeInfo::GetProcAddress("ClrCreateManagedInstance") - // 6. pClrCreateManagedInstance() - - // Scenario: Hosting with custom policy - // 1. ICLRMetaHost::GetFileVersion - // 2. ICLRMetaHost::EnumerateInstalledRuntimes - // 3. ICLRRuntimeInfo::IsLoaded/IsStarted - // ... - - // Scenario: Debugger attach for v1.0 to v4 using v2 lookalike interface - // ICLRMetaHost::EnumerateLoadedRuntimes - // ICLRRuntimeInfo::GetInterface(CLSID_CLRDebuggingLegacy, IID_ICorDebug) - - // Scenario: Profiler attach for v4 - // ICLRMetaHost::EnumerateLoadedRuntimes - // ICLRRuntimeInfo::GetInterface(CLSID_CLRProfiling, IID_ICLRProfiling) - - // Scenario: An installer needs to modify configuration of supported runtimes - // 1. ICLRMetaHost::EnumerateInstalledRuntimes - // 2. ICLRRuntimeInfo::GetVersionString - // 3. - // 4. ICLRRuntimeInfo::GetRuntimeDirectory - // 5. - -}; // library CLRMetaHost - -cpp_quote("#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)") diff --git a/lib/coreclr/src/inc/mscoreepriv.h b/lib/coreclr/src/inc/mscoreepriv.h deleted file mode 100644 index df0761201080..000000000000 --- a/lib/coreclr/src/inc/mscoreepriv.h +++ /dev/null @@ -1,21 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// - -#ifndef __MSCOREEPRIV_H__ -#define __MSCOREEPRIV_H__ - - -typedef enum -{ - RUNTIME_INFO_CONSIDER_POST_2_0 = 0x80, // consider v4.0+ versions - RUNTIME_INFO_EMULATE_EXE_LAUNCH = 0x100, // Binds as if the provided information were being use in a new process - RUNTIME_INFO_APPEND_FORCE_PERFORMANCE_COUNTER_UNIQUE_SHARED_MEMORY_READS_SETTING_TO_VERSION // appends either !0 (false), !1 (true) or !2 (unset) depending on the value of forcePerformanceCounterUniqueSharedMemoryReads in the runtime section of the config - = 0x200, -} RUNTIME_INFO_FLAGS_FOR_SHARED_COMPONENTS; - - - -#endif //__MSCOREEPRIV_H__ - diff --git a/lib/coreclr/src/inc/mscorsvc.idl b/lib/coreclr/src/inc/mscorsvc.idl index 48eada4f6fc2..33ded4247f7f 100644 --- a/lib/coreclr/src/inc/mscorsvc.idl +++ b/lib/coreclr/src/inc/mscorsvc.idl @@ -2,7 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. /* -------------------------------------------------------------------------- * - * Microsoft .Net Framework Service + * Microsoft .NET Framework Service * -------------------------------------------------------------------------- */ #ifndef IN_MSCOREE diff --git a/lib/coreclr/src/inc/ostype.h b/lib/coreclr/src/inc/ostype.h index f17afb1d6f0c..b64927c6082e 100644 --- a/lib/coreclr/src/inc/ostype.h +++ b/lib/coreclr/src/inc/ostype.h @@ -78,7 +78,6 @@ inline BOOL WinRTSupported() STATIC_CONTRACT_NOTHROW; STATIC_CONTRACT_GC_NOTRIGGER; STATIC_CONTRACT_CANNOT_TAKE_LOCK; - STATIC_CONTRACT_SO_TOLERANT; #ifdef CROSSGEN_COMPILE return TRUE; diff --git a/lib/coreclr/src/inc/outstring.h b/lib/coreclr/src/inc/outstring.h index 5cf0236350c4..167ef9ad151a 100644 --- a/lib/coreclr/src/inc/outstring.h +++ b/lib/coreclr/src/inc/outstring.h @@ -36,7 +36,7 @@ class OutString { end = &start[initialAlloc]; } - ~OutString() { delete start; } + ~OutString() { delete [] start; } // shortcut for printing decimal OutString& operator<<(int i) { return(dec(i)); } diff --git a/lib/coreclr/src/inc/palclr.h b/lib/coreclr/src/inc/palclr.h index 9b78578732d2..3b42ac5daeed 100644 --- a/lib/coreclr/src/inc/palclr.h +++ b/lib/coreclr/src/inc/palclr.h @@ -31,6 +31,30 @@ #define _DEBUG_IMPL 1 #endif +#if __GNUC__ +#ifndef __cdecl +#define __cdecl __attribute__((__cdecl__)) +#endif +#endif + +#ifndef NOTHROW_DECL +#ifdef _MSC_VER +#define NOTHROW_DECL __declspec(nothrow) +#else +#define NOTHROW_DECL __attribute__((nothrow)) +#endif // !_MSC_VER +#endif // !NOTHROW_DECL + +#ifndef NOINLINE +#ifdef _MSC_VER +#define NOINLINE __declspec(noinline) +#else +#define NOINLINE __attribute__((noinline)) +#endif // !_MSC_VER +#endif // !NOINLINE + +#define ANALYZER_NORETURN + // // CPP_ASSERT() can be used within a class definition, to perform a // compile-time assertion involving private names within the class. @@ -141,31 +165,17 @@ #define IMAGE_IMPORT_DESC_FIELD(img, f) ((img).f) #endif -//Remove these "unanonymous" unions from newer builds for now. Confirm that they were never needed when we -//bring back Rotor. #define IMAGE_RDE_ID(img) ((img)->Id) -#ifndef IMAGE_RDE_ID -#define IMAGE_RDE_ID(img) ((img)->Id) -#endif #define IMAGE_RDE_NAME(img) ((img)->Name) -#ifndef IMAGE_RDE_NAME -#define IMAGE_RDE_NAME(img) ((img)->Name) -#endif #define IMAGE_RDE_OFFSET(img) ((img)->OffsetToData) -#ifndef IMAGE_RDE_OFFSET -#define IMAGE_RDE_OFFSET(img) ((img)->OffsetToData) -#endif #ifndef IMAGE_RDE_NAME_FIELD #define IMAGE_RDE_NAME_FIELD(img, f) ((img)->f) #endif #define IMAGE_RDE_OFFSET_FIELD(img, f) ((img)->f) -#ifndef IMAGE_RDE_OFFSET_FIELD -#define IMAGE_RDE_OFFSET_FIELD(img, f) ((img)->f) -#endif #ifndef IMAGE_FE64_FIELD #define IMAGE_FE64_FIELD(img, f) ((img).f) @@ -185,7 +195,7 @@ // integer constants. 64-bit integer constants should be wrapped in the // declarations listed here. // -// Each of the #defines here is wrapped to avoid conflicts with rotor_pal.h. +// Each of the #defines here is wrapped to avoid conflicts with pal.h. #if defined(_MSC_VER) @@ -488,29 +498,30 @@ #if defined(SOURCE_FORMATTING) #define SELECTANY extern #else +#if defined(__GNUC__) +#define SELECTANY extern __attribute__((weak)) +#else #define SELECTANY extern __declspec(selectany) #endif +#endif #if defined(SOURCE_FORMATTING) #define __annotation(x) #endif -#if defined(_DEBUG_IMPL) && !defined(JIT_BUILD) && !defined(JIT64_BUILD) && !defined(CROSS_COMPILE) && !defined(_TARGET_ARM_) // @ARMTODO: no contracts for speed +#if defined(_DEBUG_IMPL) && !defined(JIT_BUILD) && !defined(JIT64_BUILD) && !defined(CROSS_COMPILE) && !defined(DISABLE_CONTRACTS) #define PAL_TRY_HANDLER_DBG_BEGIN \ BOOL ___oldOkayToThrowValue = FALSE; \ - SO_INFRASTRUCTURE_CODE(BOOL ___oldSOTolerantState = FALSE;) \ ClrDebugState *___pState = ::GetClrDebugState(); \ __try \ { \ ___oldOkayToThrowValue = ___pState->IsOkToThrow(); \ - SO_INFRASTRUCTURE_CODE(___oldSOTolerantState = ___pState->IsSOTolerant();) \ ___pState->SetOkToThrow(); \ PAL_ENTER_THROWS_REGION; // Special version that avoids touching the debug state after doing work in a DllMain for process or thread detach. #define PAL_TRY_HANDLER_DBG_BEGIN_DLLMAIN(_reason) \ BOOL ___oldOkayToThrowValue = FALSE; \ - SO_INFRASTRUCTURE_CODE(BOOL ___oldSOTolerantState = FALSE;) \ ClrDebugState *___pState = NULL; \ if (_reason != DLL_PROCESS_ATTACH) \ ___pState = CheckClrDebugState(); \ @@ -519,7 +530,6 @@ if (___pState) \ { \ ___oldOkayToThrowValue = ___pState->IsOkToThrow(); \ - SO_INFRASTRUCTURE_CODE(___oldSOTolerantState = ___pState->IsSOTolerant();) \ ___pState->SetOkToThrow(); \ } \ if ((_reason == DLL_PROCESS_DETACH) || (_reason == DLL_THREAD_DETACH)) \ @@ -537,16 +547,11 @@ { \ _ASSERTE(___pState == CheckClrDebugState()); \ ___pState->SetOkToThrow( ___oldOkayToThrowValue ); \ - SO_INFRASTRUCTURE_CODE(___pState->SetSOTolerance( ___oldSOTolerantState );) \ } \ } -#define PAL_ENDTRY_NAKED_DBG \ - if (__exHandled) \ - { \ - RESTORE_SO_TOLERANCE_STATE; \ - } \ - +#define PAL_ENDTRY_NAKED_DBG + #else #define PAL_TRY_HANDLER_DBG_BEGIN ANNOTATION_TRY_BEGIN; #define PAL_TRY_HANDLER_DBG_BEGIN_DLLMAIN(_reason) ANNOTATION_TRY_BEGIN; diff --git a/lib/coreclr/src/inc/palclr_win.h b/lib/coreclr/src/inc/palclr_win.h index 372f467cbd84..50505869559b 100644 --- a/lib/coreclr/src/inc/palclr_win.h +++ b/lib/coreclr/src/inc/palclr_win.h @@ -88,12 +88,10 @@ #if defined(_DEBUG_IMPL) && !defined(JIT_BUILD) && !defined(JIT64_BUILD) && !defined(_ARM_) // @ARMTODO #define WIN_PAL_TRY_HANDLER_DBG_BEGIN \ BOOL ___oldOkayToThrowValue = FALSE; \ - BOOL ___oldSOTolerantState = FALSE; \ ClrDebugState *___pState = GetClrDebugState(); \ __try \ { \ ___oldOkayToThrowValue = ___pState->IsOkToThrow(); \ - ___oldSOTolerantState = ___pState->IsSOTolerant(); \ ___pState->SetOkToThrow(TRUE); \ ANNOTATION_TRY_BEGIN; @@ -107,7 +105,6 @@ if (___pState) \ { \ ___oldOkayToThrowValue = ___pState->IsOkToThrow(); \ - ___oldSOTolerantState = ___pState->IsSOTolerant(); \ ___pState->SetOkToThrow(TRUE); \ } \ if ((_reason == DLL_PROCESS_DETACH) || (_reason == DLL_THREAD_DETACH)) \ @@ -129,12 +126,8 @@ } \ } -#define WIN_PAL_ENDTRY_NAKED_DBG \ - if (__exHandled) \ - { \ - RESTORE_SO_TOLERANCE_STATE; \ - } \ - +#define WIN_PAL_ENDTRY_NAKED_DBG + #else #define WIN_PAL_TRY_HANDLER_DBG_BEGIN ANNOTATION_TRY_BEGIN; #define WIN_PAL_TRY_HANDLER_DBG_BEGIN_DLLMAIN(_reason) ANNOTATION_TRY_BEGIN; @@ -142,4 +135,10 @@ #define WIN_PAL_ENDTRY_NAKED_DBG #endif // defined(ENABLE_CONTRACTS_IMPL) && !defined(JIT64_BUILD) +#if !defined (FEATURE_PAL) +// Native system libray handle. +// In Windows, NATIVE_LIBRARY_HANDLE is the same as HMODULE. +typedef HMODULE NATIVE_LIBRARY_HANDLE; +#endif // !FEATURE_PAL + #endif // __PALCLR_WIN_H__ diff --git a/lib/coreclr/src/inc/pedecoder.h b/lib/coreclr/src/inc/pedecoder.h index 8163ffff3501..5dff3354274e 100644 --- a/lib/coreclr/src/inc/pedecoder.h +++ b/lib/coreclr/src/inc/pedecoder.h @@ -38,17 +38,11 @@ #include "cor.h" #include "corhdr.h" -#ifdef FEATURE_PREJIT #include "corcompile.h" -#else // FEATURE_PREJIT -typedef DPTR(struct COR_ILMETHOD) PTR_COR_ILMETHOD; -struct CORCOMPILE_HEADER { int dummy_field; }; -typedef DPTR(struct CORCOMPILE_HEADER) PTR_CORCOMPILE_HEADER; -#define CORCOMPILE_IS_POINTER_TAGGED(fixup) (false) -#endif // FEATURE_PREJIT #include "readytorun.h" typedef DPTR(struct READYTORUN_HEADER) PTR_READYTORUN_HEADER; +typedef DPTR(struct READYTORUN_SECTION) PTR_READYTORUN_SECTION; typedef DPTR(IMAGE_COR20_HEADER) PTR_IMAGE_COR20_HEADER; @@ -112,6 +106,10 @@ inline CHECK CheckOverflow(RVA value1, COUNT_T value2) typedef DPTR(class PEDecoder) PTR_PEDecoder; +typedef bool (*PEDecoder_ResourceTypesCallbackFunction)(LPCWSTR lpType, void* context); +typedef bool (*PEDecoder_ResourceNamesCallbackFunction)(LPCWSTR lpName, LPCWSTR lpType, void* context); +typedef bool (*PEDecoder_ResourceCallbackFunction)(LPCWSTR lpName, LPCWSTR lpType, DWORD langid, BYTE* data, COUNT_T cbData, void* context); + class PEDecoder { public: @@ -257,10 +255,12 @@ class PEDecoder PTR_VOID GetTlsRange(COUNT_T *pSize = NULL) const; UINT32 GetTlsIndex() const; -#ifndef FEATURE_PAL // Win32 resources void *GetWin32Resource(LPCWSTR lpName, LPCWSTR lpType, COUNT_T *pSize = NULL) const; -#endif // FEATURE_PAL + bool EnumerateWin32ResourceTypes(PEDecoder_ResourceTypesCallbackFunction callback, void* context) const; + bool EnumerateWin32ResourceNames(LPCWSTR lpType, PEDecoder_ResourceNamesCallbackFunction callback, void* context) const; + bool EnumerateWin32Resources(LPCWSTR lpName, LPCWSTR lpType, PEDecoder_ResourceCallbackFunction callback, void* context) const; + public: // COR header fields @@ -302,6 +302,8 @@ class PEDecoder // Debug directory access, returns NULL if no such entry PTR_IMAGE_DEBUG_DIRECTORY GetDebugDirectoryEntry(UINT index) const; + PTR_CVOID GetNativeManifestMetadata(COUNT_T* pSize = NULL) const; + #ifdef FEATURE_PREJIT CHECK CheckNativeHeaderVersion() const; @@ -319,7 +321,6 @@ class PEDecoder PCODE GetNativeColdCode(COUNT_T * pSize = NULL) const; CORCOMPILE_METHOD_PROFILE_LIST *GetNativeProfileDataList(COUNT_T *pSize = NULL) const; - PTR_CVOID GetNativeManifestMetadata(COUNT_T *pSize = NULL) const; const void *GetNativePreferredBase() const; BOOL GetNativeILHasSecurityDirectory() const; BOOL GetNativeILIsIbcOptimized() const; @@ -329,10 +330,6 @@ class PEDecoder void GetNativeILPEKindAndMachine(DWORD* pdwKind, DWORD* pdwMachine) const; CORCOMPILE_DEPENDENCY * GetNativeDependencies(COUNT_T *pCount = NULL) const; - COUNT_T GetNativeImportTableCount() const; - CORCOMPILE_IMPORT_TABLE_ENTRY *GetNativeImportFromIndex(COUNT_T index) const; - CHECK CheckNativeImportFromIndex(COUNT_T index) const; - PTR_CORCOMPILE_IMPORT_SECTION GetNativeImportSections(COUNT_T *pCount = NULL) const; PTR_CORCOMPILE_IMPORT_SECTION GetNativeImportSectionFromIndex(COUNT_T index) const; PTR_CORCOMPILE_IMPORT_SECTION GetNativeImportSectionForRVA(RVA rva) const; @@ -404,7 +401,7 @@ class PEDecoder IMAGE_NT_HEADERS *FindNTHeaders() const; IMAGE_COR20_HEADER *FindCorHeader() const; CORCOMPILE_HEADER *FindNativeHeader() const; - READYTORUN_HEADER *FindReadyToRunHeader() const; + READYTORUN_HEADER *FindReadyToRunHeader() const; // Flat mapping utilities RVA InternalAddressToRva(SIZE_T address) const; diff --git a/lib/coreclr/src/inc/pedecoder.inl b/lib/coreclr/src/inc/pedecoder.inl index c8400af46ad6..c17c03a5c8ff 100644 --- a/lib/coreclr/src/inc/pedecoder.inl +++ b/lib/coreclr/src/inc/pedecoder.inl @@ -107,7 +107,6 @@ inline PEDecoder::PEDecoder(PTR_VOID mappedBase, bool fixedUp /*= FALSE*/) PRECONDITION(PEDecoder(mappedBase,fixedUp).CheckNTHeaders()); THROWS; GC_NOTRIGGER; - SO_TOLERANT; SUPPORTS_DAC; } CONTRACTL_END; @@ -240,7 +239,6 @@ inline BOOL PEDecoder::Has32BitNTHeaders() const PRECONDITION(HasNTHeaders()); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; SUPPORTS_DAC; CANNOT_TAKE_LOCK; SUPPORTS_DAC; @@ -306,7 +304,6 @@ inline const void *PEDecoder::GetPreferredBase() const PRECONDITION(CheckNTHeaders()); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; POSTCONDITION(CheckPointer(RETVAL, NULL_OK)); } CONTRACT_END; @@ -326,7 +323,6 @@ inline COUNT_T PEDecoder::GetVirtualSize() const NOTHROW; GC_NOTRIGGER; SUPPORTS_DAC; - SO_TOLERANT; } CONTRACTL_END; @@ -343,7 +339,6 @@ inline WORD PEDecoder::GetSubsystem() const NOTHROW; GC_NOTRIGGER; SUPPORTS_DAC; - SO_TOLERANT; } CONTRACTL_END; @@ -359,7 +354,6 @@ inline WORD PEDecoder::GetDllCharacteristics() const PRECONDITION(CheckNTHeaders()); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; } CONTRACTL_END; @@ -585,7 +579,6 @@ inline BOOL PEDecoder::HasDirectoryEntry(int entry) const NOTHROW; GC_NOTRIGGER; SUPPORTS_DAC; - SO_TOLERANT; } CONTRACTL_END; @@ -604,7 +597,6 @@ inline IMAGE_DATA_DIRECTORY *PEDecoder::GetDirectoryEntry(int entry) const NOTHROW; GC_NOTRIGGER; POSTCONDITION(CheckPointer(RETVAL)); - SO_TOLERANT; CANNOT_TAKE_LOCK; SUPPORTS_DAC; } @@ -633,7 +625,6 @@ inline TADDR PEDecoder::GetDirectoryEntryData(int entry, COUNT_T *pSize) const NOTHROW; GC_NOTRIGGER; POSTCONDITION(CheckPointer((void *)RETVAL, NULL_OK)); - SO_TOLERANT; CANNOT_TAKE_LOCK; SUPPORTS_DAC; } @@ -656,7 +647,6 @@ inline TADDR PEDecoder::GetDirectoryData(IMAGE_DATA_DIRECTORY *pDir) const PRECONDITION(CheckDirectory(pDir, 0, NULL_OK)); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; SUPPORTS_DAC; POSTCONDITION(CheckPointer((void *)RETVAL, NULL_OK)); CANNOT_TAKE_LOCK; @@ -676,7 +666,6 @@ inline TADDR PEDecoder::GetDirectoryData(IMAGE_DATA_DIRECTORY *pDir, COUNT_T *pS PRECONDITION(CheckPointer(pSize)); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; SUPPORTS_DAC; POSTCONDITION(CheckPointer((void *)RETVAL, NULL_OK)); CANNOT_TAKE_LOCK; @@ -698,7 +687,6 @@ inline TADDR PEDecoder::GetInternalAddressData(SIZE_T address) const NOTHROW; GC_NOTRIGGER; POSTCONDITION(CheckPointer((void *)RETVAL)); - SO_TOLERANT; } CONTRACT_END; @@ -714,7 +702,6 @@ inline BOOL PEDecoder::HasCorHeader() const NOTHROW; SUPPORTS_DAC; GC_NOTRIGGER; - SO_TOLERANT; } CONTRACTL_END; @@ -729,7 +716,6 @@ inline BOOL PEDecoder::IsILOnly() const PRECONDITION(HasCorHeader()); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; SUPPORTS_DAC; } CONTRACTL_END; @@ -794,7 +780,6 @@ inline BOOL PEDecoder::IsStrongNameSigned() const NOTHROW; GC_NOTRIGGER; SUPPORTS_DAC; - SO_TOLERANT; } CONTRACTL_END; @@ -811,7 +796,6 @@ inline BOOL PEDecoder::HasStrongNameSignature() const NOTHROW; GC_NOTRIGGER; SUPPORTS_DAC; - SO_TOLERANT; } CONTRACTL_END; @@ -865,7 +849,6 @@ inline BOOL PEDecoder::HasTls() const PRECONDITION(CheckNTHeaders()); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; } CONTRACTL_END; @@ -880,7 +863,6 @@ inline CHECK PEDecoder::CheckTls() const PRECONDITION(CheckNTHeaders()); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; } CONTRACT_CHECK_END; @@ -947,7 +929,6 @@ inline IMAGE_COR20_HEADER *PEDecoder::GetCorHeader() const PRECONDITION(HasCorHeader()); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; POSTCONDITION(CheckPointer(RETVAL)); CANNOT_TAKE_LOCK; SUPPORTS_DAC; @@ -993,10 +974,8 @@ inline CORCOMPILE_HEADER *PEDecoder::GetNativeHeader() const NOTHROW; GC_NOTRIGGER; POSTCONDITION(CheckPointer(RETVAL)); - SO_TOLERANT; SUPPORTS_DAC; CANNOT_TAKE_LOCK; - SO_TOLERANT; } CONTRACT_END; @@ -1076,7 +1055,6 @@ inline BOOL PEDecoder::IsNativeILILOnly() const PRECONDITION(CheckNativeHeader()); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; CANNOT_TAKE_LOCK; SUPPORTS_DAC; } @@ -1202,7 +1180,6 @@ inline IMAGE_NT_HEADERS *PEDecoder::FindNTHeaders() const NOTHROW; GC_NOTRIGGER; POSTCONDITION(CheckPointer(RETVAL)); - SO_TOLERANT; CANNOT_TAKE_LOCK; SUPPORTS_DAC; } @@ -1221,7 +1198,6 @@ inline IMAGE_COR20_HEADER *PEDecoder::FindCorHeader() const GC_NOTRIGGER; POSTCONDITION(CheckPointer(RETVAL)); CANNOT_TAKE_LOCK; - SO_TOLERANT; SUPPORTS_DAC; } CONTRACT_END; @@ -1239,7 +1215,6 @@ inline CORCOMPILE_HEADER *PEDecoder::FindNativeHeader() const NOTHROW; GC_NOTRIGGER; POSTCONDITION(CheckPointer(RETVAL)); - SO_TOLERANT; CANNOT_TAKE_LOCK; SUPPORTS_DAC; } @@ -1388,7 +1363,6 @@ inline BOOL PEDecoder::HasReadyToRunHeader() const NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_TOLERANT; SUPPORTS_DAC; } CONTRACTL_END; @@ -1413,10 +1387,8 @@ inline READYTORUN_HEADER * PEDecoder::GetReadyToRunHeader() const NOTHROW; GC_NOTRIGGER; POSTCONDITION(CheckPointer(RETVAL)); - SO_TOLERANT; SUPPORTS_DAC; CANNOT_TAKE_LOCK; - SO_TOLERANT; } CONTRACT_END; diff --git a/lib/coreclr/src/inc/peinformation.h b/lib/coreclr/src/inc/peinformation.h index f24d7bcdcbf1..8b5ac19c5a17 100644 --- a/lib/coreclr/src/inc/peinformation.h +++ b/lib/coreclr/src/inc/peinformation.h @@ -30,7 +30,7 @@ typedef enum _tagPEKIND inline bool IsPE64(PEKIND x) { - return ( (x == peIA64) || (x == peAMD64) ); + return ( (x == peIA64) || (x == peAMD64) || (x == peARM64) ); } inline bool IsPE32(PEKIND x) diff --git a/lib/coreclr/src/inc/perfcounterdefs.h b/lib/coreclr/src/inc/perfcounterdefs.h deleted file mode 100644 index 83fe7b1d5b5c..000000000000 --- a/lib/coreclr/src/inc/perfcounterdefs.h +++ /dev/null @@ -1,495 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -//----------------------------------------------------------------------------- -// PerfCounterDefs.h -// -// Internal Interface for CLR to use Performance counters -//----------------------------------------------------------------------------- - - -#ifndef _PerfCounterDefs_h_ -#define _PerfCounterDefs_h_ - -#include "contract.h" - -//----------------------------------------------------------------------------- -// PerfCounters are only enabled if ENABLE_PERF_COUNTERS is defined. -// If we know we want them (such as in the impl or perfmon, then define this -// in before we include this header, else define this from the sources file. -// -// Note that some platforms don't use perfcounters, so to avoid a build -// break, you must wrap PerfCounter code (such as instrumenting in either -// #ifdef or use the COUNTER_ONLY(x) macro (defined below) -// - -//----------------------------------------------------------------------------- -// Name of global IPC block -#define SHARED_PERF_IPC_NAME W("SharedPerfIPCBlock") - - -//----------------------------------------------------------------------------- -// Attributes for the IPC block -//----------------------------------------------------------------------------- -const int PERF_ATTR_ON = 0x0001; // Are we even updating any counters? -const int PERF_ATTR_GLOBAL = 0x0002; // Is this a global or private block? - - - - - -//............................................................................. -// Tri Counter. Support for the common trio of counters (Total, Current, and -// Instantaneous). This compiles to the same thing if we had them all separate, -// but it's a lot cleaner this way. -//............................................................................. -struct TRICOUNT -{ - DWORD Cur; // Current, has +, - - DWORD Total; // Total, has only + - inline void operator++(int) { - LIMITED_METHOD_CONTRACT; - Cur ++; Total ++; - } - inline void operator--(int) { - LIMITED_METHOD_CONTRACT; - Cur --; - } - inline void operator+=(int delta) { - LIMITED_METHOD_CONTRACT; - Cur += delta; Total += delta; - } - inline void operator-=(int delta) { - LIMITED_METHOD_CONTRACT; - Cur -= delta; - } - inline void operator=(int delta) { - LIMITED_METHOD_CONTRACT; - Cur = delta; - Total = delta; - } - inline void operator+=(TRICOUNT delta) { - LIMITED_METHOD_CONTRACT; - Cur += delta.Cur; Total += delta.Total; - } - -}; - -//............................................................................. -// Interlocked Tri Counter. Support for the common trio of counters (Total, Current, -// and Instantaneous). This compiles to the same thing if we had them all separate, -// but it's a lot cleaner this way. -//............................................................................. -struct TRICOUNT_IL -{ - DWORD Cur; // Current, has +, - - DWORD Total; // Total, has only + - inline void operator++(int) { - LIMITED_METHOD_CONTRACT; - InterlockedIncrement((LPLONG)&Cur); InterlockedIncrement((LPLONG)&Total); - } - inline void operator--(int) { - LIMITED_METHOD_CONTRACT; - InterlockedDecrement((LPLONG)&Cur); - } - inline void operator+=(int delta) { - LIMITED_METHOD_CONTRACT; - while (TRUE) - { - LONG old_Cur = Cur; - if (InterlockedCompareExchange((LPLONG)&Cur, Cur+delta, old_Cur) == old_Cur) - break; - } - while (TRUE) - { - LONG old_Total = Total; - if (InterlockedCompareExchange((LPLONG)&Total, Total+delta, old_Total) == old_Total) - break; - } - } - inline void operator-=(int delta) { - LIMITED_METHOD_CONTRACT; - while (TRUE) - { - LONG old_Cur = Cur; - if (InterlockedCompareExchange((LPLONG)&Cur, Cur-delta, old_Cur) == old_Cur) - break; - } - } - inline void operator=(int delta) { - LIMITED_METHOD_CONTRACT; - while (TRUE) - { - LONG old_Cur = Cur; - if (InterlockedCompareExchange((LPLONG)&Cur, delta, old_Cur) == old_Cur) - break; - } - - while (TRUE) - { - LONG old_Total = Total; - if (InterlockedCompareExchange((LPLONG)&Total, delta, old_Total) == old_Total) - break; - } - } - inline void operator+=(TRICOUNT_IL delta) { - LIMITED_METHOD_CONTRACT; - while (TRUE) - { - LONG old_Cur = Cur; - if (InterlockedCompareExchange((LPLONG)&Cur, Cur+delta.Cur, old_Cur) == old_Cur) - break; - } - while (TRUE) - { - LONG old_Total = Total; - if (InterlockedCompareExchange((LPLONG)&Total, Total+delta.Total, old_Total) == old_Total) - break; - } - } - -}; - - -//............................................................................. -// Dual Counter. Support for the (Total and Instantaneous (rate)). Helpful in cases -// where the current value is always same as the total value. ie. the counter is never -// decremented. -// This compiles to the same thing if we had them separate, but it's a lot cleaner -// this way. -//............................................................................. -struct DUALCOUNT -{ - DWORD Total; - inline void operator++(int) { - LIMITED_METHOD_CONTRACT; - Total ++; - } - - inline void operator+=(int delta) { - LIMITED_METHOD_CONTRACT; - Total += delta; - } - - inline void operator+=(DUALCOUNT delta) { - LIMITED_METHOD_CONTRACT; - Total += delta.Total; - } - - -}; - -//----------------------------------------------------------------------------- -// Format for the Perf Counter IPC Block -// IPC block is broken up into sections. This marks it easier to marshall -// into different perfmon objects -// -//............................................................................. -// Naming convention (by prefix): -// c - Raw count of something. -// cb- count of bytes -// time - time value. -// depth - stack depth -//----------------------------------------------------------------------------- - -const int MAX_TRACKED_GENS = 3; // number of generations we track - -// -// Perf_GC_Wow64 mimics in a 64 bit process, the layout of Perf_GC in a 32 bit process -// It does this by replacing all size_t by DWORD -// -// *** Keep contents of Perf_GC_Wow64 and Perf_GC in sync *** - -struct Perf_GC_Wow64 -{ -public: - DWORD cGenCollections[MAX_TRACKED_GENS];// count of collects per gen - DWORD cbPromotedMem[MAX_TRACKED_GENS-1]; // count of promoted memory - DWORD cbPromotedFinalizationMem; // count of memory promoted due to finalization - DWORD cProcessID; // process ID - DWORD cGenHeapSize[MAX_TRACKED_GENS]; // size of heaps per gen - DWORD cTotalCommittedBytes; // total number of committed bytes. - DWORD cTotalReservedBytes; // bytes reserved via VirtualAlloc - DWORD cLrgObjSize; // size of Large Object Heap - DWORD cSurviveFinalize; // count of instances surviving from finalizing - DWORD cHandles; // count of GC handles - DWORD cbAlloc; // bytes allocated - DWORD cbLargeAlloc; // bytes allocated for Large Objects - DWORD cInducedGCs; // number of explicit GCs - DWORD timeInGC; // Time in GC - DWORD timeInGCBase; // must follow time in GC counter - - DWORD cPinnedObj; // # of Pinned Objects - DWORD cSinkBlocks; // # of sink blocks -}; - -// *** Keep contents of Perf_GC_Wow64 and Perf_GC in sync *** -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 -struct Perf_GC -{ -public: - size_t cGenCollections[MAX_TRACKED_GENS];// count of collects per gen - size_t cbPromotedMem[MAX_TRACKED_GENS-1]; // count of promoted memory - size_t cbPromotedFinalizationMem; // count of memory promoted due to finalization - size_t cProcessID; // process ID - size_t cGenHeapSize[MAX_TRACKED_GENS]; // size of heaps per gen - size_t cTotalCommittedBytes; // total number of committed bytes. - size_t cTotalReservedBytes; // bytes reserved via VirtualAlloc - size_t cLrgObjSize; // size of Large Object Heap - size_t cSurviveFinalize; // count of instances surviving from finalizing - size_t cHandles; // count of GC handles - size_t cbAlloc; // bytes allocated - size_t cbLargeAlloc; // bytes allocated for Large Objects - size_t cInducedGCs; // number of explicit GCs - DWORD timeInGC; // Time in GC - DWORD timeInGCBase; // must follow time in GC counter - - size_t cPinnedObj; // # of Pinned Objects - size_t cSinkBlocks; // # of sink blocks - - Perf_GC(); - Perf_GC(Perf_GC_Wow64& copyFrom); -}; -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 - -// -// Perf_Loading_Wow64 mimics in a 64 bit process, the layout of Perf_Loading -// in a 32 bit process. It does this by replacing all size_t by DWORD -// -// *** Keep contents of Perf_Loading_Wow64 and Perf_Loading in sync *** -struct Perf_Loading_Wow64 -{ -// Loading -public: - TRICOUNT cClassesLoaded; - TRICOUNT_IL cAppDomains; // Current # of AppDomains - TRICOUNT cAssemblies; // Current # of Assemblies. - UNALIGNED LONGLONG timeLoading; // % time loading - DWORD cAsmSearchLen; // Avg search length for assemblies - DUALCOUNT cLoadFailures; // Classes Failed to load - DWORD cbLoaderHeapSize; // Total size of heap used by the loader - DUALCOUNT cAppDomainsUnloaded; // Rate at which app domains are unloaded -}; - -// *** Keep contents of Perf_Loading_Wow64 and Perf_Loading in sync *** -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 -struct Perf_Loading -{ -// Loading -public: - TRICOUNT cClassesLoaded; - TRICOUNT_IL cAppDomains; // Current # of AppDomains - TRICOUNT cAssemblies; // Current # of Assemblies. - UNALIGNED LONGLONG timeLoading; // % time loading - DWORD cAsmSearchLen; // Avg search length for assemblies - DUALCOUNT cLoadFailures; // Classes Failed to load - size_t cbLoaderHeapSize; // Total size of heap used by the loader - DUALCOUNT cAppDomainsUnloaded; // Rate at which app domains are unloaded - - Perf_Loading(); - Perf_Loading(Perf_Loading_Wow64& copyFrom); -}; -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 - -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 -struct Perf_Jit -{ -// Jitting - DWORD cMethodsJitted; // number of methods jitted - TRICOUNT cbILJitted; // IL jitted stats -// DUALCOUNT cbPitched; // Total bytes pitched - DWORD cJitFailures; // # of standard Jit failures - DWORD timeInJit; // Time in JIT since last sample - DWORD timeInJitBase; // Time in JIT base counter -}; -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 - -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 -struct Perf_Excep -{ -// Exceptions - DUALCOUNT cThrown; // Number of Exceptions thrown - DWORD cFiltersExecuted; // Number of Filters executed - DWORD cFinallysExecuted; // Number of Finallys executed - DWORD cThrowToCatchStackDepth; // Delta from throw to catch site on stack -}; -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 - -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 -struct Perf_Interop -{ -// Interop - DWORD cCCW; // Number of CCWs - DWORD cStubs; // Number of stubs - DWORD cMarshalling; // # of time marshalling args and return values. - DWORD cTLBImports; // Number of tlbs we import - DWORD cTLBExports; // Number of tlbs we export -}; -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 - -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 -struct Perf_LocksAndThreads -{ -// Locks - DUALCOUNT cContention; // # of times in AwareLock::EnterEpilogue() - TRICOUNT cQueueLength; // Lenght of queue -// Threads - DWORD cCurrentThreadsLogical; // Number (created - destroyed) of logical threads - DWORD cCurrentThreadsPhysical; // Number (created - destroyed) of OS threads - TRICOUNT cRecognizedThreads; // # of Threads execute in runtime's control -}; -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 - - -// IMPORTANT!!!!!!!: The first two fields in the struct have to be together -// and be the first two fields in the struct. The managed code in ChannelServices.cs -// depends on this. -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 -struct Perf_Contexts -{ -// Contexts & Remoting - DUALCOUNT cRemoteCalls; // # of remote calls - DWORD cChannels; // Number of current channels - DWORD cProxies; // Number of context proxies. - DWORD cClasses; // # of Context-bound classes - DWORD cObjAlloc; // # of context bound objects allocated - DWORD cContexts; // The current number of contexts. -}; -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 - -// -// Perf_Security_Wow64 mimics in a 64 bit process, the layout of Perf_Security -// in a 32 bit process. It does this by packing all members on 4 byte boundary -// ("timeAuthorize" field which is 8 bytes in size, will get 8 byte aligned -// on 64 bit by default) -// -// *** Keep contents of Perf_Security_Wow64 and Perf_Security in sync *** -#include -struct Perf_Security_Wow64 -{ -// Security -public: - DWORD cTotalRTChecks; // Total runtime checks - UNALIGNED LONGLONG timeAuthorize; // % time authenticating - DWORD cLinkChecks; // link time checks - DWORD timeRTchecks; // % time in Runtime checks - DWORD timeRTchecksBase; // % time in Runtime checks base counter - DWORD stackWalkDepth; // depth of stack for security checks -}; -#include - -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 -struct Perf_Security -{ -// Security -public: - DWORD cTotalRTChecks; // Total runtime checks - UNALIGNED LONGLONG timeAuthorize; // % time authenticating - DWORD cLinkChecks; // link time checks - DWORD timeRTchecks; // % time in Runtime checks - DWORD timeRTchecksBase; // % time in Runtime checks base counter - DWORD stackWalkDepth; // depth of stack for security checks - - Perf_Security(); - Perf_Security(Perf_Security_Wow64& copyFrom); -}; -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 - - -// -// PerfCounterWow64IPCControlBlock mimics in a 64 bit process, the layout of -// PerfCounterIPCControlBlock in a 32 bit process. -// -// *** Keep contents of PerfCounterWow64IPCControlBlock and PerfCounterIPCControlBlock in sync *** -#include -struct PerfCounterWow64IPCControlBlock -{ -public: -// Versioning info - WORD m_cBytes; // size of this entire block - WORD m_wAttrs; // attributes for this block - -// Counter Sections - Perf_GC_Wow64 m_GC; - Perf_Contexts m_Context; - Perf_Interop m_Interop; - Perf_Loading_Wow64 m_Loading; - Perf_Excep m_Excep; - Perf_LocksAndThreads m_LocksAndThreads; - Perf_Jit m_Jit; - Perf_Security_Wow64 m_Security; -}; -#include - -// Note: PerfMonDll marshalls data out of here by copying a continous block of memory. -// We can still add new members to the subsections above, but if we change their -// placement in the structure below, we may break PerfMon's marshalling - -// *** Keep contents of PerfCounterWow64IPCControlBlock and PerfCounterIPCControlBlock in sync *** -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 -struct PerfCounterIPCControlBlock -{ -public: -// Versioning info - WORD m_cBytes; // size of this entire block - WORD m_wAttrs; // attributes for this block - -// Counter Sections - Perf_GC m_GC; - Perf_Contexts m_Context; - Perf_Interop m_Interop; - Perf_Loading m_Loading; - Perf_Excep m_Excep; - Perf_LocksAndThreads m_LocksAndThreads; - Perf_Jit m_Jit; - Perf_Security m_Security; - - PerfCounterIPCControlBlock(); - PerfCounterIPCControlBlock(PerfCounterWow64IPCControlBlock& copyFrom); -}; - -#ifndef _WIN64 -#include -#endif //#ifndef _WIN64 - -// -// Inline definitions -// - -#include "perfcounterdefs.inl" - -#endif // _PerfCounterDefs_h_ diff --git a/lib/coreclr/src/inc/perfcounterdefs.inl b/lib/coreclr/src/inc/perfcounterdefs.inl deleted file mode 100644 index ab8f73d6d8a6..000000000000 --- a/lib/coreclr/src/inc/perfcounterdefs.inl +++ /dev/null @@ -1,89 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -//----------------------------------------------------------------------------- -// PerfCounterDefs.inl -// -// Internal Interface for CLR to use Performance counters -//----------------------------------------------------------------------------- - -#ifndef _PerfCounterDefs_inl_ -#define _PerfCounterDefs_inl_ - -#include "perfcounterdefs.h" - -inline Perf_GC::Perf_GC() {} - -inline Perf_GC::Perf_GC(Perf_GC_Wow64& copyFrom) -{ - for (int index = 0; index < MAX_TRACKED_GENS; index++) - { - cGenCollections[index] = (size_t)copyFrom.cGenCollections[index]; - cGenHeapSize[index] = (size_t)copyFrom.cGenHeapSize[index]; - } - for (int index = 0; index < MAX_TRACKED_GENS - 1; index++) - { - cbPromotedMem[index] = (size_t)copyFrom.cbPromotedMem[index]; - } - - cbPromotedFinalizationMem = (size_t) copyFrom.cbPromotedFinalizationMem; - cProcessID = (size_t) copyFrom.cProcessID; - cTotalCommittedBytes = (size_t) copyFrom.cTotalCommittedBytes; - cTotalReservedBytes = (size_t) copyFrom.cTotalReservedBytes; - cLrgObjSize = (size_t) copyFrom.cLrgObjSize; - cSurviveFinalize = (size_t) copyFrom.cSurviveFinalize; - cHandles = (size_t) copyFrom.cHandles; - cbAlloc = (size_t) copyFrom.cbAlloc; - cbLargeAlloc = (size_t) copyFrom.cbLargeAlloc; - cInducedGCs = (size_t) copyFrom.cInducedGCs; - timeInGC = copyFrom.timeInGC; - timeInGCBase = copyFrom.timeInGCBase; - cPinnedObj = (size_t) copyFrom.cPinnedObj; - cSinkBlocks = (size_t) copyFrom.cSinkBlocks; -} - -inline Perf_Loading::Perf_Loading() {} - -inline Perf_Loading::Perf_Loading(Perf_Loading_Wow64& copyFrom) -: cClassesLoaded(copyFrom.cClassesLoaded), - cAppDomains(copyFrom.cAppDomains), - cAssemblies(copyFrom.cAssemblies), - timeLoading(copyFrom.timeLoading), - cAsmSearchLen(copyFrom.cAsmSearchLen), - cLoadFailures (copyFrom.cLoadFailures), - cbLoaderHeapSize ((size_t) copyFrom.cbLoaderHeapSize), - cAppDomainsUnloaded (copyFrom.cAppDomainsUnloaded) -{ -} - -inline Perf_Security::Perf_Security() {}; - -inline Perf_Security::Perf_Security(Perf_Security_Wow64& copyFrom) -: cTotalRTChecks(copyFrom.cTotalRTChecks), - timeAuthorize(0), // Unused "reserved" field - cLinkChecks(copyFrom.cLinkChecks), - timeRTchecks(copyFrom.timeRTchecks), - timeRTchecksBase(copyFrom.timeRTchecksBase), - stackWalkDepth (copyFrom.stackWalkDepth) -{ -} - -inline PerfCounterIPCControlBlock::PerfCounterIPCControlBlock() {} - -inline PerfCounterIPCControlBlock::PerfCounterIPCControlBlock(PerfCounterWow64IPCControlBlock& copyFrom) -: m_cBytes (copyFrom.m_cBytes), - m_wAttrs (copyFrom.m_wAttrs), - m_GC (copyFrom.m_GC), - m_Context (copyFrom.m_Context), - m_Interop (copyFrom.m_Interop), - m_Loading (copyFrom.m_Loading), - m_Excep (copyFrom.m_Excep), - m_LocksAndThreads (copyFrom.m_LocksAndThreads), - m_Jit (copyFrom.m_Jit), - m_Security (copyFrom.m_Security) -{ - _ASSERTE((size_t)m_cBytes == sizeof(PerfCounterWow64IPCControlBlock)); -} - -#endif // _PerfCounterDefs_inl_ - diff --git a/lib/coreclr/src/inc/perfcounters.h b/lib/coreclr/src/inc/perfcounters.h deleted file mode 100644 index 29fc767d6318..000000000000 --- a/lib/coreclr/src/inc/perfcounters.h +++ /dev/null @@ -1,122 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -//----------------------------------------------------------------------------- -// PerfCounters.h -// -// Internal Interface for CLR to use Performance counters -//----------------------------------------------------------------------------- - - -#ifndef _PerfCounters_h_ -#define _PerfCounters_h_ - -#include "perfcounterdefs.h" - -#ifdef ENABLE_PERF_COUNTERS -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -// This code section active iff we're using Perf Counters -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -// PerfCounter class serves as namespace with data protection. -// Enforce this by making constructor private -//----------------------------------------------------------------------------- -class PerfCounters -{ -private: - PerfCounters(); - -public: - static HRESULT Init(); - static void Terminate(); - - static PerfCounterIPCControlBlock * GetPrivatePerfCounterPtr(); - -private: - static HANDLE m_hPrivateMapPerf; - - static PerfCounterIPCControlBlock * m_pPrivatePerf; - - static BOOL m_fInit; - -// Set pointers to garbage so they're never null. - static PerfCounterIPCControlBlock m_garbage; - - friend PerfCounterIPCControlBlock & GetPerfCounters(); -}; - -//----------------------------------------------------------------------------- -// Utility functions -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -// Get the perf counters specific to our process -//----------------------------------------------------------------------------- -inline PerfCounterIPCControlBlock & GetPerfCounters() -{ - LIMITED_METHOD_CONTRACT; - - return *PerfCounters::m_pPrivatePerf; -} - -inline PerfCounterIPCControlBlock *PerfCounters::GetPrivatePerfCounterPtr() -{ - LIMITED_METHOD_CONTRACT; - - return m_pPrivatePerf; -}; - -#define COUNTER_ONLY(x) x - -#define PERF_COUNTER_NUM_OF_ITERATIONS 10 - -#if defined(_X86_) && defined(_MSC_VER) - -inline UINT64 GetCycleCount_UINT64() -{ - LIMITED_METHOD_CONTRACT; - return __rdtsc(); -} - -#else // defined(_X86_) && defined(_MSC_VER) -inline UINT64 GetCycleCount_UINT64() -{ - LIMITED_METHOD_CONTRACT; - - LARGE_INTEGER qwTmp; - QueryPerformanceCounter(&qwTmp); - return qwTmp.QuadPart; -} -#endif // defined(_X86_) && defined(_MSC_VER) - -#define PERF_COUNTER_TIMER_PRECISION UINT64 -#define GET_CYCLE_COUNT GetCycleCount_UINT64 - -#define PERF_COUNTER_TIMER_START() \ -PERF_COUNTER_TIMER_PRECISION _startPerfCounterTimer = GET_CYCLE_COUNT(); - -#define PERF_COUNTER_TIMER_STOP(global) \ -global = (GET_CYCLE_COUNT() - _startPerfCounterTimer); - - - - -#else // ENABLE_PERF_COUNTERS -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- -// This code section active iff we're NOT using Perf Counters -// Note, not even a class definition, so all usages of PerfCounters in client -// should be in #ifdef or COUNTER_ONLY(). -//----------------------------------------------------------------------------- -//----------------------------------------------------------------------------- - -#define COUNTER_ONLY(x) - - -#endif // ENABLE_PERF_COUNTERS - - -#endif // _PerfCounters_h_ diff --git a/lib/coreclr/src/inc/predeftlsslot.h b/lib/coreclr/src/inc/predeftlsslot.h index fd56780b08bd..c2c59f2adb9c 100644 --- a/lib/coreclr/src/inc/predeftlsslot.h +++ b/lib/coreclr/src/inc/predeftlsslot.h @@ -7,6 +7,11 @@ #ifndef __PREDEFTLSSLOT_H__ #define __PREDEFTLSSLOT_H__ +// ****************************************************************************** +// WARNING!!!: These enums are used by SOS in the diagnostics repo. Values should +// added or removed in a backwards and forwards compatible way. +// See: https://github.com/dotnet/diagnostics/blob/master/src/inc/predeftlsslot.h +// ****************************************************************************** // And here are the predefined slots for accessing TLS from various DLLs of the CLR. // Note that we want to support combinations of Debug and Retail DLLs for testing @@ -18,9 +23,9 @@ enum PredefinedTlsSlots TlsIdx_JitPerf, TlsIdx_JitX86Perf, TlsIdx_JitLogEnv, - TlsIdx_IceCap, + TlsIdx_AssertDlgStatus, // Whether the thread is displaying an assert dialog TlsIdx_StressLog, - TlsIdx_StackProbe, + TlsIdx_CantStopCount, // Can't-stop counter for any thread TlsIdx_Check, TlsIdx_ForbidGCLoaderUseCount, TlsIdx_ClrDebugState, // Pointer to ClrDebugState* structure @@ -28,11 +33,8 @@ enum PredefinedTlsSlots // Add more indices here. TlsIdx_ThreadType, // bit flags to indicate special thread's type - TlsIdx_CantStopCount, // Can't-stop counter for any thread TlsIdx_OwnedCrstsChain, // slot to store the Crsts owned by this thread - TlsIdx_AppDomainAgilePendingTable, TlsIdx_CantAllocCount, //Can't allocate memory on heap in this thread - TlsIdx_AssertDlgStatus, // Whether the thread is displaying an assert dialog // A transient thread value that indicates this thread is currently walking its stack // or the stack of another thread. This value is useful to help short-circuit @@ -55,8 +57,6 @@ enum PredefinedTlsSlots TlsIdx_PEXCEPTION_RECORD, TlsIdx_PCONTEXT, - TlsIdx_SOIntolerantTransitionHandler, // The thread is entering SO intolerant code. This one is used by - // Thread::IsSOIntolerant to decide the SO mode of the thread. MAX_PREDEFINED_TLS_SLOT }; @@ -80,5 +80,7 @@ enum TlsThreadTypeFlag // flag used for thread type in Tls data ThreadType_GenericInstantiationCompare= 0x00020000, // Used to indicate that the thread is determining if a generic instantiation in an ngen image matches a lookup. }; +static_assert(TlsIdx_ThreadType == 11, "SOS in diagnostics repo has a dependency on this value."); + #endif diff --git a/lib/coreclr/src/inc/profilepriv.h b/lib/coreclr/src/inc/profilepriv.h index ae7b225f8ccd..acec829b150b 100644 --- a/lib/coreclr/src/inc/profilepriv.h +++ b/lib/coreclr/src/inc/profilepriv.h @@ -40,6 +40,7 @@ enum ProfilerStatus kProfStatusInitializingForStartupLoad = 2, // Prof ready for (or in) its Initialize callback kProfStatusInitializingForAttachLoad = 3, // Prof ready for (or in) its InitializeForAttach callback kProfStatusActive = 4, // Prof completed initialization and is actively running + kProfStatusPreInitialize = 5, // Prof is in LoadProfiler, but initialization has yet to occur }; class CurrentProfilerStatus @@ -115,6 +116,10 @@ struct ProfControlBlock // Whether we've turned off concurrent GC during attach BOOL fConcurrentGCDisabledForAttach; + + Volatile fProfControlBlockInitialized; + + Volatile fProfilerRequestedRuntimeSuspend; void Init(); void ResetPerSessionStatus(); @@ -142,6 +147,7 @@ GVAL_DECL(ProfControlBlock, g_profControlBlock); #define COR_PRF_CALLBACKSTATE_INCALLBACK 0x1 #define COR_PRF_CALLBACKSTATE_IN_TRIGGERS_SCOPE 0x2 #define COR_PRF_CALLBACKSTATE_FORCEGC_WAS_CALLED 0x4 +#define COR_PRF_CALLBACKSTATE_REJIT_WAS_CALLED 0x8 // //--------------------------------------------------------------- diff --git a/lib/coreclr/src/inc/profilepriv.inl b/lib/coreclr/src/inc/profilepriv.inl index 1af291433618..5a0513f4a31b 100644 --- a/lib/coreclr/src/inc/profilepriv.inl +++ b/lib/coreclr/src/inc/profilepriv.inl @@ -70,6 +70,10 @@ inline void ProfControlBlock::Init() fConcurrentGCDisabledForAttach = FALSE; ResetPerSessionStatus(); + + fProfControlBlockInitialized = TRUE; + + fProfilerRequestedRuntimeSuspend = FALSE; } // Reset those variables that is only for the current attach session @@ -107,7 +111,6 @@ inline BOOL CORProfilerFunctionIDMapperEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -125,7 +128,6 @@ inline BOOL CORProfilerTrackJITInfo() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -140,7 +142,6 @@ inline BOOL CORProfilerTrackCacheSearches() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -155,7 +156,6 @@ inline BOOL CORProfilerTrackModuleLoads() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -170,7 +170,6 @@ inline BOOL CORProfilerTrackAssemblyLoads() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -185,7 +184,6 @@ inline BOOL CORProfilerTrackAppDomainLoads() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -200,7 +198,6 @@ inline BOOL CORProfilerTrackThreads() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -215,7 +212,6 @@ inline BOOL CORProfilerTrackClasses() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -230,7 +226,6 @@ inline BOOL CORProfilerTrackGC() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -245,7 +240,6 @@ inline BOOL CORProfilerTrackAllocationsEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -266,7 +260,6 @@ inline BOOL CORProfilerTrackAllocations() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -275,6 +268,21 @@ inline BOOL CORProfilerTrackAllocations() ((&g_profControlBlock)->dwEventMask & COR_PRF_MONITOR_OBJECT_ALLOCATED)); } +inline BOOL CORProfilerTrackLargeAllocations() +{ + CONTRACTL + { + NOTHROW; + GC_NOTRIGGER; + CANNOT_TAKE_LOCK; + } + CONTRACTL_END; + + return + (CORProfilerPresent() && + ((&g_profControlBlock)->dwEventMaskHigh & COR_PRF_HIGH_MONITOR_LARGEOBJECT_ALLOCATED)); +} + inline BOOL CORProfilerEnableRejit() { CONTRACTL @@ -282,7 +290,6 @@ inline BOOL CORProfilerEnableRejit() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -297,7 +304,6 @@ inline BOOL CORProfilerTrackExceptions() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -312,7 +318,6 @@ inline BOOL CORProfilerTrackCLRExceptions() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -327,7 +332,6 @@ inline BOOL CORProfilerTrackTransitions() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -342,7 +346,6 @@ inline BOOL CORProfilerTrackEnterLeave() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -362,7 +365,6 @@ inline BOOL CORProfilerTrackCCW() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -377,7 +379,6 @@ inline BOOL CORProfilerTrackRemoting() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -392,7 +393,6 @@ inline BOOL CORProfilerTrackRemotingCookie() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -409,7 +409,6 @@ inline BOOL CORProfilerTrackRemotingAsync() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -426,7 +425,6 @@ inline BOOL CORProfilerTrackSuspends() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -441,7 +439,6 @@ inline BOOL CORProfilerDisableInlining() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -456,7 +453,6 @@ inline BOOL CORProfilerJITMapEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -471,7 +467,6 @@ inline BOOL CORProfilerDisableOptimizations() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; SUPPORTS_DAC; } CONTRACTL_END; @@ -487,7 +482,6 @@ inline BOOL CORProfilerUseProfileImages() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -548,7 +542,6 @@ inline BOOL CORProfilerELT3SlowPathEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -563,7 +556,6 @@ inline BOOL CORProfilerELT3SlowPathEnterEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -578,7 +570,6 @@ inline BOOL CORProfilerELT3SlowPathLeaveEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -593,7 +584,6 @@ inline BOOL CORProfilerELT3SlowPathTailcallEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -608,7 +598,6 @@ inline BOOL CORProfilerELT2FastPathEnterEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -623,7 +612,6 @@ inline BOOL CORProfilerELT2FastPathLeaveEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -638,7 +626,6 @@ inline BOOL CORProfilerELT2FastPathTailcallEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -653,7 +640,6 @@ inline BOOL CORProfilerFunctionArgsEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -668,7 +654,6 @@ inline BOOL CORProfilerFunctionReturnValueEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -683,7 +668,6 @@ inline BOOL CORProfilerFrameInfoEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -698,7 +682,6 @@ inline BOOL CORProfilerStackSnapshotEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -713,7 +696,6 @@ inline BOOL CORProfilerAddsAssemblyReferences() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -728,7 +710,6 @@ inline BOOL CORProfilerInMemorySymbolsUpdatesEnabled() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -743,7 +724,6 @@ inline BOOL CORProfilerIsMonitoringDynamicFunctionUnloads() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -758,7 +738,6 @@ inline BOOL CORProfilerDisableTieredCompilation() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_NOT_MAINLINE; } CONTRACTL_END; @@ -767,6 +746,34 @@ inline BOOL CORProfilerDisableTieredCompilation() ((&g_profControlBlock)->dwEventMaskHigh & COR_PRF_HIGH_DISABLE_TIERED_COMPILATION)); } +inline BOOL CORProfilerTrackBasicGC() +{ + CONTRACTL + { + NOTHROW; + GC_NOTRIGGER; + CANNOT_TAKE_LOCK; + } + CONTRACTL_END; + + return (CORProfilerPresent() && + ((&g_profControlBlock)->dwEventMaskHigh & COR_PRF_HIGH_BASIC_GC)); +} + +inline BOOL CORProfilerTrackGCMovedObjects() +{ + CONTRACTL + { + NOTHROW; + GC_NOTRIGGER; + CANNOT_TAKE_LOCK; + } + CONTRACTL_END; + + return (CORProfilerPresent() && + ((&g_profControlBlock)->dwEventMaskHigh & COR_PRF_HIGH_MONITOR_GC_MOVED_OBJECTS)); +} + #if defined(PROFILING_SUPPORTED) && !defined(CROSSGEN_COMPILE) #if defined(FEATURE_PROFAPI_ATTACH_DETACH) @@ -783,7 +790,7 @@ inline BOOL CORProfilerDisableTieredCompilation() // See code:ProfilingAPIUtility::InitializeProfiling#LoadUnloadCallbackSynchronization. // typedef Wrapper, HSV_NoValidation> EvacuationCounterHolder; + (UINT_PTR)0, CompareDefault> EvacuationCounterHolder; //--------------------------------------------------------------------------------------- diff --git a/lib/coreclr/src/inc/readytorun.h b/lib/coreclr/src/inc/readytorun.h index 0f5183ff3a77..7745ad6e2f6f 100644 --- a/lib/coreclr/src/inc/readytorun.h +++ b/lib/coreclr/src/inc/readytorun.h @@ -15,10 +15,13 @@ #define READYTORUN_SIGNATURE 0x00525452 // 'RTR' -#define READYTORUN_MAJOR_VERSION 0x0002 -#define READYTORUN_MINOR_VERSION 0x0002 +#define READYTORUN_MAJOR_VERSION 0x0003 +#define READYTORUN_MINOR_VERSION 0x0001 +#define MINIMUM_READYTORUN_MAJOR_VERSION 0x003 // R2R Version 2.1 adds the READYTORUN_SECTION_INLINING_INFO section // R2R Version 2.2 adds the READYTORUN_SECTION_PROFILEDATA_INFO section +// R2R Version 3.0 changes calling conventions to correctly handle explicit structures to spec. +// R2R 3.0 is not backward compatible with 2.x. struct READYTORUN_HEADER { @@ -45,6 +48,8 @@ enum ReadyToRunFlag // Set if the original IL assembly was platform-neutral READYTORUN_FLAG_PLATFORM_NEUTRAL_SOURCE = 0x00000001, READYTORUN_FLAG_SKIP_TYPE_VALIDATION = 0x00000002, + // Set of methods with native code was determined using profile data + READYTORUN_FLAG_PARTIAL = 0x00000004, }; enum ReadyToRunSectionType @@ -60,7 +65,9 @@ enum ReadyToRunSectionType READYTORUN_SECTION_AVAILABLE_TYPES = 108, READYTORUN_SECTION_INSTANCE_METHOD_ENTRYPOINTS = 109, READYTORUN_SECTION_INLINING_INFO = 110, // Added in V2.1 - READYTORUN_SECTION_PROFILEDATA_INFO = 111 // Added in V2.2 + READYTORUN_SECTION_PROFILEDATA_INFO = 111, // Added in V2.2 + READYTORUN_SECTION_MANIFEST_METADATA = 112, // Added in V2.3 + READYTORUN_SECTION_ATTRIBUTEPRESENCE = 113, // Added in V3.1 // If you add a new section consider whether it is a breaking or non-breaking change. // Usually it is non-breaking, but if it is preferable to have older runtimes fail @@ -177,6 +184,8 @@ enum ReadyToRunFixupKind READYTORUN_FIXUP_DelegateCtor = 0x2C, /* optimized delegate ctor */ READYTORUN_FIXUP_DeclaringTypeHandle = 0x2D, + + READYTORUN_FIXUP_IndirectPInvokeTarget = 0x2E, /* Target of an inlined pinvoke */ }; // @@ -227,6 +236,10 @@ enum ReadyToRunHelper READYTORUN_HELPER_MemSet = 0x40, READYTORUN_HELPER_MemCpy = 0x41, + // PInvoke helpers + READYTORUN_HELPER_PInvokeBegin = 0x42, + READYTORUN_HELPER_PInvokeEnd = 0x43, + // Get string handle lazily READYTORUN_HELPER_GetString = 0x50, @@ -298,6 +311,10 @@ enum ReadyToRunHelper READYTORUN_HELPER_PersonalityRoutineFilterFunclet = 0xF1, #endif + // Synchronized methods + READYTORUN_HELPER_MonitorEnter = 0xF8, + READYTORUN_HELPER_MonitorExit = 0xF9, + // // Deprecated/legacy // diff --git a/lib/coreclr/src/inc/readytorunhelpers.h b/lib/coreclr/src/inc/readytorunhelpers.h index 7a1245c3bdef..c677f3787aaf 100644 --- a/lib/coreclr/src/inc/readytorunhelpers.h +++ b/lib/coreclr/src/inc/readytorunhelpers.h @@ -84,10 +84,10 @@ HELPER(READYTORUN_HELPER_Dbl2UIntOvf, CORINFO_HELP_DBL2UINT_OVF, HELPER(READYTORUN_HELPER_Dbl2ULng, CORINFO_HELP_DBL2ULNG, ) HELPER(READYTORUN_HELPER_Dbl2ULngOvf, CORINFO_HELP_DBL2ULNG_OVF, ) -HELPER(READYTORUN_HELPER_DblRem, CORINFO_HELP_FLTREM, ) -HELPER(READYTORUN_HELPER_FltRem, CORINFO_HELP_DBLREM, ) -HELPER(READYTORUN_HELPER_DblRound, CORINFO_HELP_FLTROUND, ) -HELPER(READYTORUN_HELPER_FltRound, CORINFO_HELP_DBLROUND, ) +HELPER(READYTORUN_HELPER_FltRem, CORINFO_HELP_FLTREM, ) +HELPER(READYTORUN_HELPER_DblRem, CORINFO_HELP_DBLREM, ) +HELPER(READYTORUN_HELPER_FltRound, CORINFO_HELP_FLTROUND, ) +HELPER(READYTORUN_HELPER_DblRound, CORINFO_HELP_DBLROUND, ) #ifndef _TARGET_X86_ HELPER(READYTORUN_HELPER_PersonalityRoutine, CORINFO_HELP_EE_PERSONALITY_ROUTINE, OPTIMIZEFORSIZE) @@ -111,5 +111,11 @@ HELPER(READYTORUN_HELPER_CheckedWriteBarrier_EBP, CORINFO_HELP_CHECKED_ASSIGN_ HELPER(READYTORUN_HELPER_EndCatch, CORINFO_HELP_ENDCATCH, OPTIMIZEFORSIZE) #endif +HELPER(READYTORUN_HELPER_PInvokeBegin, CORINFO_HELP_JIT_PINVOKE_BEGIN, ) +HELPER(READYTORUN_HELPER_PInvokeEnd, CORINFO_HELP_JIT_PINVOKE_END, ) + +HELPER(READYTORUN_HELPER_MonitorEnter, CORINFO_HELP_MON_ENTER, ) +HELPER(READYTORUN_HELPER_MonitorExit, CORINFO_HELP_MON_EXIT, ) + #undef HELPER #undef OPTIMIZEFORSPEED diff --git a/lib/coreclr/src/inc/regdisp.h b/lib/coreclr/src/inc/regdisp.h index eb84fdfa1482..7875edf65336 100644 --- a/lib/coreclr/src/inc/regdisp.h +++ b/lib/coreclr/src/inc/regdisp.h @@ -147,7 +147,7 @@ inline TADDR GetRegdisplayStackMark(REGDISPLAY *display) { #endif } -#elif defined(_WIN64) +#elif defined(_TARGET_64BIT_) #if defined(_TARGET_ARM64_) typedef struct _Arm64VolatileContextPointer @@ -250,7 +250,7 @@ struct REGDISPLAY : public REGDISPLAY_BASE { ArmVolatileContextPointer volatileCurrContextPointers; DWORD * pPC; // processor neutral name - +#ifndef CROSSGEN_COMPILE REGDISPLAY() { // Initialize regdisplay @@ -259,6 +259,10 @@ struct REGDISPLAY : public REGDISPLAY_BASE { // Setup the pointer to ControlPC field pPC = &ControlPC; } +#else +private: + REGDISPLAY(); +#endif }; // This function tells us if the given stack pointer is in one of the frames of the functions called by the given frame @@ -278,7 +282,7 @@ inline TADDR GetRegdisplayStackMark(REGDISPLAY *display) { #error "RegDisplay functions are not implemented on this platform." #endif -#if defined(_WIN64) || defined(_TARGET_ARM_) || (defined(_TARGET_X86_) && defined(WIN64EXCEPTIONS)) +#if defined(_TARGET_64BIT_) || defined(_TARGET_ARM_) || (defined(_TARGET_X86_) && defined(WIN64EXCEPTIONS)) // This needs to be implemented for platforms that have funclets. inline LPVOID GetRegdisplayReturnValue(REGDISPLAY *display) { @@ -289,7 +293,7 @@ inline LPVOID GetRegdisplayReturnValue(REGDISPLAY *display) #elif defined(_TARGET_ARM64_) return (LPVOID)display->pCurrentContext->X0; #elif defined(_TARGET_ARM_) - return (LPVOID)display->pCurrentContext->R0; + return (LPVOID)((TADDR)display->pCurrentContext->R0); #elif defined(_TARGET_X86_) return (LPVOID)display->pCurrentContext->Eax; #else @@ -302,24 +306,24 @@ inline void SyncRegDisplayToCurrentContext(REGDISPLAY* pRD) { LIMITED_METHOD_CONTRACT; -#if defined(_WIN64) +#if defined(_TARGET_64BIT_) pRD->SP = (INT_PTR)GetSP(pRD->pCurrentContext); pRD->ControlPC = INT_PTR(GetIP(pRD->pCurrentContext)); -#elif defined(_TARGET_ARM_) // _WIN64 +#elif defined(_TARGET_ARM_) pRD->SP = (DWORD)GetSP(pRD->pCurrentContext); pRD->ControlPC = (DWORD)GetIP(pRD->pCurrentContext); -#elif defined(_TARGET_X86_) // _TARGET_ARM_ +#elif defined(_TARGET_X86_) pRD->SP = (DWORD)GetSP(pRD->pCurrentContext); pRD->ControlPC = (DWORD)GetIP(pRD->pCurrentContext); #else // _TARGET_X86_ PORTABILITY_ASSERT("SyncRegDisplayToCurrentContext"); -#endif // _TARGET_ARM_ || _TARGET_X86_ +#endif #ifdef DEBUG_REGDISPLAY CheckRegDisplaySP(pRD); #endif // DEBUG_REGDISPLAY } -#endif // _WIN64 || _TARGET_ARM_ || (_TARGET_X86_ && WIN64EXCEPTIONS) +#endif // _TARGET_64BIT_ || _TARGET_ARM_ || (_TARGET_X86_ && WIN64EXCEPTIONS) typedef REGDISPLAY *PREGDISPLAY; @@ -406,9 +410,20 @@ inline void FillRegDisplay(const PREGDISPLAY pRD, PT_CONTEXT pctx, PT_CONTEXT pC FillContextPointers(&pRD->ctxPtrsOne, pctx); #if defined(_TARGET_ARM_) + // Fill volatile context pointers. They can be used by GC in the case of the leaf frame + pRD->volatileCurrContextPointers.R0 = &pctx->R0; + pRD->volatileCurrContextPointers.R1 = &pctx->R1; + pRD->volatileCurrContextPointers.R2 = &pctx->R2; + pRD->volatileCurrContextPointers.R3 = &pctx->R3; + pRD->volatileCurrContextPointers.R12 = &pctx->R12; + pRD->ctxPtrsOne.Lr = &pctx->Lr; pRD->pPC = &pRD->pCurrentContext->Pc; -#endif // _TARGET_ARM_ +#elif defined(_TARGET_ARM64_) // _TARGET_ARM_ + // Fill volatile context pointers. They can be used by GC in the case of the leaf frame + for (int i=0; i < 18; i++) + pRD->volatileCurrContextPointers.X[i] = &pctx->X[i]; +#endif // _TARGET_ARM64_ #ifdef DEBUG_REGDISPLAY pRD->_pThread = NULL; diff --git a/lib/coreclr/src/inc/registrywrapper.h b/lib/coreclr/src/inc/registrywrapper.h index 6b284506bb96..0fbeee2356cb 100644 --- a/lib/coreclr/src/inc/registrywrapper.h +++ b/lib/coreclr/src/inc/registrywrapper.h @@ -4,7 +4,7 @@ //***************************************************************************** // File: registrywrapper.h // -// Wrapper around Win32 Registry Functions allowing redirection of .Net +// Wrapper around Win32 Registry Functions allowing redirection of .NET // Framework root registry location // //***************************************************************************** diff --git a/lib/coreclr/src/inc/safemath.h b/lib/coreclr/src/inc/safemath.h index 073c998548fd..473e8467af13 100644 --- a/lib/coreclr/src/inc/safemath.h +++ b/lib/coreclr/src/inc/safemath.h @@ -22,7 +22,7 @@ #define _ASSERTE_SAFEMATH _ASSERTE #else // Otherwise (eg. we're being used from a tool like SOS) there isn't much -// we can rely on that is both available everywhere and rotor-safe. In +// we can rely on that is available everywhere. In // several other tools we just take the recourse of disabling asserts, // we'll do the same here. // Ideally we'd have a collection of common utilities available evererywhere. @@ -855,18 +855,4 @@ typedef ClrSafeInt S_UINT16; typedef ClrSafeInt S_UINT64; typedef ClrSafeInt S_SIZE_T; -// Note: we can get bogus /Wp64 compiler warnings when S_SIZE_T is used. -// This is due to VSWhidbey 138322 which the C++ folks have said they can't -// currently fix. We can work around the problem by using this macro to force -// a no-op cast on 32-bit MSVC platforms. It's not yet clear why we need to -// use this in some places (specifically, rotor lkgvc builds) and not others. -// We also make the error less likely by using a #define instead of a -// typedef for S_UINT32 above since that means we're less likely to instantiate -// ClrSafeInt AND ClrSafeInt in the same compliation unit. -#if defined(_TARGET_X86_) && defined( _MSC_VER ) -#define S_SIZE_T_WP64BUG(v) S_SIZE_T( static_cast( v ) ) -#else -#define S_SIZE_T_WP64BUG(v) S_SIZE_T( v ) -#endif - #endif // SAFEMATH_H_ diff --git a/lib/coreclr/src/inc/sarray.inl b/lib/coreclr/src/inc/sarray.inl index d7e396c9baa6..102b3c578a2b 100644 --- a/lib/coreclr/src/inc/sarray.inl +++ b/lib/coreclr/src/inc/sarray.inl @@ -62,7 +62,6 @@ SArray::~SArray() CONTRACTL { NOTHROW; - SO_TOLERANT; GC_NOTRIGGER; } CONTRACTL_END; diff --git a/lib/coreclr/src/inc/sbuffer.inl b/lib/coreclr/src/inc/sbuffer.inl index 96be7a5665a4..30c93c831e95 100644 --- a/lib/coreclr/src/inc/sbuffer.inl +++ b/lib/coreclr/src/inc/sbuffer.inl @@ -156,7 +156,6 @@ inline SBuffer::SBuffer(ImmutableFlag immutable, const BYTE *buffer, COUNT_T siz POSTCONDITION(Equals(buffer, size)); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; SUPPORTS_DAC_HOST_ONLY; } CONTRACT_END; @@ -174,13 +173,10 @@ inline SBuffer::~SBuffer() { NOTHROW; DESTRUCTOR_CHECK; - SO_TOLERANT; GC_NOTRIGGER; - SO_TOLERANT; SUPPORTS_DAC_HOST_ONLY; } CONTRACT_END; - VALIDATE_BACKOUT_STACK_CONSUMPTION; if (IsAllocated()) { @@ -337,7 +333,6 @@ inline COUNT_T SBuffer::GetAllocation() const INSTANCE_CHECK; NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; SUPPORTS_DAC; } CONTRACT_END; @@ -669,7 +664,6 @@ inline BOOL SBuffer::Equals(const SBuffer &compare) const PRECONDITION(compare.Check()); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; } CONTRACT_END; @@ -685,7 +679,6 @@ inline BOOL SBuffer::Equals(const BYTE *compare, COUNT_T size) const PRECONDITION(CheckSize(size)); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; } CONTRACT_END; @@ -855,7 +848,6 @@ inline void SBuffer::TweakSize(COUNT_T size) POSTCONDITION(GetSize() == size); POSTCONDITION(CheckInvariant(*this)); NOTHROW; - SO_TOLERANT; GC_NOTRIGGER; SUPPORTS_DAC_HOST_ONLY; } @@ -1014,14 +1006,11 @@ inline void SBuffer::DeleteBuffer(BYTE *buffer, COUNT_T allocation) { PRECONDITION(CheckSize(allocation)); POSTCONDITION(CheckPointer(buffer)); - SO_TOLERANT; NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; SUPPORTS_DAC_HOST_ONLY; } CONTRACT_END; - VALIDATE_BACKOUT_STACK_CONSUMPTION; CONSISTENCY_CHECK(CheckBuffer(buffer, allocation)); @@ -1048,7 +1037,6 @@ inline CHECK SBuffer::CheckBuffer(const BYTE *buffer, COUNT_T allocation) const { NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; CANNOT_TAKE_LOCK; PRECONDITION(CheckPointer(buffer)); } @@ -1362,7 +1350,6 @@ inline void SBuffer::SetRepresentationField(int value) PRECONDITION((value & ~REPRESENTATION_MASK) == 0); NOTHROW; GC_NOTRIGGER; - SO_TOLERANT; SUPPORTS_DAC_HOST_ONLY; } CONTRACT_END; diff --git a/lib/coreclr/src/inc/securitywrapper.h b/lib/coreclr/src/inc/securitywrapper.h index a14d90a9224b..1dad3a6cf503 100644 --- a/lib/coreclr/src/inc/securitywrapper.h +++ b/lib/coreclr/src/inc/securitywrapper.h @@ -12,7 +12,9 @@ #ifndef _SECURITY_WRAPPER_H #define _SECURITY_WRAPPER_H -// This file should not even be included on Rotor. +#ifdef FEATURE_PAL +#error This file should not be included on non-Windows platforms. +#endif //----------------------------------------------------------------------------- // Wrapper around a PSID. @@ -60,8 +62,6 @@ class SidBuffer BYTE * m_pBuffer; }; -#ifndef FEATURE_PAL - //----------------------------------------------------------------------------- // Access Control List. //----------------------------------------------------------------------------- @@ -99,13 +99,5 @@ class Win32SecurityDescriptor PSECURITY_DESCRIPTOR m_pDesc; }; -#endif // FEATURE_PAL - -//----------------------------------------------------------------------------- -// Check if the handle owner belongs to either the process specified by the pid -// or the current process. This lets us know if the handle is spoofed. -//----------------------------------------------------------------------------- -bool IsHandleSpoofed(HANDLE handle, DWORD pid); - #endif // _SECURITY_WRAPPER_H diff --git a/lib/coreclr/src/inc/shash.h b/lib/coreclr/src/inc/shash.h index 1650ca15b424..05a8a9d1e078 100644 --- a/lib/coreclr/src/inc/shash.h +++ b/lib/coreclr/src/inc/shash.h @@ -117,8 +117,8 @@ class DefaultSHashTraits static const bool s_supports_remove = true; - static const ELEMENT Null() { return (const ELEMENT) 0; } - static const ELEMENT Deleted() { return (const ELEMENT) -1; } + static ELEMENT Null() { return (const ELEMENT) 0; } + static ELEMENT Deleted() { return (const ELEMENT) -1; } static bool IsNull(const ELEMENT &e) { return e == (const ELEMENT) 0; } static bool IsDeleted(const ELEMENT &e) { return e == (const ELEMENT) -1; } @@ -612,7 +612,7 @@ class NoRemoveSHashTraits : public PARENT typedef typename PARENT::count_t count_t; static const bool s_supports_remove = false; - static const element_t Deleted() { UNREACHABLE(); } + static element_t Deleted() { UNREACHABLE(); } static bool IsDeleted(const element_t &e) { LIMITED_METHOD_DAC_CONTRACT; return false; } }; diff --git a/lib/coreclr/src/inc/shash.inl b/lib/coreclr/src/inc/shash.inl index f48899a58802..c43e91f0edbc 100644 --- a/lib/coreclr/src/inc/shash.inl +++ b/lib/coreclr/src/inc/shash.inl @@ -227,6 +227,14 @@ void SHash::RemoveAll() } CONTRACT_END; + if (TRAITS::s_DestructPerEntryCleanupAction) + { + for (Iterator i = Begin(); i != End(); i++) + { + TRAITS::OnDestructPerEntryCleanupAction(*i); + } + } + delete [] m_table; m_table = NULL; @@ -403,7 +411,7 @@ SHash::AllocateNewTable(count_t requestedSize, count_t * pcNewTableSize) GC_NOTRIGGER; INSTANCE_CHECK; PRECONDITION(requestedSize >= - (count_t) (GetCount() * s_density_factor_denominator / s_density_factor_numerator)); + (count_t) (GetCount() * TRAITS::s_density_factor_denominator / TRAITS::s_density_factor_numerator)); } CONTRACT_END; @@ -434,7 +442,7 @@ SHash::ReplaceTable(element_t * newTable, count_t newTableSize) GC_NOTRIGGER; INSTANCE_CHECK; PRECONDITION(newTableSize >= - (count_t) (GetCount() * s_density_factor_denominator / s_density_factor_numerator)); + (count_t) (GetCount() * TRAITS::s_density_factor_denominator / TRAITS::s_density_factor_numerator)); } CONTRACT_END; diff --git a/lib/coreclr/src/inc/slist.h b/lib/coreclr/src/inc/slist.h index 2b81f9ba902b..f05d763dc650 100644 --- a/lib/coreclr/src/inc/slist.h +++ b/lib/coreclr/src/inc/slist.h @@ -20,7 +20,7 @@ //----------------------------------------------------------------------------- //#ifndef _H_UTIL -//#error I am a part of util.hpp Please don't include me alone ! +//#error "I am a part of util.hpp Please don't include me alone !" //#endif @@ -136,14 +136,14 @@ class SList } else { -#ifdef __GNUC__ - // GCC defines offsetof to be __builtin_offsetof, which doesn't use the +#if 1 + // Newer compilers define offsetof to be __builtin_offsetof, which doesn't use the // old-school memory model trick to determine offset. const UINT_PTR offset = (((UINT_PTR)&(((T *)0x1000)->*LinkPtr))-0x1000); return (T*)__PTR(dac_cast(pLink) - offset); #else - return (T*)__PTR(dac_cast(pLink) - offsetof(T, *LinkPtr)); -#endif // __GNUC__ + return (T*)__PTR(dac_cast(pLink) - offsetof(T, *LinkPtr)); +#endif } } diff --git a/lib/coreclr/src/inc/sospriv.idl b/lib/coreclr/src/inc/sospriv.idl index 5b718210d756..589642675f7b 100644 --- a/lib/coreclr/src/inc/sospriv.idl +++ b/lib/coreclr/src/inc/sospriv.idl @@ -367,3 +367,13 @@ interface ISOSDacInterface5 : IUnknown { HRESULT GetTieredVersions(CLRDATA_ADDRESS methodDesc, int rejitId, struct DacpTieredVersionData *nativeCodeAddrs, int cNativeCodeAddrs, int *pcNativeCodeAddrs); }; + +[ + object, + local, + uuid(11206399-4B66-4EDB-98EA-85654E59AD45) +] +interface ISOSDacInterface6 : IUnknown +{ + HRESULT GetMethodTableFieldData(CLRDATA_ADDRESS mt, struct DacpMethodTableFieldData *data); +}; diff --git a/lib/coreclr/src/inc/sstring.h b/lib/coreclr/src/inc/sstring.h index bfbaa8142981..a37070d533fd 100644 --- a/lib/coreclr/src/inc/sstring.h +++ b/lib/coreclr/src/inc/sstring.h @@ -125,9 +125,6 @@ class SString : private SBuffer enum tagUTF8 { Utf8 }; enum tagANSI { Ansi }; enum tagASCII {Ascii }; -#ifdef SSTRING_CONSOLECODEPAGE - enum tagCONSOLE { Console }; -#endif static void Startup(); static CHECK CheckStartup(); @@ -151,10 +148,6 @@ class SString : private SBuffer SString(enum tagUTF8 dummytag, const UTF8 *string, COUNT_T count); SString(enum tagANSI dummytag, const ANSI *string); SString(enum tagANSI dummytag, const ANSI *string, COUNT_T count); -#ifdef SSTRING_CONSOLECODEPAGE - SString(enum tagCONSOLE dummytag, const CONSOLE *string); - SString(enum tagCONSOLE dummytag, const CONSOLE *string, COUNT_T count); -#endif SString(WCHAR character); // NOTE: Literals MUST be read-only never-freed strings. @@ -180,9 +173,6 @@ class SString : private SBuffer void SetASCII(const ASCII *string); void SetUTF8(const UTF8 *string); void SetANSI(const ANSI *string); -#ifdef SSTRING_CONSOLECODEPAGE - void SetConsole(const CONSOLE *string); -#endif // Set this string to a copy of the first count chars of the given string void Set(const WCHAR *string, COUNT_T count); @@ -195,9 +185,6 @@ class SString : private SBuffer void SetUTF8(const UTF8 *string, COUNT_T count); void SetANSI(const ANSI *string, COUNT_T count); -#ifdef SSTRING_CONSOLECODEPAGE - void SetConsole(const CONSOLE *string, COUNT_T count); -#endif // Set this string to the unicode character void Set(WCHAR character); @@ -241,31 +228,26 @@ class SString : private SBuffer // Compute a content-based hash value ULONG Hash() const; ULONG HashCaseInsensitive() const; - ULONG HashCaseInsensitive(LocaleID locale) const; // Do a string comparison. Return 0 if the strings // have the same value, -1 if this is "less than" s, or 1 if // this is "greater than" s. int Compare(const SString &s) const; int CompareCaseInsensitive(const SString &s) const; // invariant locale - int CompareCaseInsensitive(const SString &s, LocaleID locale) const; // Do a case sensitive string comparison. Return TRUE if the strings // have the same value FALSE if not. BOOL Equals(const SString &s) const; BOOL EqualsCaseInsensitive(const SString &s) const; // invariant locale - BOOL EqualsCaseInsensitive(const SString &s, LocaleID locale) const; // Match s to a portion of the string starting at the position. // Return TRUE if the strings have the same value // (regardless of representation), FALSE if not. BOOL Match(const CIterator &i, const SString &s) const; BOOL MatchCaseInsensitive(const CIterator &i, const SString &s) const; // invariant locale - BOOL MatchCaseInsensitive(const CIterator &i, const SString &s, LocaleID locale) const; BOOL Match(const CIterator &i, WCHAR c) const; BOOL MatchCaseInsensitive(const CIterator &i, WCHAR c) const; // invariant locale - BOOL MatchCaseInsensitive(const CIterator &i, WCHAR c, LocaleID locale) const; // Like match, but advances the iterator past the match // if successful @@ -292,12 +274,10 @@ class SString : private SBuffer // Returns TRUE if this string begins with the contents of s BOOL BeginsWith(const SString &s) const; BOOL BeginsWithCaseInsensitive(const SString &s) const; // invariant locale - BOOL BeginsWithCaseInsensitive(const SString &s, LocaleID locale) const; // Returns TRUE if this string ends with the contents of s BOOL EndsWith(const SString &s) const; BOOL EndsWithCaseInsensitive(const SString &s) const; // invariant locale - BOOL EndsWithCaseInsensitive(const SString &s, LocaleID locale) const; // Sets this string to an empty string "". void Clear(); @@ -572,9 +552,6 @@ class SString : private SBuffer const UTF8 *GetUTF8(AbstractScratchBuffer &scratch) const; const UTF8 *GetUTF8(AbstractScratchBuffer &scratch, COUNT_T *pcbUtf8) const; const ANSI *GetANSI(AbstractScratchBuffer &scratch) const; -#ifdef SSTRING_CONSOLECODEPAGE - const CONSOLE *GetConsole(AbstractScratchBuffer &scratch) const; -#endif // Used when the representation is known, throws if the representation doesn't match const UTF8 *GetUTF8NoConvert() const; @@ -583,9 +560,6 @@ class SString : private SBuffer void ConvertToUnicode(SString &dest) const; void ConvertToANSI(SString &dest) const; COUNT_T ConvertToUTF8(SString &dest) const; -#ifdef SSTRING_CONSOLECODEPAGE - void ConvertToConsole(SString &dest) const; -#endif //------------------------------------------------------------------- // Accessing the string contents directly @@ -674,7 +648,7 @@ class SString : private SBuffer // WARNING: The MBCS version of printf function are factory for globalization // issues when used to format Unicode strings (%S). The Unicode versions are - // preffered in this case. + // preferred in this case. void Printf(const CHAR *format, ...); void VPrintf(const CHAR *format, va_list args); @@ -761,22 +735,14 @@ class SString : private SBuffer SString(void *buffer, COUNT_T size); private: - static int CaseCompareHelperA(const CHAR *buffer1, const CHAR *buffer2, COUNT_T count, LocaleID lcid, BOOL stopOnNull, BOOL stopOnCount); - static int CaseCompareHelper(const WCHAR *buffer1, const WCHAR *buffer2, COUNT_T count, LocaleID lcid, BOOL stopOnNull, BOOL stopOnCount); + static int CaseCompareHelperA(const CHAR *buffer1, const CHAR *buffer2, COUNT_T count, BOOL stopOnNull, BOOL stopOnCount); + static int CaseCompareHelper(const WCHAR *buffer1, const WCHAR *buffer2, COUNT_T count, BOOL stopOnNull, BOOL stopOnCount); // Internal helpers: static const BYTE s_EmptyBuffer[2]; static UINT s_ACP; - SVAL_DECL(BOOL, s_IsANSIMultibyte); - -#ifdef SSTRING_CONSOLECODEPAGE - static UINT s_ConsoleCP; - static BOOL s_IsConsoleMultibyte; -#endif - - const static LocaleID s_defaultLCID; SPTR_DECL(SString,s_Empty); @@ -787,9 +753,6 @@ class SString : private SBuffer UTF8 *GetRawUTF8() const; ANSI *GetRawANSI() const; WCHAR *GetRawUnicode() const; -#ifdef SSTRING_CONSOLECODEPAGE - CONSOLE *GetRawConsole() const; -#endif void InitEmpty(); @@ -952,22 +915,6 @@ class InlineSString : public SString SetANSI(string, count); } -#ifdef SSTRING_CONSOLECODEPAGE - FORCEINLINE InlineSString(enum tagCONSOLE dummytag, const CONSOLE *string) - : SString(m_inline, SBUFFER_PADDED_SIZE(MEMSIZE)) - { - WRAPPER_NO_CONTRACT; - SetCONSOLE(string); - } - - FORCEINLINE InlineSString(enum tagCONSOLE dummytag, const CONSOLE *string, COUNT_T count) - : SString(m_inline, SBUFFER_PADDED_SIZE(MEMSIZE)) - { - WRAPPER_NO_CONTRACT; - SetCONSOLE(string, count); - } -#endif - FORCEINLINE InlineSString(WCHAR character) : SString(m_inline, SBUFFER_PADDED_SIZE(MEMSIZE)) { diff --git a/lib/coreclr/src/inc/sstring.inl b/lib/coreclr/src/inc/sstring.inl index 88139ad0cc6a..3bf84443bd39 100644 --- a/lib/coreclr/src/inc/sstring.inl +++ b/lib/coreclr/src/inc/sstring.inl @@ -58,7 +58,6 @@ inline SString::SString() CONSTRUCTOR_CHECK; POSTCONDITION(IsEmpty()); NOTHROW; - SO_TOLERANT; GC_NOTRIGGER; } CONTRACT_END; @@ -66,7 +65,6 @@ inline SString::SString() RETURN; #else STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_GC_NOTRIGGER; STATIC_CONTRACT_SUPPORTS_DAC_HOST_ONLY; #endif @@ -621,7 +619,6 @@ inline const SString &SString::Empty() NOTHROW; GC_NOTRIGGER; CANNOT_TAKE_LOCK; - SO_TOLERANT; SUPPORTS_DAC; } CONTRACTL_END; @@ -629,7 +626,6 @@ inline const SString &SString::Empty() STATIC_CONTRACT_NOTHROW; STATIC_CONTRACT_GC_NOTRIGGER; STATIC_CONTRACT_CANNOT_TAKE_LOCK; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_SUPPORTS_DAC; #endif @@ -810,7 +806,7 @@ inline void SString::AppendUTF8(const CHAR c) /* static */ inline int __cdecl SString::_stricmp(const CHAR *buffer1, const CHAR *buffer2) { WRAPPER_NO_CONTRACT; - int returnValue = CaseCompareHelperA(buffer1, buffer2, 0, s_defaultLCID, TRUE, FALSE); + int returnValue = CaseCompareHelperA(buffer1, buffer2, 0, TRUE, FALSE); #ifdef VERIFY_CRT_EQUIVALNCE _ASSERTE((returnValue == 0) == (::_stricmp(buffer1, buffer2) == 0)); #endif @@ -821,7 +817,7 @@ inline int __cdecl SString::_stricmp(const CHAR *buffer1, const CHAR *buffer2) { /* static */ inline int __cdecl SString::_strnicmp(const CHAR *buffer1, const CHAR *buffer2, COUNT_T count) { WRAPPER_NO_CONTRACT; - int returnValue = CaseCompareHelperA(buffer1, buffer2, count, s_defaultLCID, TRUE, TRUE); + int returnValue = CaseCompareHelperA(buffer1, buffer2, count, TRUE, TRUE); #ifdef VERIFY_CRT_EQUIVALNCE _ASSERTE((returnValue == 0) == (::_strnicmp(buffer1, buffer2, count) == 0)); #endif @@ -831,7 +827,7 @@ inline int __cdecl SString::_strnicmp(const CHAR *buffer1, const CHAR *buffer2, /* static */ inline int __cdecl SString::_wcsicmp(const WCHAR *buffer1, const WCHAR *buffer2) { WRAPPER_NO_CONTRACT; - int returnValue = CaseCompareHelper(buffer1, buffer2, 0, s_defaultLCID, TRUE, FALSE); + int returnValue = CaseCompareHelper(buffer1, buffer2, 0, TRUE, FALSE); #ifdef VERIFY_CRT_EQUIVALNCE _ASSERTE((returnValue == 0) == (::_wcsicmp(buffer1, buffer2) == 0)); #endif @@ -842,7 +838,7 @@ inline int __cdecl SString::_wcsicmp(const WCHAR *buffer1, const WCHAR *buffer2) /* static */ inline int __cdecl SString::_wcsnicmp(const WCHAR *buffer1, const WCHAR *buffer2, COUNT_T count) { WRAPPER_NO_CONTRACT; - int returnValue = CaseCompareHelper(buffer1, buffer2, count, s_defaultLCID, TRUE, TRUE); + int returnValue = CaseCompareHelper(buffer1, buffer2, count, TRUE, TRUE); #ifdef VERIFY_CRT_EQUIVALNCE _ASSERTE((returnValue == 0) == (::_wcsnicmp(buffer1, buffer2, count) == 0)); #endif @@ -869,36 +865,6 @@ inline int SString::_tstrnicmp(const WCHAR *buffer1, const WCHAR *buffer2, COUNT return _wcsnicmp(buffer1, buffer2, count); } -inline ULONG SString::HashCaseInsensitive() const -{ - WRAPPER_NO_CONTRACT; - return HashCaseInsensitive(s_defaultLCID); -} - -inline int SString::CompareCaseInsensitive(const SString &s) const -{ - WRAPPER_NO_CONTRACT; - return CompareCaseInsensitive(s, s_defaultLCID); -} - -inline BOOL SString::EqualsCaseInsensitive(const SString &s) const -{ - WRAPPER_NO_CONTRACT; - return EqualsCaseInsensitive(s, s_defaultLCID); -} - -inline BOOL SString::MatchCaseInsensitive(const CIterator &i, const SString &s) const -{ - WRAPPER_NO_CONTRACT; - return MatchCaseInsensitive(i, s, s_defaultLCID); -} - -inline BOOL SString::MatchCaseInsensitive(const CIterator &i, WCHAR c) const -{ - WRAPPER_NO_CONTRACT; - return MatchCaseInsensitive(i, c, s_defaultLCID); -} - inline BOOL SString::Match(const CIterator &i, WCHAR c) const { SS_CONTRACT(BOOL) @@ -1183,7 +1149,6 @@ inline BOOL SString::IsEmpty() const GC_NOTRIGGER; PRECONDITION(CheckPointer(this)); NOTHROW; - SO_TOLERANT; SUPPORTS_DAC; } SS_CONTRACT_END; @@ -1199,7 +1164,6 @@ inline BOOL SString::IsASCII() const GC_NOTRIGGER; PRECONDITION(CheckPointer(this)); NOTHROW; - SO_TOLERANT; } SS_CONTRACT_END; @@ -1460,7 +1424,7 @@ inline BOOL SString::IsFixedSize() const STATIC_CONTRACT_SUPPORTS_DAC; if (GetRepresentation()&REPRESENTATION_VARIABLE_MASK) - return ((GetRepresentation() == REPRESENTATION_ANSI) && !s_IsANSIMultibyte); + return FALSE; else return TRUE; } @@ -1519,7 +1483,6 @@ inline COUNT_T SString::SizeToCount(COUNT_T size) const PRECONDITION(CheckSize(size)); SS_POSTCONDITION(CountToSize(RETVAL) == size); NOTHROW; - SO_TOLERANT; SUPPORTS_DAC; } SS_CONTRACT_END; @@ -1536,7 +1499,6 @@ inline COUNT_T SString::GetBufferSizeInCharIncludeNullChar() const { STATIC_CONTRACT_GC_NOTRIGGER; STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_SO_TOLERANT; STATIC_CONTRACT_SUPPORTS_DAC; return (GetSize() >> GetCharacterSizeShift()); @@ -1594,20 +1556,11 @@ inline CHECK SString::CheckCount(COUNT_T count) inline CHECK SString::CheckRepresentation(int representation) { CANNOT_HAVE_CONTRACT; -#ifdef SSTRING_CONSOLECODEPAGE - CHECK(representation == REPRESENTATION_EMPTY - || representation == REPRESENTATION_UNICODE - || representation == REPRESENTATION_ASCII - || representation == REPRESENTATION_UTF8 - || representation == REPRESENTATION_ANSI - || representation == REPRESENTATION_CONSOLE); -#else CHECK(representation == REPRESENTATION_EMPTY || representation == REPRESENTATION_UNICODE || representation == REPRESENTATION_ASCII || representation == REPRESENTATION_UTF8 || representation == REPRESENTATION_ANSI); -#endif CHECK((representation & REPRESENTATION_MASK) == representation); CHECK_OK; diff --git a/lib/coreclr/src/inc/staticcontract.h b/lib/coreclr/src/inc/staticcontract.h index 09e765c3d3aa..4cf7f4a92ae8 100644 --- a/lib/coreclr/src/inc/staticcontract.h +++ b/lib/coreclr/src/inc/staticcontract.h @@ -15,6 +15,14 @@ #define SCAN_WIDEN2(x) L ## x #define SCAN_WIDEN(x) SCAN_WIDEN2(x) +#ifndef NOINLINE +#if __GNUC__ +#define NOINLINE __attribute__((noinline)) +#else +#define NOINLINE __declspec(noinline) +#endif +#endif + // // PDB annotations for the static contract analysis tool. These are seperated // from Contract.h to allow their inclusion in any part of the system. @@ -51,7 +59,6 @@ #define ANNOTATION_IGNORE_LOCK __annotation(W("CAN_TAKE_LOCK"), W("CANNOT_TAKE_LOCK"), W("CONDITIONAL_EXEMPT")) #define ANNOTATION_IGNORE_FAULT __annotation(W("FAULT"), W("FORBID_FAULT"), W("CONDITIONAL_EXEMPT")) #define ANNOTATION_IGNORE_TRIGGER __annotation(W("GC_TRIGGERS"), W("GC_NOTRIGGER"), W("CONDITIONAL_EXEMPT")) -#define ANNOTATION_IGNORE_SO __annotation(W("SO_TOLERANT"), W("SO_INTOLERANT"), W("CONDITIONAL_EXEMPT")) #define ANNOTATION_VIOLATION(violationmask) __annotation(W("VIOLATION(") L#violationmask W(")")) #define ANNOTATION_UNCHECKED(thecheck) __annotation(W("UNCHECKED(") L#thecheck W(")")) @@ -84,9 +91,6 @@ #define ANNOTATION_FN_FORBID_FAULT __annotation(W("FORBID_FAULT ") SCAN_WIDEN(__FUNCTION__)) #define ANNOTATION_FN_GC_TRIGGERS __annotation(W("GC_TRIGGERS ") SCAN_WIDEN(__FUNCTION__)) #define ANNOTATION_FN_GC_NOTRIGGER __annotation(W("GC_NOTRIGGER ") SCAN_WIDEN(__FUNCTION__)) -#define ANNOTATION_FN_SO_TOLERANT __annotation(W("SO_TOLERANT ") SCAN_WIDEN(__FUNCTION__)) -#define ANNOTATION_FN_SO_INTOLERANT __annotation(W("SO_INTOLERANT ") SCAN_WIDEN(__FUNCTION__)) -#define ANNOTATION_FN_SO_NOT_MAINLINE __annotation(W("SO_NOT_MAINLINE ") SCAN_WIDEN(__FUNCTION__)) #define ANNOTATION_FN_MODE_COOPERATIVE __annotation(W("MODE_COOPERATIVE ") SCAN_WIDEN(__FUNCTION__)) #define ANNOTATION_FN_MODE_PREEMPTIVE __annotation(W("MODE_PREEMPTIVE ") SCAN_WIDEN(__FUNCTION__)) #define ANNOTATION_FN_MODE_ANY __annotation(W("MODE_ANY ") SCAN_WIDEN(__FUNCTION__)) @@ -126,7 +130,6 @@ #define ANNOTATION_IGNORE_LOCK { } #define ANNOTATION_IGNORE_FAULT { } #define ANNOTATION_IGNORE_TRIGGER { } -#define ANNOTATION_IGNORE_SO { } #define ANNOTATION_VIOLATION(violationmask) { } #define ANNOTATION_UNCHECKED(thecheck) { } @@ -150,9 +153,6 @@ #define ANNOTATION_FN_FORBID_FAULT { } #define ANNOTATION_FN_GC_TRIGGERS { } #define ANNOTATION_FN_GC_NOTRIGGER { } -#define ANNOTATION_FN_SO_TOLERANT { } -#define ANNOTATION_FN_SO_INTOLERANT { } -#define ANNOTATION_FN_SO_NOT_MAINLINE { } #define ANNOTATION_FN_MODE_COOPERATIVE { } #define ANNOTATION_FN_MODE_PREEMPTIVE { } #define ANNOTATION_FN_MODE_ANY { } @@ -165,11 +165,6 @@ #define ANNOTATION_SO_PROBE_BEGIN(probeAmount) { } #define ANNOTATION_SO_PROBE_END { } -#define ANNOTATION_SO_TOLERANT { } -#define ANNOTATION_SO_INTOLERANT { } -#define ANNOTATION_SO_NOT_MAINLINE { } -#define ANNOTATION_SO_NOT_MAINLINE_BEGIN { } -#define ANNOTATION_SO_NOT_MAINLINE_END { } #define ANNOTATION_ENTRY_POINT { } #ifdef _DEBUG #define ANNOTATION_DEBUG_ONLY { } @@ -198,25 +193,13 @@ #define STATIC_CONTRACT_LIMITED_METHOD ANNOTATION_FN_LEAF #define STATIC_CONTRACT_WRAPPER ANNOTATION_FN_WRAPPER -#ifdef FEATURE_STACK_PROBE // Static SO contracts only required when SO Infrastructure code is present -#define STATIC_CONTRACT_SO_INTOLERANT ANNOTATION_FN_SO_INTOLERANT -#define STATIC_CONTRACT_SO_TOLERANT ANNOTATION_FN_SO_TOLERANT -#define STATIC_CONTRACT_SO_NOT_MAINLINE ANNOTATION_FN_SO_NOT_MAINLINE - -#define STATIC_CONTRACT_ENTRY_POINT ANNOTATION_ENTRY_POINT; ANNOTATION_FN_SO_TOLERANT -#else // FEATURE_STACK_PROBE -#define STATIC_CONTRACT_SO_INTOLERANT -#define STATIC_CONTRACT_SO_TOLERANT -#define STATIC_CONTRACT_SO_NOT_MAINLINE #define STATIC_CONTRACT_ENTRY_POINT -#endif // FEATURE_STACK_PROBE #ifdef _DEBUG #define STATIC_CONTRACT_DEBUG_ONLY \ ANNOTATION_DEBUG_ONLY; \ STATIC_CONTRACT_CANNOT_TAKE_LOCK; \ - ANNOTATION_VIOLATION(TakesLockViolation); \ - ANNOTATION_FN_SO_NOT_MAINLINE; + ANNOTATION_VIOLATION(TakesLockViolation); #else #define STATIC_CONTRACT_DEBUG_ONLY #endif @@ -236,12 +219,11 @@ namespace StaticContract { struct ScanThrowMarkerStandard { - __declspec(noinline) ScanThrowMarkerStandard() + NOINLINE ScanThrowMarkerStandard() { METHOD_CANNOT_BE_FOLDED_DEBUG; STATIC_CONTRACT_THROWS; STATIC_CONTRACT_GC_NOTRIGGER; - STATIC_CONTRACT_SO_TOLERANT; } static void used() @@ -251,7 +233,7 @@ namespace StaticContract struct ScanThrowMarkerTerminal { - __declspec(noinline) ScanThrowMarkerTerminal() + NOINLINE ScanThrowMarkerTerminal() { METHOD_CANNOT_BE_FOLDED_DEBUG; } @@ -263,7 +245,7 @@ namespace StaticContract struct ScanThrowMarkerIgnore { - __declspec(noinline) ScanThrowMarkerIgnore() + NOINLINE ScanThrowMarkerIgnore() { METHOD_CANNOT_BE_FOLDED_DEBUG; } @@ -289,47 +271,16 @@ typedef StaticContract::ScanThrowMarkerStandard ScanThrowMarker; #define STATIC_CONTRACT_THROWS_TERMINAL \ typedef StaticContract::ScanThrowMarkerTerminal ScanThrowMarker; if (0) ScanThrowMarker::used(); -#if defined(_DEBUG) && !defined(DACCESS_COMPILE) && defined(FEATURE_STACK_PROBE) && !defined(_TARGET_ARM_) // @ARMTODO -extern void EnsureSOIntolerantOK(const char *szFunction, const char *szFile, int lineNum); - -extern BOOL (*g_fpShouldValidateSOToleranceOnThisThread)(); - -// @todo Is there any checks we can do here? -#define ENSURE_SHOULD_NOT_PROBE_FOR_SO - -#define CHECK_IF_SO_INTOLERANT_OK \ - EnsureSOIntolerantOK(__FUNCTION__, __FILE__, __LINE__); - -// Even if we can't have a full-blown contract, we can at least check -// if its ok to run an SO-Intolerant function. -#undef STATIC_CONTRACT_SO_INTOLERANT -#define STATIC_CONTRACT_SO_INTOLERANT \ - ANNOTATION_FN_SO_INTOLERANT; \ - CHECK_IF_SO_INTOLERANT_OK; - -#undef STATIC_CONTRACT_SO_NOT_MAINLINE -#define STATIC_CONTRACT_SO_NOT_MAINLINE \ - ENSURE_SHOULD_NOT_PROBE_FOR_SO \ - ANNOTATION_FN_SO_NOT_MAINLINE - -#else -#define EnsureSOIntolerantOK(x,y,z) - -#endif - - #ifdef _MSC_VER #define SCAN_IGNORE_THROW typedef StaticContract::ScanThrowMarkerIgnore ScanThrowMarker; ANNOTATION_IGNORE_THROW #define SCAN_IGNORE_LOCK ANNOTATION_IGNORE_LOCK #define SCAN_IGNORE_FAULT ANNOTATION_IGNORE_FAULT #define SCAN_IGNORE_TRIGGER ANNOTATION_IGNORE_TRIGGER -#define SCAN_IGNORE_SO ANNOTATION_IGNORE_SO #else #define SCAN_IGNORE_THROW #define SCAN_IGNORE_LOCK #define SCAN_IGNORE_FAULT #define SCAN_IGNORE_TRIGGER -#define SCAN_IGNORE_SO #endif @@ -340,21 +291,21 @@ template class BlockMarker { public: - __declspec(noinline) void MarkBlock() + NOINLINE void MarkBlock() { ANNOTATION_MARK_BLOCK_ANNOTATION; METHOD_CANNOT_BE_FOLDED_DEBUG; return; } - __declspec(noinline) void UseMarkedBlockAnnotation() + NOINLINE void UseMarkedBlockAnnotation() { ANNOTATION_USE_BLOCK_ANNOTATION; METHOD_CANNOT_BE_FOLDED_DEBUG; return; } - __declspec(noinline) void EndUseMarkedBlockAnnotation() + NOINLINE void EndUseMarkedBlockAnnotation() { ANNOTATION_END_USE_BLOCK_ANNOTATION; METHOD_CANNOT_BE_FOLDED_DEBUG; diff --git a/lib/coreclr/src/inc/stdmacros.h b/lib/coreclr/src/inc/stdmacros.h index 3ec8bec6f348..6a7f286443b2 100644 --- a/lib/coreclr/src/inc/stdmacros.h +++ b/lib/coreclr/src/inc/stdmacros.h @@ -112,15 +112,19 @@ #define NOT_ARM64_ARG(x) , x #endif +#ifdef _TARGET_64BIT_ +#define LOG2_PTRSIZE 3 +#else +#define LOG2_PTRSIZE 2 +#endif + #ifdef _WIN64 - #define LOG2_PTRSIZE 3 #define INVALID_POINTER_CC 0xcccccccccccccccc #define INVALID_POINTER_CD 0xcdcdcdcdcdcdcdcd #define FMT_ADDR " %08x`%08x " #define LFMT_ADDR W(" %08x`%08x ") #define DBG_ADDR(ptr) (((UINT_PTR) (ptr)) >> 32), (((UINT_PTR) (ptr)) & 0xffffffff) #else // _WIN64 - #define LOG2_PTRSIZE 2 #define INVALID_POINTER_CC 0xcccccccc #define INVALID_POINTER_CD 0xcdcdcdcd #define FMT_ADDR " %08x " @@ -134,7 +138,7 @@ #ifndef ALLOC_ALIGN_CONSTANT -#define ALLOC_ALIGN_CONSTANT ((1<(stringData.GetDataPointer()); + //_ASSERTE(stringData.GetSize() > strlen(*pszString)); + + return hr; + ErrExit: + // Clears output string on error + *pszString = NULL; + return hr; } #ifdef _PREFAST_ diff --git a/lib/coreclr/src/inc/stresslog.h b/lib/coreclr/src/inc/stresslog.h index d109778a65bc..8e509e5f4e1c 100644 --- a/lib/coreclr/src/inc/stresslog.h +++ b/lib/coreclr/src/inc/stresslog.h @@ -17,7 +17,12 @@ /* The log has a very simple structure, and it meant to be dumped from a NTSD extention (eg. strike). There is no memory allocation system calls etc to purtub things */ -/* see the tools/strike/stressdump.cpp for the dumper utility that parses this log */ +// ****************************************************************************** +// WARNING!!!: These classes are used by SOS in the diagnostics repo. Values should +// added or removed in a backwards and forwards compatible way. +// See: https://github.com/dotnet/diagnostics/blob/master/src/inc/stresslog.h +// Parser: https://github.com/dotnet/diagnostics/blob/master/src/SOS/Strike/stressLogDump.cpp +// ****************************************************************************** /*************************************************************************************/ @@ -127,7 +132,7 @@ LOG((facility, level, msg, data1, data2, data3, data4, data5, data6, data7)); \ } while(0) -#define STRESS_LOG_COND0(facility, level, msg) do { \ +#define STRESS_LOG_COND0(facility, level, cond, msg) do { \ if (StressLog::LogOn(facility, level) && (cond)) \ StressLog::LogMsg(level, facility, 0, msg); \ LOG((facility, level, msg)); \ @@ -397,7 +402,7 @@ typedef USHORT static StressLog theLog; // We only have one log, and this is it }; -typedef Holder, HSV_NoValidation> StressLogLockHolder; +typedef Holder> StressLogLockHolder; #if defined(DACCESS_COMPILE) inline BOOL StressLog::LogOn(unsigned facility, unsigned level) diff --git a/lib/coreclr/src/inc/switches.h b/lib/coreclr/src/inc/switches.h index cd404d5c5347..60034602c3e1 100644 --- a/lib/coreclr/src/inc/switches.h +++ b/lib/coreclr/src/inc/switches.h @@ -47,13 +47,6 @@ #if 0 #define APPDOMAIN_STATE - #define BREAK_ON_UNLOAD - #define AD_LOG_MEMORY - #define AD_NO_UNLOAD - #define AD_SNAPSHOT - #define BREAK_META_ACCESS - #define AD_BREAK_ON_CANNOT_UNLOAD - #define BREAK_ON_CLSLOAD // Enable to track details of EESuspension #define TIME_SUSPEND @@ -145,16 +138,6 @@ #endif // _DEBUG - - -#if defined(PROFILING_SUPPORTED) -// On desktop CLR builds, the profiling API uses the event log for end-user-friendly -// diagnostic messages. CoreCLR on Windows ouputs debug strings for diagnostic messages. -// Rotor builds have no access to event log message resources, though, so they simply -// display popup dialogs for now. -#define FEATURE_PROFAPI_EVENT_LOGGING -#endif // defined(PROFILING_SUPPORTED) - // MUST NEVER CHECK IN WITH THIS ENABLED. // This is just for convenience in doing performance investigations in a checked-out enlistment. // #define FEATURE_ENABLE_NO_RANGE_CHECKS @@ -203,17 +186,6 @@ #define FEATURE_MINIMETADATA_IN_TRIAGEDUMPS #endif // defined(FEATURE_CORESYSTEM) -#if defined(FEATURE_PREJIT) && defined(FEATURE_CORESYSTEM) -// Desktop CLR allows profilers and debuggers to opt out of loading NGENd images, and to -// JIT everything instead. "FEATURE_TREAT_NI_AS_MSIL_DURING_DIAGNOSTICS" is roughly the -// equivalent for Apollo, where MSIL images may not be available at all. -// FEATURE_TREAT_NI_AS_MSIL_DURING_DIAGNOSTICS allows profilers or debuggers to state -// they don't want to use pregenerated code, and to instead load the NGENd image but -// treat it as if it were MSIL by ignoring the prejitted code and prebaked structures, -// and instead to JIT and load types at run-time. -#define FEATURE_TREAT_NI_AS_MSIL_DURING_DIAGNOSTICS -#endif - // If defined, support interpretation. #if !defined(CROSSGEN_COMPILE) diff --git a/lib/coreclr/src/inc/testhook.h b/lib/coreclr/src/inc/testhook.h deleted file mode 100644 index ba2435d3e715..000000000000 --- a/lib/coreclr/src/inc/testhook.h +++ /dev/null @@ -1,159 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - - -// - -#ifndef CLR_TESTHOOK_H -#define CLR_TESTHOOK_H - -// {CCB32DA2-2544-4195-8552-AC1986A83C73} -static const GUID IID_ICLRTestHook = -{ 0xccb32da2, 0x2544, 0x4195, { 0x85, 0x52, 0xac, 0x19, 0x86, 0xa8, 0x3c, 0x73 } }; -static const GUID IID_ICLRTestHook2 = -{ 0xccb32da2, 0x2544, 0x4195, { 0x85, 0x52, 0xac, 0x19, 0x86, 0xa8, 0x3c, 0x83 } }; -static const GUID IID_ICLRTestHook3 = -{ 0xccb32da2, 0x2544, 0x4195, { 0x85, 0x52, 0xac, 0x19, 0x86, 0xa8, 0x3c, 0x84 } }; -static const GUID IID_ICLRTestHookManager = -{ 0xccb32da2, 0x2544, 0x4195, { 0x85, 0x52, 0xac, 0x19, 0x86, 0xa8, 0x3c, 0x74 } }; - -enum -{ - ADUF_ASYNCHRONOUS, //no wait - ADUF_NORMAL, //wait, might be kicked out - ADUF_FORCEFULLGC, //same as normal, but does full gc -}; - -enum -{ - RTS_INITIALIZED, - RTS_DEFAULTADREADY, - RTS_CALLINGENTRYPOINT -}; - -enum -{ - IM_FLAT=1, - IM_IMAGEMAP=2, - IM_FIXEDUP=4, - IM_LOADLIBRARY=0xc //always fixed up -}; - -class ICLRTestHook : public IUnknown -{ -public: - STDMETHOD(AppDomainStageChanged)(DWORD adid,DWORD oldstage,DWORD newstage)=0; - STDMETHOD(NextFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel)=0; - STDMETHOD(CompletingFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel)=0; - STDMETHOD(CompletedFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel)=0; - STDMETHOD(EnteringAppDomain)(DWORD id)=0; - STDMETHOD(EnteredAppDomain)(DWORD id)=0; - STDMETHOD(LeavingAppDomain)(DWORD id)=0; - STDMETHOD(LeftAppDomain)(DWORD id)=0; - STDMETHOD(UnwindingThreads)(DWORD id) = 0; - STDMETHOD(UnwoundThreads)(DWORD id) = 0; - STDMETHOD(AppDomainCanBeUnloaded)(DWORD id, BOOL bUnsafePoint)=0; - STDMETHOD(AppDomainDestroyed)(DWORD id)=0; - STDMETHOD(RuntimeStarted)(DWORD code)=0; -}; - -class ICLRTestHook2 : public ICLRTestHook -{ -public: - STDMETHOD(ImageMapped(LPCWSTR wszPath, LPCVOID pBaseAddress,DWORD flags))=0; -}; - -class ICLRTestHook3 : public ICLRTestHook2 -{ -public: - STDMETHOD(CompletedNativeImageBind)(LPVOID pFile,LPCUTF8 simpleName, BOOL hasNativeImage)=0; - STDMETHOD(AboutToLockImage)(LPCWSTR wszPath, BOOL bIsCompilationProcess)=0; - STDMETHOD(StartingNativeImageBind)(LPCWSTR wszAsmName, BOOL bIsCompilationProcess)=0; -}; - -class ICLRTestHookManager -{ -public: - STDMETHOD(AddTestHook)(ICLRTestHook* hook)=0; - STDMETHOD(EnableSlowPath) (BOOL bEnable) =0; - STDMETHOD(UnloadAppDomain)(DWORD adid,DWORD flags)=0; - STDMETHOD_(VOID,DoApproriateWait)( int cObjs, HANDLE *pObjs, INT32 iTimeout, BOOL bWaitAll, int* res)=0; - STDMETHOD(GC)(int generation)=0; - STDMETHOD(GetSimpleName)(LPVOID domainfile,LPCUTF8* name)=0; - STDMETHOD_(INT_PTR,GetCurrentThreadType)(VOID)=0; //see clrhost.h - STDMETHOD_(INT_PTR,GetCurrentThreadLockCount) (VOID) =0; - STDMETHOD_(BOOL,IsPreemptiveGC)(VOID) =0; - STDMETHOD_(BOOL,ThreadCanBeAborted) (VOID) = 0; -}; - -class ICLRTestHookManager2 : public ICLRTestHookManager -{ -public: - STDMETHOD(HasNativeImage)(LPVOID domainfile,BOOL* pHasNativeImage) = 0; -}; - -//sample implementation -class CLRTestHook : public ICLRTestHook3 -{ -private: - LONG m_cRef; -public: - CLRTestHook() - { - m_cRef=0; - } - virtual ~CLRTestHook() {} - STDMETHOD(AppDomainStageChanged)(DWORD adid,DWORD oldstage,DWORD newstage){ return S_OK;}; - STDMETHOD(NextFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel){ return S_OK;}; - STDMETHOD(CompletingFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel){ return S_OK;}; - STDMETHOD(CompletedFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel){ return S_OK;}; - STDMETHOD(EnteringAppDomain)(DWORD id){ return S_OK;}; - STDMETHOD(EnteredAppDomain)(DWORD id){ return S_OK;}; - STDMETHOD(LeavingAppDomain)(DWORD id){ return S_OK;}; - STDMETHOD(LeftAppDomain)(DWORD id){ return S_OK;}; - STDMETHOD(UnwindingThreads)(DWORD id) {return S_OK;}; - STDMETHOD(UnwoundThreads)(DWORD id) {return S_OK;}; - STDMETHOD(AppDomainCanBeUnloaded)(DWORD id, BOOL bUnsafePoint){ return S_OK;}; - STDMETHOD(AppDomainDestroyed)(DWORD id){ return S_OK;}; - STDMETHOD(RuntimeStarted)(DWORD code){ return S_OK;}; - STDMETHOD(ImageMapped(LPCWSTR wszPath, LPCVOID pBaseAddress,DWORD flags)){return S_OK;}; - STDMETHOD(CompletedNativeImageBind)(LPVOID pFile,LPCUTF8 simpleName, BOOL hasNativeImage){return S_OK;}; - STDMETHOD(AboutToLockImage)(LPCWSTR wszPath, BOOL bIsCompilationProcess){return S_OK;}; - STDMETHOD(StartingNativeImageBind)(LPCWSTR wszAsmName, BOOL bIsCompilationProcess){return S_OK;}; - STDMETHOD_(ULONG,AddRef)() - { - return InterlockedIncrement(&m_cRef); - }; - STDMETHOD_(ULONG,Release)() - { - ULONG ulRef = InterlockedDecrement(&m_cRef); - if (!ulRef) - delete this; - return ulRef; - }; - STDMETHOD(QueryInterface)(REFIID riid, void** ppv) - { - if (!ppv) - return E_POINTER; - - if ( IsEqualIID(riid, IID_IUnknown) - || IsEqualIID(riid, IID_ICLRTestHook) - || IsEqualIID(riid, IID_ICLRTestHook2) - || IsEqualIID(riid, IID_ICLRTestHook3)) - { - AddRef(); - *ppv = static_cast(this); - return S_OK; - } - else - { - *ppv = NULL; - return E_NOINTERFACE; - } - }; -}; - -typedef void CALLBACK CLRTESTHOOKPROC(ICLRTestHookManager*); - -#endif diff --git a/lib/coreclr/src/inc/tls.h b/lib/coreclr/src/inc/tls.h index 429e41c1513f..e359a990e133 100644 --- a/lib/coreclr/src/inc/tls.h +++ b/lib/coreclr/src/inc/tls.h @@ -8,7 +8,10 @@ // Encapsulates TLS access for maximum performance. // - +// ************************************************************************************** +// WARNING!!!: These values are used by SOS in the diagnostics repo and need to the same. +// See: https://github.com/dotnet/diagnostics/blob/master/src/inc/tls.h +// ************************************************************************************** #ifndef __tls_h__ #define __tls_h__ diff --git a/lib/coreclr/src/inc/unsafe.h b/lib/coreclr/src/inc/unsafe.h deleted file mode 100644 index ba4a166fb1e8..000000000000 --- a/lib/coreclr/src/inc/unsafe.h +++ /dev/null @@ -1,102 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - - - - -#ifndef __UNSAFE_H__ -#define __UNSAFE_H__ - -// should we just check proper inclusion? -#include - -#include "staticcontract.h" - -inline VOID UnsafeEnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection) -{ - STATIC_CONTRACT_LEAF; - EnterCriticalSection(lpCriticalSection); -} - -inline VOID UnsafeLeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection) -{ - STATIC_CONTRACT_LEAF; - LeaveCriticalSection(lpCriticalSection); -} - -inline BOOL UnsafeTryEnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection) -{ - STATIC_CONTRACT_LEAF; - return TryEnterCriticalSection(lpCriticalSection); -} - -inline VOID UnsafeInitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection) -{ - STATIC_CONTRACT_LEAF; - InitializeCriticalSection(lpCriticalSection); -} - -inline VOID UnsafeDeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection) -{ - STATIC_CONTRACT_LEAF; - DeleteCriticalSection(lpCriticalSection); -} - -inline HANDLE UnsafeCreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCWSTR lpName) -{ - STATIC_CONTRACT_WRAPPER; - return WszCreateEvent(lpEventAttributes, bManualReset, bInitialState, lpName); -} - -inline BOOL UnsafeSetEvent(HANDLE hEvent) -{ - STATIC_CONTRACT_LEAF; - return SetEvent(hEvent); -} - -inline BOOL UnsafeResetEvent(HANDLE hEvent) -{ - STATIC_CONTRACT_LEAF; - return ResetEvent(hEvent); -} - -inline HANDLE UnsafeCreateSemaphore(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCWSTR lpName) -{ - STATIC_CONTRACT_WRAPPER; - return WszCreateSemaphore(lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName); -} - -inline BOOL UnsafeReleaseSemaphore(HANDLE hSemaphore, LONG lReleaseCount, LPLONG lpPreviousCount) -{ - STATIC_CONTRACT_LEAF; - return ReleaseSemaphore(hSemaphore, lReleaseCount, lpPreviousCount); -} - -inline LPVOID UnsafeTlsGetValue(DWORD dwTlsIndex) -{ - STATIC_CONTRACT_LEAF; - return TlsGetValue(dwTlsIndex); -} - -inline BOOL UnsafeTlsSetValue(DWORD dwTlsIndex, LPVOID lpTlsValue) -{ - STATIC_CONTRACT_LEAF; - return TlsSetValue(dwTlsIndex, lpTlsValue); -} - -inline DWORD UnsafeTlsAlloc(void) -{ - STATIC_CONTRACT_LEAF; - return TlsAlloc(); -} - -inline BOOL UnsafeTlsFree(DWORD dwTlsIndex) -{ - STATIC_CONTRACT_LEAF; - return TlsFree(dwTlsIndex); -} - -#endif - - diff --git a/lib/coreclr/src/inc/utilcode.h b/lib/coreclr/src/inc/utilcode.h index de9ba01ad740..5b8107c4a46f 100644 --- a/lib/coreclr/src/inc/utilcode.h +++ b/lib/coreclr/src/inc/utilcode.h @@ -42,10 +42,6 @@ #include "clrnt.h" -// Values for the names of Watson -const WCHAR kWatsonName1[] = W("drwatson"); -const WCHAR kWatsonName2[] = W("drwtsn32"); - #include "random.h" #define WINDOWS_KERNEL32_DLLNAME_A "kernel32" @@ -137,17 +133,6 @@ typedef LPSTR LPUTF8; #include "stdmacros.h" -/* -// This is for WinCE -#ifdef VERIFY -#undef VERIFY -#endif - -#ifdef _ASSERTE -#undef _ASSERTE -#endif -*/ - //********** Macros. ********************************************************** #ifndef FORCEINLINE #if _MSC_VER < 1200 @@ -159,21 +144,12 @@ typedef LPSTR LPUTF8; #ifndef DEBUG_NOINLINE #if defined(_DEBUG) -#define DEBUG_NOINLINE __declspec(noinline) +#define DEBUG_NOINLINE NOINLINE #else #define DEBUG_NOINLINE #endif #endif -#ifndef DBG_NOINLINE_X86__RET_INLINE -#if defined(_DEBUG) && defined(_TARGET_X86_) -// this exists to make scan work on x86. -#define DBG_NOINLINE_X86__RET_INLINE __declspec(noinline) -#else -#define DBG_NOINLINE_X86__RET_INLINE FORCEINLINE -#endif -#endif - #include // for offsetof #ifndef NumItems @@ -521,6 +497,14 @@ inline void *__cdecl operator new(size_t, void *_P) #define IN_WIN32(x) x #endif +#ifdef _TARGET_64BIT_ +#define IN_TARGET_64BIT(x) x +#define IN_TARGET_32BIT(x) +#else +#define IN_TARGET_64BIT(x) +#define IN_TARGET_32BIT(x) x +#endif + void * __cdecl operator new(size_t n); @@ -547,16 +531,8 @@ inline HRESULT OutOfMemory() //***************************************************************************** // Handle accessing localizable resource strings //***************************************************************************** -// NOTE: Should use locale names as much as possible. LCIDs don't support -// custom cultures on Vista+. -// TODO: This should always use the names -#ifdef FEATURE_USE_LCID -typedef LCID LocaleID; -typedef LCID LocaleIDValue; -#else typedef LPCWSTR LocaleID; typedef WCHAR LocaleIDValue[LOCALE_NAME_MAX_LENGTH]; -#endif // Notes about the culture callbacks: // - The language we're operating in can change at *runtime*! @@ -572,12 +548,7 @@ typedef WCHAR LocaleIDValue[LOCALE_NAME_MAX_LENGTH]; // Callback to obtain both the culture name and the culture's parent culture name typedef HRESULT (*FPGETTHREADUICULTURENAMES)(__inout StringArrayList* pCultureNames); -#ifdef FEATURE_USE_LCID -// Callback to return the culture ID. -const LCID UICULTUREID_DONTCARE = (LCID)-1; -#else const LPCWSTR UICULTUREID_DONTCARE = NULL; -#endif typedef int (*FPGETTHREADUICULTUREID)(LocaleIDValue*); @@ -587,18 +558,9 @@ HMODULE CLRLoadLibraryEx(LPCWSTR lpLibFileName, HANDLE hFile, DWORD dwFlags); BOOL CLRFreeLibrary(HMODULE hModule); -// Prevent people from using LoadStringRC & LoadStringRCEx from inside the product since it -// causes issues with having the wrong version picked up inside the shim. -#define LoadStringRC __error("From inside the CLR, use UtilLoadStringRC; LoadStringRC is only meant to be exported.") -#define LoadStringRCEx __error("From inside the CLR, use UtilLoadStringRCEx; LoadStringRC is only meant to be exported.") - // Load a string using the resources for the current module. STDAPI UtilLoadStringRC(UINT iResouceID, __out_ecount (iMax) LPWSTR szBuffer, int iMax, int bQuiet=FALSE); -#ifdef FEATURE_USE_LCID -STDAPI UtilLoadStringRCEx(LCID lcid, UINT iResourceID, __out_ecount (iMax) LPWSTR szBuffer, int iMax, int bQuiet, int *pcwchUsed); -#endif - // Specify callbacks so that UtilLoadStringRC can find out which language we're in. // If no callbacks specified (or both parameters are NULL), we default to the // resource dll in the root (which is probably english). @@ -663,12 +625,8 @@ class CCulturedHInstance _ASSERTE(m_hInst != NULL || m_fMissing); if (id == UICULTUREID_DONTCARE) return FALSE; - -#ifdef FEATURE_USE_LCID - return id == m_LangId; -#else + return wcscmp(id, m_LangId) == 0; -#endif } HRESOURCEDLL GetLibraryHandle() @@ -703,9 +661,6 @@ class CCulturedHInstance private: void SetId(LocaleID id) { -#ifdef FEATURE_USE_LCID - m_LangId = id; -#else if (id != UICULTUREID_DONTCARE) { wcsncpy_s(m_LangId, NumItems(m_LangId), id, NumItems(m_LangId)); @@ -715,7 +670,6 @@ class CCulturedHInstance { m_LangId[0] = W('\0'); } -#endif } }; @@ -1049,55 +1003,36 @@ inline int CountBits(int iNum) #include "bitposition.h" -// Used to remove trailing zeros from Decimal types. -// NOTE: Assumes hi32 bits are empty (used for conversions from Cy->Dec) -inline HRESULT DecimalCanonicalize(DECIMAL* dec) +// Convert the currency to a decimal and canonicalize. +inline void VarDecFromCyCanonicalize(CY cyIn, DECIMAL* dec) { WRAPPER_NO_CONTRACT; - // Clear the VARENUM field - (*(USHORT*)dec) = 0; - - // Remove trailing zeros: - DECIMAL temp; - DECIMAL templast; - temp = templast = *dec; - - // Ensure the hi 32 bits are empty (should be if we came from a currency) - if ((DECIMAL_HI32(temp) != 0) || (DECIMAL_SCALE(temp) > 4)) - return DISP_E_OVERFLOW; - - // Return immediately if dec represents a zero. - if (DECIMAL_LO32(temp) == 0 && DECIMAL_MID32(temp) == 0) - return S_OK; - - // Compare to the original to see if we've - // lost non-zero digits (and make sure we don't overflow the scale BYTE) - -#ifdef _PREFAST_ -#pragma warning(push) -#pragma warning(disable:6219) // "Suppress PREFast warning about Implicit cast between semantically different integer types" -#endif - while ((DECIMAL_SCALE(temp) <= 4) && (VARCMP_EQ == VarDecCmp(dec, &temp))) + (*(ULONG*)dec) = 0; + DECIMAL_HI32(*dec) = 0; + if (cyIn.int64 == 0) // For compatibility, a currency of 0 emits the Decimal "0.0000" (scale set to 4). { + DECIMAL_SCALE(*dec) = 4; + DECIMAL_LO32(*dec) = 0; + DECIMAL_MID32(*dec) = 0; + return; + } -#ifdef _PREFAST_ -#pragma warning(pop) -#endif - templast = temp; - - // Remove the last digit and normalize. Ignore temp.Hi32 - // as Currency values will have a max of 64 bits of data. - DECIMAL_SCALE(temp)--; - UINT64 temp64 = (((UINT64) DECIMAL_MID32(temp)) << 32) + DECIMAL_LO32(temp); - temp64 /= 10; - - DECIMAL_MID32(temp) = (ULONG)(temp64 >> 32); - DECIMAL_LO32(temp) = (ULONG)temp64; + if (cyIn.int64 < 0) { + DECIMAL_SIGN(*dec) = DECIMAL_NEG; + cyIn.int64 = -cyIn.int64; } - *dec = templast; - return S_OK; + BYTE scale = 4; + ULONGLONG absoluteCy = (ULONGLONG)cyIn.int64; + while (scale != 0 && ((absoluteCy % 10) == 0)) + { + scale--; + absoluteCy /= 10; + } + DECIMAL_SCALE(*dec) = scale; + DECIMAL_LO32(*dec) = (ULONG)absoluteCy; + DECIMAL_MID32(*dec) = (ULONG)(absoluteCy >> 32); } //***************************************************************************** @@ -1366,14 +1301,12 @@ BYTE * ClrVirtualAllocWithinRange(const BYTE *pMinAddr, // Allocate free memory with specific alignment // LPVOID ClrVirtualAllocAligned(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect, SIZE_T alignment); - -//****************************************************************************** -// Returns the number of processors that a process has been configured to run on -//****************************************************************************** + class NumaNodeInfo { private: static BOOL m_enableGCNumaAware; + static uint16_t m_nNodes; static BOOL InitNumaNodeInfoAPI(); public: @@ -1381,35 +1314,21 @@ class NumaNodeInfo static void InitNumaNodeInfo(); #if !defined(FEATURE_REDHAWK) -private: // apis types - - //GetNumaHighestNodeNumber() - typedef BOOL - (WINAPI *PGNHNN)(PULONG); - //VirtualAllocExNuma() - typedef LPVOID - (WINAPI *PVAExN)(HANDLE,LPVOID,SIZE_T,DWORD,DWORD,DWORD); - - // api pfns and members - static PGNHNN m_pGetNumaHighestNodeNumber; - static PVAExN m_pVirtualAllocExNuma; - public: // functions static LPVOID VirtualAllocExNuma(HANDLE hProc, LPVOID lpAddr, SIZE_T size, DWORD allocType, DWORD prot, DWORD node); - -private: - //GetNumaProcessorNodeEx() - typedef BOOL - (WINAPI *PGNPNEx)(PPROCESSOR_NUMBER, PUSHORT); - static PGNPNEx m_pGetNumaProcessorNodeEx; - -public: +#ifndef FEATURE_PAL static BOOL GetNumaProcessorNodeEx(PPROCESSOR_NUMBER proc_no, PUSHORT node_no); + static bool GetNumaInfo(PUSHORT total_nodes, DWORD* max_procs_per_node); +#else // !FEATURE_PAL + static BOOL GetNumaProcessorNodeEx(USHORT proc_no, PUSHORT node_no); +#endif // !FEATURE_PAL #endif }; +#ifndef FEATURE_PAL + struct CPU_Group_Info { WORD nr_active; // at most 64 @@ -1431,8 +1350,8 @@ class CPUGroupInfo static BOOL m_threadUseAllCpuGroups; static WORD m_initialGroup; static CPU_Group_Info *m_CPUGroupInfoArray; + static bool s_hadSingleProcessorAtStartup; - static BOOL InitCPUGroupInfoAPI(); static BOOL InitCPUGroupInfoArray(); static BOOL InitCPUGroupInfoRange(); static void InitCPUGroupInfo(); @@ -1446,37 +1365,12 @@ class CPUGroupInfo static void GetGroupForProcessor(WORD processor_number, WORD *group_number, WORD *group_processor_number); static DWORD CalculateCurrentProcessorNumber(); + static bool GetCPUGroupInfo(PUSHORT total_groups, DWORD* max_procs_per_group); //static void PopulateCPUUsageArray(void * infoBuffer, ULONG infoSize); #if !defined(FEATURE_REDHAWK) -private: - //GetLogicalProcessorInforomationEx() - typedef BOOL - (WINAPI *PGLPIEx)(DWORD, SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX *, PDWORD); - //SetThreadGroupAffinity() - typedef BOOL - (WINAPI *PSTGA)(HANDLE, GROUP_AFFINITY *, GROUP_AFFINITY *); - //GetThreadGroupAffinity() - typedef BOOL - (WINAPI *PGTGA)(HANDLE, GROUP_AFFINITY *); - //GetCurrentProcessorNumberEx() - typedef void - (WINAPI *PGCPNEx)(PROCESSOR_NUMBER *); - //GetSystemTimes() - typedef BOOL - (WINAPI *PGST)(FILETIME *, FILETIME *, FILETIME *); - //NtQuerySystemInformationEx() - //typedef int - //(WINAPI *PNTQSIEx)(SYSTEM_INFORMATION_CLASS, PULONG, ULONG, PVOID, ULONG, PULONG); - static PGLPIEx m_pGetLogicalProcessorInformationEx; - static PSTGA m_pSetThreadGroupAffinity; - static PGTGA m_pGetThreadGroupAffinity; - static PGCPNEx m_pGetCurrentProcessorNumberEx; - static PGST m_pGetSystemTimes; - //static PNTQSIEx m_pNtQuerySystemInformationEx; - public: - static BOOL GetLogicalProcessorInformationEx(DWORD relationship, + static BOOL GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP relationship, SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX *slpiex, PDWORD count); static BOOL SetThreadGroupAffinity(HANDLE h, GROUP_AFFINITY *groupAffinity, GROUP_AFFINITY *previousGroupAffinity); @@ -1484,12 +1378,26 @@ class CPUGroupInfo static BOOL GetSystemTimes(FILETIME *idleTime, FILETIME *kernelTime, FILETIME *userTime); static void ChooseCPUGroupAffinity(GROUP_AFFINITY *gf); static void ClearCPUGroupAffinity(GROUP_AFFINITY *gf); + static BOOL GetCPUGroupRange(WORD group_number, WORD* group_begin, WORD* group_size); #endif + +public: + static bool HadSingleProcessorAtStartup() + { + LIMITED_METHOD_CONTRACT; + return s_hadSingleProcessorAtStartup; + } }; -int GetCurrentProcessCpuCount(); DWORD_PTR GetCurrentProcessCpuMask(); +#endif // !FEATURE_PAL + +//****************************************************************************** +// Returns the number of processors that a process has been configured to run on +//****************************************************************************** +int GetCurrentProcessCpuCount(); + uint32_t GetOsPageSize(); @@ -1964,12 +1872,12 @@ class CStructArray { WRAPPER_NO_CONTRACT; _ASSERTE(iIndex < m_iCount); - return ((void *) ((size_t) Ptr() + (iIndex * m_iElemSize))); + return (BYTE*) Ptr() + (iIndex * (size_t)m_iElemSize); } - int Size() + size_t Size() { LIMITED_METHOD_CONTRACT; - return (m_iCount * m_iElemSize); + return (m_iCount * (size_t)m_iElemSize); } int Count() { @@ -2473,7 +2381,7 @@ class CHashTable HASHENTRY *EntryPtr(ULONG iEntry) { LIMITED_METHOD_DAC_CONTRACT; - return (PTR_HASHENTRY(m_pcEntries + (iEntry * m_iEntrySize))); + return (PTR_HASHENTRY(m_pcEntries + (iEntry * (size_t)m_iEntrySize))); } ULONG ItemIndex(HASHENTRY *p) @@ -2924,7 +2832,7 @@ void CHashTableAndData::InitFreeChain( BYTE* pcPtr; _ASSERTE(iEnd > iStart); - pcPtr = (BYTE*)m_pcEntries + iStart * m_iEntrySize; + pcPtr = (BYTE*)m_pcEntries + iStart * (size_t)m_iEntrySize; for (++iStart; iStart < iEnd; ++iStart) { ((FREEHASHENTRY *) pcPtr)->iFree = iStart; @@ -3182,13 +3090,13 @@ class CClosedHashBase BYTE *EntryPtr(int iEntry) { LIMITED_METHOD_CONTRACT; - return (m_rgData + (iEntry * m_iEntrySize)); + return (m_rgData + (iEntry * (size_t)m_iEntrySize)); } BYTE *EntryPtr(int iEntry, BYTE *rgData) { LIMITED_METHOD_CONTRACT; - return (rgData + (iEntry * m_iEntrySize)); + return (rgData + (iEntry * (size_t)m_iEntrySize)); } public: @@ -4208,12 +4116,6 @@ inline HRESULT FakeCoCreateInstance(REFCLSID rclsid, return FakeCoCreateInstanceEx(rclsid, NULL, riid, ppv, NULL); }; -HRESULT FakeCoCallDllGetClassObject(REFCLSID rclsid, - LPCWSTR wszDllPath, - REFIID riid, - void ** ppv, - HMODULE * phmodDll); - //***************************************************************************** // Gets the directory based on the location of the module. This routine // is called at COR setup time. Set is called during EEStartup and by the @@ -4239,7 +4141,6 @@ HRESULT validateTokenSig( // metadata contained in the image. //***************************************************************************** HRESULT GetImageRuntimeVersionString(PVOID pMetaData, LPCSTR* pString); -void AdjustImageRuntimeVersion (SString* pVersion); //***************************************************************************** // The registry keys and values that contain the information regarding @@ -4276,7 +4177,7 @@ void TrimWhiteSpace(__inout_ecount(*pcch) LPCWSTR *pwsz, __inout LPDWORD pcch); HRESULT Utf2Quick( LPCUTF8 pStr, // The string to convert. CQuickArray &rStr, // The QuickArray to convert it into. - int iCurLen); // Inital characters in the array to leave (default 0). + int iCurLen = 0); // Initial characters in the array to leave (default 0). //***************************************************************************** // Extract the movl 64-bit unsigned immediate from an IA64 bundle @@ -4629,15 +4530,6 @@ inline BOOL IsFinalizerThread () return !!(((size_t)ClrFlsGetValue (TlsIdx_ThreadType)) & ThreadType_Finalizer); } -inline BOOL IsADUnloadHelperThread () -{ - STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_GC_NOTRIGGER; - STATIC_CONTRACT_MODE_ANY; - - return !!(((size_t)ClrFlsGetValue (TlsIdx_ThreadType)) & ThreadType_ADUnloadHelper); -} - inline BOOL IsShutdownHelperThread () { STATIC_CONTRACT_NOTHROW; @@ -4662,7 +4554,6 @@ inline void ClrFlsSetThreadType (TlsThreadTypeFlag flag) STATIC_CONTRACT_NOTHROW; STATIC_CONTRACT_GC_NOTRIGGER; STATIC_CONTRACT_MODE_ANY; - STATIC_CONTRACT_SO_TOLERANT; ClrFlsSetValue (TlsIdx_ThreadType, (LPVOID)(((size_t)ClrFlsGetValue (TlsIdx_ThreadType)) |flag)); } @@ -4709,7 +4600,6 @@ inline BOOL IsGCThread () STATIC_CONTRACT_GC_NOTRIGGER; STATIC_CONTRACT_MODE_ANY; STATIC_CONTRACT_SUPPORTS_DAC; - STATIC_CONTRACT_SO_TOLERANT; #if !defined(DACCESS_COMPILE) return IsGCSpecialThread () || IsSuspendEEThread (); @@ -5007,85 +4897,6 @@ FORCEINLINE void HolderSysFreeString(BSTR str) { CONTRACT_VIOLATION(ThrowsViolat typedef Wrapper BSTRHolder; -BOOL FileExists(LPCWSTR filename); - - -// a class for general x.x version info -class MajorMinorVersionInfo -{ -protected: - WORD version[2]; - BOOL bInitialized; -public: - //cctors - MajorMinorVersionInfo() - { - LIMITED_METHOD_CONTRACT; - bInitialized = FALSE; - ZeroMemory(version,sizeof(version)); - }; - - MajorMinorVersionInfo(WORD wMajor, WORD wMinor) - { - WRAPPER_NO_CONTRACT; - Init(wMajor,wMinor); - }; - - // getters - BOOL IsInitialized() const - { - LIMITED_METHOD_CONTRACT; - return bInitialized; - }; - - WORD Major() const - { - LIMITED_METHOD_CONTRACT; - return version[0]; - }; - - WORD Minor() const - { - LIMITED_METHOD_CONTRACT; - return version[1]; - }; - - // setters - void Init(WORD wMajor, WORD wMinor) - { - LIMITED_METHOD_CONTRACT; - version[0]=wMajor; - version[1]=wMinor; - bInitialized=TRUE; - }; -}; - -// CLR runtime version info in Major/Minor form -class RUNTIMEVERSIONINFO : public MajorMinorVersionInfo -{ - static RUNTIMEVERSIONINFO notDefined; -public: - // cctors - RUNTIMEVERSIONINFO() {}; - - RUNTIMEVERSIONINFO(WORD wMajor, WORD wMinor) : - MajorMinorVersionInfo(wMajor,wMinor){}; - - // CLR version specific helpers - BOOL IsPreWhidbey() const - { - WRAPPER_NO_CONTRACT; - return (Major() == 1) && (Minor() <= 1); - } - - static const RUNTIMEVERSIONINFO& NotApplicable() - { - LIMITED_METHOD_CONTRACT; - return notDefined; - } -}; - - // HMODULE_TGT represents a handle to a module in the target process. In non-DAC builds this is identical // to HMODULE (HINSTANCE), which is the base address of the module. In DAC builds this must be a target address, // and so is represented by TADDR. @@ -5106,22 +4917,15 @@ BOOL IsIPInModule(HMODULE_TGT hModule, PCODE ip); // which in turn calls InitUtilcode. // // This structure collects all of the critical callback info passed in InitUtilcode(). -// Note that one of them is GetCLRFunction() which is itself a gofer for many other -// callbacks. If a callback fetch be safely deferred until we have TLS and stack probe -// functionality running, it should be added to that function rather than this structure. -// Things like IEE are here because that callback has to be set up before GetCLRFunction() -// can be safely called. //---------------------------------------------------------------------------------------- struct CoreClrCallbacks { typedef IExecutionEngine* (* pfnIEE_t)(); typedef HRESULT (* pfnGetCORSystemDirectory_t)(SString& pbuffer); - typedef void* (* pfnGetCLRFunction_t)(LPCSTR functionName); HINSTANCE m_hmodCoreCLR; pfnIEE_t m_pfnIEE; pfnGetCORSystemDirectory_t m_pfnGetCORSystemDirectory; - pfnGetCLRFunction_t m_pfnGetCLRFunction; }; @@ -5157,9 +4961,6 @@ BOOL IsProcessCorruptedStateException(DWORD dwExceptionCode, BOOL fCheckForSO = #endif // FEATURE_CORRUPTING_EXCEPTIONS - -BOOL IsV2RuntimeLoaded(void); - namespace UtilCode { // These are type-safe versions of Interlocked[Compare]Exchange @@ -5355,9 +5156,6 @@ HMODULE LoadLocalizedResourceDLLForSDK(_In_z_ LPCWSTR wzResourceDllName, _In_opt typedef void* (__cdecl *LocalizedFileHandler)(LPCWSTR); void* FindLocalizedFile(_In_z_ LPCWSTR wzResourceDllName, LocalizedFileHandler lfh, _In_opt_z_ LPCWSTR modulePath=NULL); -BOOL IsClrHostedLegacyComObject(REFCLSID rclsid); - - // Helper to support termination due to heap corruption @@ -5384,12 +5182,7 @@ namespace Reg #ifdef FEATURE_COMINTEROP namespace Com { - HRESULT FindServerUsingCLSID(REFCLSID rclsid, SString & ssServerName); - HRESULT FindServerUsingCLSID(REFCLSID rclsid, __deref_out __deref_out_z LPWSTR* pwszServerName); HRESULT FindInprocServer32UsingCLSID(REFCLSID rclsid, SString & ssInprocServer32Name); - HRESULT FindInprocServer32UsingCLSID(REFCLSID rclsid, __deref_out __deref_out_z LPWSTR* pwszInprocServer32Name); - BOOL IsMscoreeInprocServer32(const SString & ssInprocServer32Name); - BOOL CLSIDHasMscoreeAsInprocServer32(REFCLSID rclsid); } #endif // FEATURE_COMINTEROP @@ -5520,8 +5313,4 @@ struct SpinConstants extern SpinConstants g_SpinConstants; -// ====================================================================================== - -void* GetCLRFunction(LPCSTR FunctionName); - #endif // __UtilCode_h__ diff --git a/lib/coreclr/src/inc/volatile.h b/lib/coreclr/src/inc/volatile.h index ecf9ffe42789..fa756ef05191 100644 --- a/lib/coreclr/src/inc/volatile.h +++ b/lib/coreclr/src/inc/volatile.h @@ -474,32 +474,6 @@ class VolatilePtr : public Volatile

} }; - -// -// Warning: workaround -// -// At the bottom of this file, we are going to #define the "volatile" keyword such that it is illegal -// to use it. Unfortunately, VC++ uses the volatile keyword in stddef.h, in the definition of "offsetof". -// GCC does not use volatile in its definition. -// -// To get around this, we include stddef.h here (even if we're on GCC, for consistency). We then need -// to redefine offsetof such that it does not use volatile, if we're building with VC++. -// -#include -#ifdef _MSC_VER -#undef offsetof -#ifdef _WIN64 -#define offsetof(s,m) (size_t)( (ptrdiff_t)&reinterpret_cast((((s *)0)->m)) ) -#else -#define offsetof(s,m) (size_t)&reinterpret_cast((((s *)0)->m)) -#endif //_WIN64 - -// These also use volatile, so we'll include them here. -//#include -//#include - -#endif //_MSC_VER - // // From here on out, we ban the use of the "volatile" keyword. If you found this while trying to define // a volatile variable, go to the top of this file and start reading. diff --git a/lib/coreclr/src/inc/vptr_list.h b/lib/coreclr/src/inc/vptr_list.h index 7b7b5f0eb466..566cfa6e7297 100644 --- a/lib/coreclr/src/inc/vptr_list.h +++ b/lib/coreclr/src/inc/vptr_list.h @@ -27,7 +27,6 @@ VPTR_CLASS(Module) VPTR_CLASS(ReflectionModule) VPTR_CLASS(AppDomain) -VPTR_CLASS(SharedDomain) VPTR_CLASS(SystemDomain) VPTR_CLASS(DomainAssembly) @@ -119,5 +118,4 @@ VPTR_CLASS(LoaderCodeHeap) VPTR_CLASS(HostCodeHeap) VPTR_CLASS(GlobalLoaderAllocator) -VPTR_CLASS(AppDomainLoaderAllocator) VPTR_CLASS(AssemblyLoaderAllocator) diff --git a/lib/coreclr/src/inc/warningcontrol.h b/lib/coreclr/src/inc/warningcontrol.h index abc48316395a..e3b6f078ff19 100644 --- a/lib/coreclr/src/inc/warningcontrol.h +++ b/lib/coreclr/src/inc/warningcontrol.h @@ -13,65 +13,26 @@ // #if defined(_MSC_VER) -#pragma warning(disable :4001) // "nonstandard extension 'single line comment' was used" #pragma warning(error :4007) // 'main' : must be __cdecl -#pragma warning(disable :4010) // "single-line comment contains line-continuation character" #pragma warning(error :4013) // 'function' undefined - assuming extern returning int -#pragma warning(disable :4022) // "'%s' : pointer mismatch for actual parameter %d" -#pragma warning(disable :4047) // "'%$L' : '%$T' differs in levels of indirection from '%$T'" -#pragma warning(disable :4053) // "one void operand for '?:'" -#pragma warning(disable :4056) // "overflow in floating-point constant arithmetic" -#pragma warning(disable :4061) // "enumerate '%$S' in switch of enum '%$S' is not explicitly handled by a case label" -#pragma warning(error :4071) // no function prototype given -#pragma warning(error :4072) // no function prototype given (fastcall) -#pragma warning(3 :4092) // sizeof returns 'unsigned long' -#pragma warning(disable :4100) // "'%$S' : unreferenced formal parameter" -#pragma warning(disable :4101) // "'%$S' : unreferenced local variable" -//#pragma warning(error :4102) // "'%$S' : unreferenced label" -#pragma warning(3 :4121) // structure is sensitive to alignment -#pragma warning(disable :4127) // "conditional expression is constant" -#pragma warning(3 :4125) // decimal digit in octal sequence -#pragma warning(3 :4130) // logical operation on address of string constant -#pragma warning(3 :4132) // const object should be initialized -#pragma warning(error :4171) // no function prototype given (old style) -#pragma warning(4 :4177) // pragma data_seg s/b at global scope -#pragma warning(disable :4201) // "nonstandard extension used : nameless struct/union" -#pragma warning(disable :4204) // "nonstandard extension used : non-constant aggregate initializer" -#pragma warning(4 :4206) // Source File is empty -#pragma warning(3 :4212) // function declaration used ellipsis -#pragma warning(error :4259) // pure virtual function was not defined -#pragma warning(disable :4291) // delete not defined for new, c++ exception may cause leak -#pragma warning(disable :4302) // truncation from '%$S' to '%$S' -#pragma warning(disable :4311) // pointer truncation from '%$S' to '%$S' -#pragma warning(disable :4312) // '' : conversion from '%$S' to '%$S' of greater size -#pragma warning(disable :4334) // result of 32-bit shift implicitly converted to 64 bits -#pragma warning(disable :4345) // behavior change: an object of POD type constructed with an initializer of the form () will be default-initialized -#pragma warning(disable :4430) // missing type specifier: C++ doesn't support default-int +#pragma warning(3 :4092) // sizeof returns 'unsigned long' +#pragma warning(error :4102) // "'%$S' : unreferenced label" +#pragma warning(3 :4121) // structure is sensitive to alignment +#pragma warning(3 :4125) // decimal digit in octal sequence +#pragma warning(3 :4130) // logical operation on address of string constant +#pragma warning(3 :4132) // const object should be initialized +#pragma warning(4 :4177) // pragma data_seg s/b at global scope +#pragma warning(3 :4212) // function declaration used ellipsis +#pragma warning(disable :4291) // delete not defined for new, c++ exception may cause leak +#pragma warning(disable :4302) // truncation from '%$S' to '%$S' +#pragma warning(disable :4311) // pointer truncation from '%$S' to '%$S' +#pragma warning(disable :4312) // '' : conversion from '%$S' to '%$S' of greater size #pragma warning(disable :4477) // format string '%$S' requires an argument of type '%$S', but variadic argument %d has type '%$S' -#pragma warning(3 :4509) // "nonstandard extension used: '%$S' uses SEH and '%$S' has destructor" - // - // But beware of doing a return from inside such a try block: - // - // int foo() - // { - // ClassWithDestructor c; - // __try { - // return 0; - // } __finally { - // printf("in finally"); - // } - // - // as (it's a bug) the return value gets toasted. So DON'T casually - // dismiss this warning if you're compiling w/o CXX EH turned on (the default). - -#pragma warning(3 :4530) // C++ exception handler used, but unwind semantics are not enabled. Specify -GX +#pragma warning(3 :4530) // C++ exception handler used, but unwind semantics are not enabled. Specify -GX #pragma warning(error :4551) // Function call missing argument list #pragma warning(error :4700) // Local used w/o being initialized -#pragma warning(disable :4706) // assignment within conditional expression -#pragma warning(disable :4768) // __declspec attributes before linkage specification are ignored #pragma warning(error :4806) // unsafe operation involving type 'bool' -#pragma warning(disable :4995) // '_OLD_IOSTREAMS_ARE_DEPRECATED': name was marked as #pragma deprecated #if defined(_DEBUG) && (!defined(_MSC_FULL_VER) || (_MSC_FULL_VER <= 181040116)) // The CLR header file check.h, macro CHECK_MSG_EX, can create unreachable code if the LEAVE_DEBUG_ONLY_CODE diff --git a/lib/coreclr/src/inc/winrt/paraminstanceapi.h b/lib/coreclr/src/inc/winrt/paraminstanceapi.h index 81ee4c51c908..ad3fd17b9128 100644 --- a/lib/coreclr/src/inc/winrt/paraminstanceapi.h +++ b/lib/coreclr/src/inc/winrt/paraminstanceapi.h @@ -79,7 +79,7 @@ namespace Ro { namespace detail { // to see HRESULT propagation. // #ifdef DEBUG - inline HRESULT __declspec(noinline) _FailedHR(HRESULT hr) { static HRESULT _hr = hr; return hr; } + inline HRESULT NOINLINE _FailedHR(HRESULT hr) { static HRESULT _hr = hr; return hr; } #else inline HRESULT _FailedHR(HRESULT hr) { return hr; } #endif @@ -419,7 +419,7 @@ namespace Ro { namespace detail { __in_ecount(size) const T* src, size_t size) { - for (size_t i = 0; i != _size; ++i) + for (size_t i = 0; i != size; ++i) { dst[i] = src[i]; } diff --git a/lib/coreclr/src/inc/winwrap.h b/lib/coreclr/src/inc/winwrap.h index acd70d52d456..1986e1d40b2e 100644 --- a/lib/coreclr/src/inc/winwrap.h +++ b/lib/coreclr/src/inc/winwrap.h @@ -54,11 +54,6 @@ // Undefine all of the windows wrappers so you can't use them. //***************************************************************************** -// wincrypt.h -#undef CryptAcquireContext -#undef CryptSignHash -#undef CryptVerifySignature - // winbase.h #undef GetBinaryType #undef GetShortPathName @@ -139,12 +134,6 @@ #undef GetTimeFormat #undef LCMapString -// winnetwk.h -#undef WNetGetConnection - -// Win32 Fusion API's -#undef QueryActCtxW - #endif // !defined(__TODO_PORT_TO_WRAPPERS__) // @@ -152,11 +141,6 @@ // to the *W entry points as macros. This way no client code needs a wrapper on NT. // -// wincrypt.h -#define WszCryptAcquireContext CryptAcquireContextW -#define WszCryptSignHash CryptSignHashW -#define WszCryptVerifySignature CryptVerifySignatureW - // winbase.h #define WszGetEnvironmentStrings GetEnvironmentStringsW #define WszFreeEnvironmentStrings FreeEnvironmentStringsW @@ -219,7 +203,6 @@ #define WszMultiByteToWideChar MultiByteToWideChar #define WszWideCharToMultiByte WideCharToMultiByte #define WszCreateSemaphore CreateSemaphoreW -#define WszQueryActCtxW QueryActCtxW #ifdef FEATURE_CORESYSTEM @@ -313,12 +296,6 @@ BOOL RunningInteractive(); #define RunningInteractive() FALSE #endif // !FEATURE_PAL -// Determines if the process is running as Local System or as a service. Note that this function uses the -// process' identity and not the thread's (if the thread is impersonating). -// -// If the function succeeds, it returns ERROR_SUCCESS, else it returns the error code returned by GetLastError() -DWORD RunningAsLocalSystemOrService(OUT BOOL& fIsLocalSystemOrService); - #ifndef Wsz_mbstowcs #define Wsz_mbstowcs(szOut, szIn, iSize) WszMultiByteToWideChar(CP_ACP, 0, szIn, -1, szOut, iSize) #endif diff --git a/lib/coreclr/src/inc/xcordebug.idl b/lib/coreclr/src/inc/xcordebug.idl index 646c2069eab2..ef9128bea7dc 100644 --- a/lib/coreclr/src/inc/xcordebug.idl +++ b/lib/coreclr/src/inc/xcordebug.idl @@ -54,32 +54,3 @@ interface ICorDebugProcess4 : IUnknown HRESULT ProcessStateChanged([in] CorDebugStateChange eChange); }; - -#ifdef FEATURE_LEGACYNETCF_DBG_HOST_CONTROL - -/* A private API for use on Windows phone to invoke CLR hosting - * callbacks on IHostNetCFDebugControlManager. This allows the - * host's UI thread to be suspended and resumed on demand. - * - * This API should not be used for anything other than the - * Windows Phone scenario, it should never be made public, - * and as soon as we support mixed-mode debugging it should - * be retired by removing the interface and failing any - * QueryInterface call for it. -*/ -[ - object, - local, - uuid(34B27FB0-A318-450D-A0DD-11B70B21F41D), - pointer_default(unique) -] -interface ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly : IUnknown -{ - // Invokes IHostNetCFDebugControlManager::NotifyPause() on the debuggee's host - HRESULT InvokePauseCallback(); - - // Invokes IHostNetCFDebugControlManager::NotifyResume() on the debuggee's host - HRESULT InvokeResumeCallback(); -}; - -#endif \ No newline at end of file diff --git a/lib/coreclr/src/inc/zapper.h b/lib/coreclr/src/inc/zapper.h index 8160b52f2ade..29fc4fbf0450 100644 --- a/lib/coreclr/src/inc/zapper.h +++ b/lib/coreclr/src/inc/zapper.h @@ -129,6 +129,8 @@ class Zapper SString m_outputFilename; + SIZE_T m_customBaseAddress; + public: struct assemblyDependencies @@ -298,7 +300,6 @@ class Zapper void ComputeAssemblyDependencies(CORINFO_ASSEMBLY_HANDLE hAssembly); void CreatePdb(BSTR pAssemblyPathOrName, BSTR pNativeImagePath, BSTR pPdbPath, BOOL pdbLines, BSTR pManagedPdbSearchPath); - void CreatePdbInCurrentDomain(BSTR pAssemblyPathOrName, BSTR pNativeImagePath, BSTR pPdbPath, BOOL pdbLines, BSTR pManagedPdbSearchPath); void DefineOutputAssembly(SString& strAssemblyName, ULONG * pHashAlgId); @@ -363,6 +364,9 @@ class Zapper void SetOutputFilename(LPCWSTR pwszOutputFilename); SString GetOutputFileName(); + void SetCustomBaseAddress(SIZE_T baseAddress); + SIZE_T GetCustomBaseAddress(); + private: void DestroyDomain(); @@ -380,9 +384,6 @@ class Zapper virtual void doCallback() = NULL; }; - static HRESULT __stdcall GenericDomainCallback(LPVOID pvArgs); - void InvokeDomainCallback(DomainCallback *callback); - void CompileInCurrentDomain(__in LPCWSTR path, CORCOMPILE_NGEN_SIGNATURE * pNativeImageSig); void ComputeDependenciesInCurrentDomain(LPCWSTR pAssemblyName, CORCOMPILE_NGEN_SIGNATURE * pNativeImageSig); void CreateDependenciesLookupDomainInCurrentDomain(); diff --git a/lib/coreclr/src/pal/inc/mbusafecrt.h b/lib/coreclr/src/pal/inc/mbusafecrt.h index f030b7ded20c..abc2dca4060d 100644 --- a/lib/coreclr/src/pal/inc/mbusafecrt.h +++ b/lib/coreclr/src/pal/inc/mbusafecrt.h @@ -31,6 +31,14 @@ typedef int errno_t; // define the return value for success #define SAFECRT_SUCCESS 0 +#ifndef THROW_DECL +#if defined(_MSC_VER) || defined(__llvm__) || !defined(__cplusplus) +#define THROW_DECL +#else +#define THROW_DECL throw() +#endif // !_MSC_VER +#endif // !THROW_DECL + #ifdef __cplusplus extern "C" { #endif @@ -98,7 +106,7 @@ extern int swscanf_s( const WCHAR *string, const WCHAR *format, ... ); extern int _snscanf_s( const char *string, size_t count, const char *format, ... ); extern int _snwscanf_s( const WCHAR *string, size_t count, const WCHAR *format, ... ); -extern errno_t memcpy_s( void * dst, size_t sizeInBytes, const void * src, size_t count ); +extern errno_t memcpy_s( void * dst, size_t sizeInBytes, const void * src, size_t count ) THROW_DECL; extern errno_t memmove_s( void * dst, size_t sizeInBytes, const void * src, size_t count ); #ifdef __cplusplus diff --git a/lib/coreclr/src/pal/inc/pal.h b/lib/coreclr/src/pal/inc/pal.h index f89798ceab80..08a35c8f62d4 100644 --- a/lib/coreclr/src/pal/inc/pal.h +++ b/lib/coreclr/src/pal/inc/pal.h @@ -10,9 +10,9 @@ Module Name: Abstract: - Rotor Platform Adaptation Layer (PAL) header file. This file - defines all types and API calls required by the Rotor port of - the Microsoft Common Language Runtime. + CoreCLR Platform Adaptation Layer (PAL) header file. This file + defines all types and API calls required by the CoreCLR when + compiled for Unix-like systems. Defines which control the behavior of this include file: UNICODE - define it to set the Ansi/Unicode neutral names to @@ -28,7 +28,7 @@ Module Name: If you want to add a PAL_ wrapper function to a native function in here, you also need to edit palinternal.h and win32pal.h. - + --*/ @@ -37,10 +37,12 @@ Module Name: #define __PAL_H__ #ifdef PAL_STDCPP_COMPAT +#include #include #include #include #include +#include #include #include #include @@ -68,6 +70,11 @@ extern "C" { #include #include +// Native system libray handle. +// On Unix systems, NATIVE_LIBRARY_HANDLE type represents a library handle not registered with the PAL. +// To get a HMODULE on Unix, call PAL_RegisterLibraryDirect() on a NATIVE_LIBRARY_HANDLE. +typedef PVOID NATIVE_LIBRARY_HANDLE; + /******************* Processor-specific glue *****************************/ #ifndef _MSC_VER @@ -137,6 +144,13 @@ extern "C" { #define LANG_THAI 0x1e /******************* Compiler-specific glue *******************************/ +#ifndef THROW_DECL +#if defined(_MSC_VER) || defined(__llvm__) || !defined(__cplusplus) +#define THROW_DECL +#else +#define THROW_DECL throw() +#endif // !_MSC_VER +#endif // !THROW_DECL #ifndef _MSC_VER #if defined(CORECLR) @@ -147,14 +161,20 @@ extern "C" { #endif // CORECLR #endif // !_MSC_VER -#if defined(_MSC_VER) || defined(__llvm__) +#if defined(_MSC_VER) #define DECLSPEC_ALIGN(x) __declspec(align(x)) #else -#define DECLSPEC_ALIGN(x) +#define DECLSPEC_ALIGN(x) __attribute__ ((aligned(x))) #endif #define DECLSPEC_NORETURN PAL_NORETURN +#ifdef __clang_analyzer__ +#define ANALYZER_NORETURN __attribute((analyzer_noreturn)) +#else +#define ANALYZER_NORETURN +#endif + #if !defined(_MSC_VER) || defined(SOURCE_FORMATTING) #define __assume(x) (void)0 #define __annotation(x) @@ -170,6 +190,22 @@ extern "C" { #endif #endif +#ifndef NOOPT_ATTRIBUTE +#if defined(__llvm__) +#define NOOPT_ATTRIBUTE optnone +#elif defined(__GNUC__) +#define NOOPT_ATTRIBUTE optimize("O0") +#endif +#endif + +#ifndef NODEBUG_ATTRIBUTE +#if defined(__llvm__) +#define NODEBUG_ATTRIBUTE __nodebug__ +#elif defined(__GNUC__) +#define NODEBUG_ATTRIBUTE __artificial__ +#endif +#endif + #ifndef PAL_STDCPP_COMPAT #if __GNUC__ @@ -187,8 +223,6 @@ typedef __builtin_va_list va_list; #define VOID void -#define PUB __attribute__((visibility("default"))) - #else // __GNUC__ typedef char * va_list; @@ -223,19 +257,6 @@ typedef char * va_list; #endif // __GNUC__ -#endif // !PAL_STDCPP_COMPAT - -/******************* PAL-Specific Entrypoints *****************************/ - -#define IsDebuggerPresent PAL_IsDebuggerPresent - -PALIMPORT -BOOL -PALAPI -PAL_IsDebuggerPresent(VOID); - -#define MAXIMUM_SUSPEND_COUNT MAXCHAR - #define CHAR_BIT 8 #define SCHAR_MIN (-128) @@ -254,6 +275,17 @@ PAL_IsDebuggerPresent(VOID); #define LONG_MAX 2147483647L #define ULONG_MAX 0xffffffffUL +#endif // !PAL_STDCPP_COMPAT + +/******************* PAL-Specific Entrypoints *****************************/ + +#define IsDebuggerPresent PAL_IsDebuggerPresent + +PALIMPORT +BOOL +PALAPI +PAL_IsDebuggerPresent(VOID); + #define FLT_MAX 3.402823466e+38F #define DBL_MAX 1.7976931348623157e+308 @@ -282,7 +314,7 @@ PAL_IsDebuggerPresent(VOID); #if defined(__cplusplus) #define NULL 0 #else -#define NULL ((void *)0) +#define NULL ((PVOID)0) #endif #if defined(PAL_STDCPP_COMPAT) && !defined(__cplusplus) @@ -299,16 +331,6 @@ typedef long time_t; #define _TIME_T_DEFINED #endif // !PAL_STDCPP_COMPAT -#define C1_UPPER 0x0001 /* upper case */ -#define C1_LOWER 0x0002 /* lower case */ -#define C1_DIGIT 0x0004 /* decimal digits */ -#define C1_SPACE 0x0008 /* spacing characters */ -#define C1_PUNCT 0x0010 /* punctuation characters */ -#define C1_CNTRL 0x0020 /* control characters */ -#define C1_BLANK 0x0040 /* blank characters */ -#define C1_XDIGIT 0x0080 /* other digits */ -#define C1_ALPHA 0x0100 /* any linguistic character */ - #define DLL_PROCESS_ATTACH 1 #define DLL_THREAD_ATTACH 2 #define DLL_THREAD_DETACH 3 @@ -321,17 +343,24 @@ typedef long time_t; #define PAL_INITIALIZE_REGISTER_SIGTERM_HANDLER 0x08 #define PAL_INITIALIZE_DEBUGGER_EXCEPTIONS 0x10 #define PAL_INITIALIZE_ENSURE_STACK_SIZE 0x20 +#define PAL_INITIALIZE_REGISTER_SIGNALS 0x40 // PAL_Initialize() flags -#define PAL_INITIALIZE (PAL_INITIALIZE_SYNC_THREAD | PAL_INITIALIZE_STD_HANDLES) +#define PAL_INITIALIZE (PAL_INITIALIZE_SYNC_THREAD | \ + PAL_INITIALIZE_STD_HANDLES) -// PAL_InitializeDLL() flags - don't start any of the helper threads -#define PAL_INITIALIZE_DLL PAL_INITIALIZE_NONE +// PAL_InitializeDLL() flags - don't start any of the helper threads or register any exceptions +#define PAL_INITIALIZE_DLL PAL_INITIALIZE_NONE // PAL_InitializeCoreCLR() flags -#define PAL_INITIALIZE_CORECLR (PAL_INITIALIZE | PAL_INITIALIZE_EXEC_ALLOCATOR | PAL_INITIALIZE_REGISTER_SIGTERM_HANDLER | PAL_INITIALIZE_DEBUGGER_EXCEPTIONS | PAL_INITIALIZE_ENSURE_STACK_SIZE) - -typedef DWORD (PALAPI *PTHREAD_START_ROUTINE)(LPVOID lpThreadParameter); +#define PAL_INITIALIZE_CORECLR (PAL_INITIALIZE | \ + PAL_INITIALIZE_EXEC_ALLOCATOR | \ + PAL_INITIALIZE_REGISTER_SIGTERM_HANDLER | \ + PAL_INITIALIZE_DEBUGGER_EXCEPTIONS | \ + PAL_INITIALIZE_ENSURE_STACK_SIZE | \ + PAL_INITIALIZE_REGISTER_SIGNALS) + +typedef DWORD (PALAPI_NOEXPORT *PTHREAD_START_ROUTINE)(LPVOID lpThreadParameter); typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE; /******************* PAL-Specific Entrypoints *****************************/ @@ -341,12 +370,25 @@ int PALAPI PAL_Initialize( int argc, - const char * const argv[]); + char * const argv[]); + +PALIMPORT +void +PALAPI +PAL_InitializeWithFlags( + DWORD flags); PALIMPORT int PALAPI -PAL_InitializeDLL(VOID); +PAL_InitializeDLL( + VOID); + +PALIMPORT +void +PALAPI +PAL_SetInitializeDLLFlags( + DWORD flags); PALIMPORT DWORD @@ -397,6 +439,14 @@ PALAPI PAL_SetShutdownCallback( IN PSHUTDOWN_CALLBACK callback); +PALIMPORT +BOOL +PALAPI +PAL_GenerateCoreDump( + IN LPCSTR dumpName, + IN INT dumpType, + IN BOOL diag); + typedef VOID (*PPAL_STARTUP_CALLBACK)( char *modulePath, HMODULE hModule, @@ -407,6 +457,7 @@ DWORD PALAPI PAL_RegisterForRuntimeStartup( IN DWORD dwProcessId, + IN LPCWSTR lpApplicationGroupId, IN PPAL_STARTUP_CALLBACK pfnCallback, IN PVOID parameter, OUT PVOID *ppUnregisterToken); @@ -422,7 +473,25 @@ BOOL PALAPI PAL_NotifyRuntimeStarted(VOID); -static const int MAX_DEBUGGER_TRANSPORT_PIPE_NAME_LENGTH = MAX_PATH; +#ifdef __APPLE__ +PALIMPORT +LPCSTR +PALAPI +PAL_GetApplicationGroupId(); +#endif + +static const unsigned int MAX_DEBUGGER_TRANSPORT_PIPE_NAME_LENGTH = MAX_PATH; + +PALIMPORT +VOID +PALAPI +PAL_GetTransportName( + const unsigned int MAX_TRANSPORT_NAME_LENGTH, + OUT char *name, + IN const char *prefix, + IN DWORD id, + IN const char *applicationGroupId, + IN const char *suffix); PALIMPORT VOID @@ -430,6 +499,7 @@ PALAPI PAL_GetTransportPipeName( OUT char *name, IN DWORD id, + IN const char *applicationGroupId, IN const char *suffix); PALIMPORT @@ -450,7 +520,7 @@ PAL_RegisterModule( IN LPCSTR lpLibFileName); PALIMPORT -VOID +VOID PALAPI PAL_UnregisterModule( IN HINSTANCE hInstance); @@ -564,11 +634,11 @@ MessageBoxW( // From win32.h #ifndef _CRTIMP -#ifdef __llvm__ +#ifdef __GNUC__ #define _CRTIMP -#else // __llvm__ +#else // __GNUC__ #define _CRTIMP __declspec(dllimport) -#endif // __llvm__ +#endif // __GNUC__ #endif // _CRTIMP /******************* winbase.h Entrypoints and defines ************************/ @@ -729,7 +799,7 @@ RemoveDirectoryW( #define RemoveDirectory RemoveDirectoryA #endif -typedef struct _BY_HANDLE_FILE_INFORMATION { +typedef struct _BY_HANDLE_FILE_INFORMATION { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; @@ -873,7 +943,13 @@ SetFileAttributesW( #define SetFileAttributes SetFileAttributesA #endif -typedef LPVOID LPOVERLAPPED; // diff from winbase.h +typedef struct _OVERLAPPED { + ULONG_PTR Internal; + ULONG_PTR InternalHigh; + DWORD Offset; + DWORD OffsetHigh; + HANDLE hEvent; +} OVERLAPPED, *LPOVERLAPPED; PALIMPORT BOOL @@ -1062,6 +1138,14 @@ GetTempPathW( IN DWORD nBufferLength, OUT LPWSTR lpBuffer); +PALIMPORT +DWORD +PALAPI +GetTempPathA( + IN DWORD nBufferLength, + OUT LPSTR lpBuffer); + + #ifdef UNICODE #define GetTempPath GetTempPathW #else @@ -1261,6 +1345,12 @@ PALAPI GetCurrentThreadId( VOID); +PALIMPORT +size_t +PALAPI +PAL_GetCurrentOSThreadId( + VOID); + // To work around multiply-defined symbols in the Carbon framework. #define GetCurrentThread PAL_GetCurrentThread PALIMPORT @@ -1494,6 +1584,17 @@ CreateThread( IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId); +PALIMPORT +HANDLE +PALAPI +PAL_CreateThread64( + IN LPSECURITY_ATTRIBUTES lpThreadAttributes, + IN DWORD dwStackSize, + IN LPTHREAD_START_ROUTINE lpStartAddress, + IN LPVOID lpParameter, + IN DWORD dwCreationFlags, + OUT SIZE_T* pThreadId); + PALIMPORT PAL_NORETURN VOID @@ -1507,7 +1608,7 @@ PALAPI ResumeThread( IN HANDLE hThread); -typedef VOID (PALAPI *PAPCFUNC)(ULONG_PTR dwParam); +typedef VOID (PALAPI_NOEXPORT *PAPCFUNC)(ULONG_PTR dwParam); PALIMPORT DWORD @@ -2313,7 +2414,7 @@ GetThreadTimes( OUT LPFILETIME lpExitTime, OUT LPFILETIME lpKernelTime, OUT LPFILETIME lpUserTime); - + #define TLS_OUT_OF_INDEXES ((DWORD)0xFFFFFFFF) PALIMPORT @@ -2342,12 +2443,12 @@ TlsFree( IN DWORD dwTlsIndex); PALIMPORT -void * +PVOID PALAPI PAL_GetStackBase(VOID); PALIMPORT -void * +PVOID PALAPI PAL_GetStackLimit(VOID); @@ -2356,6 +2457,11 @@ DWORD PALAPI PAL_GetLogicalCpuCountFromOS(VOID); +PALIMPORT +DWORD +PALAPI +PAL_GetTotalCpuCount(VOID); + PALIMPORT size_t PALAPI @@ -2364,7 +2470,7 @@ PAL_GetRestrictedPhysicalMemoryLimit(VOID); PALIMPORT BOOL PALAPI -PAL_GetWorkingSetSize(size_t* val); +PAL_GetPhysicalMemoryUsed(size_t* val); PALIMPORT BOOL @@ -2408,12 +2514,12 @@ PALIMPORT BOOL PALAPI PAL_VirtualUnwindOutOfProc(CONTEXT *context, KNONVOLATILE_ #define PAL_CS_NATIVE_DATA_SIZE 56 #elif defined(__NetBSD__) && defined(__i386__) #define PAL_CS_NATIVE_DATA_SIZE 56 -#else -#warning +#else +#warning #error PAL_CS_NATIVE_DATA_SIZE is not defined for this architecture #endif - -// + +// typedef struct _CRITICAL_SECTION { PVOID DebugInfo; LONG LockCount; @@ -2426,9 +2532,9 @@ typedef struct _CRITICAL_SECTION { volatile DWORD dwInitState; union CSNativeDataStorage { - BYTE rgNativeDataStorage[PAL_CS_NATIVE_DATA_SIZE]; - VOID * pvAlign; // make sure the storage is machine-pointer-size aligned - } csnds; + BYTE rgNativeDataStorage[PAL_CS_NATIVE_DATA_SIZE]; + PVOID pvAlign; // make sure the storage is machine-pointer-size aligned + } csnds; } CRITICAL_SECTION, *PCRITICAL_SECTION, *LPCRITICAL_SECTION; PALIMPORT VOID PALAPI EnterCriticalSection(IN OUT LPCRITICAL_SECTION lpCriticalSection); @@ -2465,6 +2571,7 @@ SetErrorMode( #define MEM_MAPPED 0x40000 #define MEM_TOP_DOWN 0x100000 #define MEM_WRITE_WATCH 0x200000 +#define MEM_LARGE_PAGES 0x20000000 #define MEM_RESERVE_EXECUTABLE 0x40000000 // reserve memory using executable memory allocator PALIMPORT @@ -2508,6 +2615,8 @@ OpenFileMappingW( #define OpenFileMapping OpenFileMappingA #endif +typedef INT_PTR (PALAPI_NOEXPORT *FARPROC)(); + PALIMPORT LPVOID PALAPI @@ -2551,17 +2660,23 @@ LoadLibraryExW( IN DWORD dwFlags); PALIMPORT -void * +NATIVE_LIBRARY_HANDLE PALAPI PAL_LoadLibraryDirect( IN LPCWSTR lpLibFileName); PALIMPORT -HMODULE +BOOL PALAPI -PAL_RegisterLibraryDirect( - IN void *dl_handle, - IN LPCWSTR lpLibFileName); +PAL_FreeLibraryDirect( + IN NATIVE_LIBRARY_HANDLE dl_handle); + +PALIMPORT +FARPROC +PALAPI +PAL_GetProcAddressDirect( + IN NATIVE_LIBRARY_HANDLE dl_handle, + IN LPCSTR lpProcName); /*++ Function: @@ -2578,7 +2693,8 @@ Return value: A valid base address if successful. 0 if failure --*/ -void * +PALIMPORT +PVOID PALAPI PAL_LOADLoadPEFile(HANDLE hFile); @@ -2594,9 +2710,10 @@ Return value: TRUE - success FALSE - failure (incorrect ptr, etc.) --*/ -BOOL +PALIMPORT +BOOL PALAPI -PAL_LOADUnloadPEFile(void * ptr); +PAL_LOADUnloadPEFile(PVOID ptr); #ifdef UNICODE #define LoadLibrary LoadLibraryW @@ -2606,8 +2723,6 @@ PAL_LOADUnloadPEFile(void * ptr); #define LoadLibraryEx LoadLibraryExA #endif -typedef INT_PTR (PALAPI *FARPROC)(); - PALIMPORT FARPROC PALAPI @@ -2663,10 +2778,11 @@ GetModuleFileNameExW( #define GetModuleFileNameEx GetModuleFileNameExW #endif -// Get base address of the module containing a given symbol -PALAPI +// Get base address of the module containing a given symbol +PALIMPORT LPCVOID -PAL_GetSymbolModuleBase(void *symbol); +PALAPI +PAL_GetSymbolModuleBase(PVOID symbol); PALIMPORT LPCSTR @@ -2719,7 +2835,7 @@ typedef struct _MEMORYSTATUSEX { DWORDLONG ullAvailExtendedVirtual; } MEMORYSTATUSEX, *LPMEMORYSTATUSEX; -PALIMPORT +PALIMPORT BOOL PALAPI GlobalMemoryStatusEx( @@ -2743,20 +2859,11 @@ VirtualQuery( OUT PMEMORY_BASIC_INFORMATION lpBuffer, IN SIZE_T dwLength); -PALIMPORT -VOID -PALAPI -RtlMoveMemory( - IN PVOID Destination, - IN CONST VOID *Source, - IN SIZE_T Length); - #define MoveMemory memmove #define CopyMemory memcpy #define FillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length)) #define ZeroMemory(Destination,Length) memset((Destination),0,(Length)) - PALIMPORT HANDLE PALAPI @@ -2886,7 +2993,7 @@ BOOL PALAPI IsValidCodePage( IN UINT CodePage); - + #define MB_PRECOMPOSED 0x00000001 #define MB_ERR_INVALID_CHARS 0x00000008 @@ -3004,7 +3111,7 @@ typedef struct _RUNTIME_FUNCTION { #define MAXIMUM_ALLOWED (0x02000000L) #define EVENT_MODIFY_STATE (0x0002) -#define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3) +#define EVENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3) #define MUTANT_QUERY_STATE (0x0001) #define MUTANT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE) @@ -3013,18 +3120,18 @@ typedef struct _RUNTIME_FUNCTION { #define SEMAPHORE_MODIFY_STATE (0x0002) #define SEMAPHORE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3) -#define PROCESS_TERMINATE (0x0001) -#define PROCESS_CREATE_THREAD (0x0002) -#define PROCESS_SET_SESSIONID (0x0004) -#define PROCESS_VM_OPERATION (0x0008) -#define PROCESS_VM_READ (0x0010) -#define PROCESS_VM_WRITE (0x0020) -#define PROCESS_DUP_HANDLE (0x0040) -#define PROCESS_CREATE_PROCESS (0x0080) -#define PROCESS_SET_QUOTA (0x0100) -#define PROCESS_SET_INFORMATION (0x0200) -#define PROCESS_QUERY_INFORMATION (0x0400) -#define PROCESS_SUSPEND_RESUME (0x0800) +#define PROCESS_TERMINATE (0x0001) +#define PROCESS_CREATE_THREAD (0x0002) +#define PROCESS_SET_SESSIONID (0x0004) +#define PROCESS_VM_OPERATION (0x0008) +#define PROCESS_VM_READ (0x0010) +#define PROCESS_VM_WRITE (0x0020) +#define PROCESS_DUP_HANDLE (0x0040) +#define PROCESS_CREATE_PROCESS (0x0080) +#define PROCESS_SET_QUOTA (0x0100) +#define PROCESS_SET_INFORMATION (0x0200) +#define PROCESS_QUERY_INFORMATION (0x0400) +#define PROCESS_SUSPEND_RESUME (0x0800) #define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \ 0xFFF) @@ -3071,24 +3178,6 @@ PALAPI DebugBreak( VOID); -PALIMPORT -int -PALAPI -lstrlenA( - IN LPCSTR lpString); - -PALIMPORT -int -PALAPI -lstrlenW( - IN LPCWSTR lpString); - -#ifdef UNICODE -#define lstrlen lstrlenW -#else -#define lstrlen lstrlenA -#endif - PALIMPORT DWORD PALAPI @@ -3155,14 +3244,13 @@ RaiseException( IN DWORD nNumberOfArguments, IN CONST ULONG_PTR *lpArguments); -#ifdef FEATURE_PAL_SXS PALIMPORT -PAL_NORETURN VOID PALAPI -PAL_RaiseException( - IN PEXCEPTION_POINTERS ExceptionPointers); -#endif // FEATURE_PAL_SXS +RaiseFailFastException( + IN PEXCEPTION_RECORD pExceptionRecord, + IN PCONTEXT pContextRecord, + IN DWORD dwFlags); PALIMPORT DWORD @@ -3204,7 +3292,7 @@ PAL_nanosleep( #ifndef FEATURE_PAL_SXS -typedef LONG (PALAPI *PTOP_LEVEL_EXCEPTION_FILTER)( +typedef LONG (PALAPI_NOEXPORT *PTOP_LEVEL_EXCEPTION_FILTER)( struct _EXCEPTION_POINTERS *ExceptionInfo); typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; @@ -3216,17 +3304,17 @@ SetUnhandledExceptionFilter( #else // FEATURE_PAL_SXS -typedef EXCEPTION_DISPOSITION (PALAPI *PVECTORED_EXCEPTION_HANDLER)( +typedef EXCEPTION_DISPOSITION (PALAPI_NOEXPORT *PVECTORED_EXCEPTION_HANDLER)( struct _EXCEPTION_POINTERS *ExceptionPointers); #endif // FEATURE_PAL_SXS // Define BitScanForward64 and BitScanForward // Per MSDN, BitScanForward64 will search the mask data from LSB to MSB for a set bit. -// If one is found, its bit position is returned in the out PDWORD argument and 1 is returned. -// Otherwise, 0 is returned. +// If one is found, its bit position is stored in the out PDWORD argument and 1 is returned; +// otherwise, an undefined value is stored in the out PDWORD argument and 0 is returned. // -// On GCC, the equivalent function is __builtin_ffsl. It returns 1+index of the least +// On GCC, the equivalent function is __builtin_ffsll. It returns 1+index of the least // significant set bit, or 0 if if mask is zero. // // The same is true for BitScanForward, except that the GCC function is __builtin_ffs. @@ -3239,16 +3327,12 @@ BitScanForward( IN OUT PDWORD Index, IN UINT qwMask) { - unsigned char bRet = FALSE; - int iIndex = __builtin_ffsl(qwMask); - if (iIndex != 0) - { - // Set the Index after deducting unity - *Index = (DWORD)(iIndex - 1); - bRet = TRUE; - } - - return bRet; + int iIndex = __builtin_ffs(qwMask); + // Set the Index after deducting unity + *Index = (DWORD)(iIndex - 1); + // Both GCC and Clang generate better, smaller code if we check whether the + // mask was/is zero rather than the equivalent check that iIndex is zero. + return qwMask != 0 ? TRUE : FALSE; } EXTERN_C @@ -3260,26 +3344,25 @@ BitScanForward64( IN OUT PDWORD Index, IN UINT64 qwMask) { - unsigned char bRet = FALSE; - int iIndex = __builtin_ffsl(qwMask); - if (iIndex != 0) - { - // Set the Index after deducting unity - *Index = (DWORD)(iIndex - 1); - bRet = TRUE; - } - - return bRet; + int iIndex = __builtin_ffsll(qwMask); + // Set the Index after deducting unity + *Index = (DWORD)(iIndex - 1); + // Both GCC and Clang generate better, smaller code if we check whether the + // mask was/is zero rather than the equivalent check that iIndex is zero. + return qwMask != 0 ? TRUE : FALSE; } // Define BitScanReverse64 and BitScanReverse -// Per MSDN, BitScanReverse64 or BitScanReverse will search the mask data from most significant bit (MSB) -// to least significant bit (LSB) for a set bit (1). -// If one is found, its bit position is returned in the out PDWORD argument and 1 is returned. -// Otherwise, 0 is returned. +// Per MSDN, BitScanReverse64 will search the mask data from MSB to LSB for a set bit. +// If one is found, its bit position is stored in the out PDWORD argument and 1 is returned. +// Otherwise, an undefined value is stored in the out PDWORD argument and 0 is returned. // -// On GCC, the equivalent function is __builtin_clzll or __builtin_clz. It returns 1+index of the most -// significant set bit, or undefined result if mask is zero. +// GCC/clang don't have a directly equivalent intrinsic; they do provide the __builtin_clzll +// intrinsic, which returns the number of leading 0-bits in x starting at the most significant +// bit position (the result is undefined when x = 0). +// +// The same is true for BitScanReverse, except that the GCC function is __builtin_clzl. + EXTERN_C PALIMPORT inline @@ -3289,14 +3372,14 @@ BitScanReverse( IN OUT PDWORD Index, IN UINT qwMask) { - unsigned char bRet = FALSE; - if (qwMask != 0) - { - *Index = (UINT) (8 * sizeof (UINT) - __builtin_clz(qwMask) - 1); - bRet = TRUE; - } - - return bRet; + // The result of __builtin_clzl is undefined when qwMask is zero, + // but it's still OK to call the intrinsic in that case (just don't use the output). + // Unconditionally calling the intrinsic in this way allows the compiler to + // emit branchless code for this function when possible (depending on how the + // intrinsic is implemented for the target platform). + int lzcount = __builtin_clzl(qwMask); + *Index = (DWORD)(31 - lzcount); + return qwMask != 0; } EXTERN_C @@ -3308,14 +3391,14 @@ BitScanReverse64( IN OUT PDWORD Index, IN UINT64 qwMask) { - unsigned char bRet = FALSE; - if (qwMask != 0) - { - *Index = (UINT) (8 * sizeof (UINT64) - __builtin_clzll(qwMask) - 1); - bRet = TRUE; - } - - return bRet; + // The result of __builtin_clzll is undefined when qwMask is zero, + // but it's still OK to call the intrinsic in that case (just don't use the output). + // Unconditionally calling the intrinsic in this way allows the compiler to + // emit branchless code for this function when possible (depending on how the + // intrinsic is implemented for the target platform). + int lzcount = __builtin_clzll(qwMask); + *Index = (DWORD)(63 - lzcount); + return qwMask != 0; } FORCEINLINE void PAL_ArmInterlockedOperationBarrier() @@ -3347,12 +3430,12 @@ simultaneously. Parameters -lpAddend -[in/out] Pointer to the variable to increment. +lpAddend +[in/out] Pointer to the variable to increment. Return Values -The return value is the resulting incremented value. +The return value is the resulting incremented value. --*/ EXTERN_C @@ -3392,8 +3475,8 @@ simultaneously. Parameters -lpAddend -[in/out] Pointer to the variable to decrement. +lpAddend +[in/out] Pointer to the variable to decrement. Return Values @@ -3439,15 +3522,15 @@ variable simultaneously. Parameters -Target +Target [in/out] Pointer to the value to exchange. The function sets this variable to Value, and returns its prior value. -Value -[in] Specifies a new value for the variable pointed to by Target. +Value +[in] Specifies a new value for the variable pointed to by Target. Return Values -The function returns the initial value pointed to by Target. +The function returns the initial value pointed to by Target. --*/ EXTERN_C @@ -3459,7 +3542,7 @@ InterlockedExchange( IN OUT LONG volatile *Target, IN LONG Value) { - LONG result = __sync_swap(Target, Value); + LONG result = __atomic_exchange_n(Target, Value, __ATOMIC_ACQ_REL); PAL_ArmInterlockedOperationBarrier(); return result; } @@ -3473,7 +3556,7 @@ InterlockedExchange64( IN OUT LONGLONG volatile *Target, IN LONGLONG Value) { - LONGLONG result = __sync_swap(Target, Value); + LONGLONG result = __atomic_exchange_n(Target, Value, __ATOMIC_ACQ_REL); PAL_ArmInterlockedOperationBarrier(); return result; } @@ -3707,7 +3790,7 @@ PALIMPORT BOOL PALAPI PAL_HasGetCurrentProcessorNumber(VOID); - + #define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100 #define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200 #define FORMAT_MESSAGE_FROM_STRING 0x00000400 @@ -3755,23 +3838,23 @@ GetCommandLineW( #endif PALIMPORT -VOID -PALAPI +VOID +PALAPI RtlRestoreContext( IN PCONTEXT ContextRecord, IN PEXCEPTION_RECORD ExceptionRecord ); PALIMPORT -VOID -PALAPI +VOID +PALAPI RtlCaptureContext( OUT PCONTEXT ContextRecord ); PALIMPORT -UINT -PALAPI +UINT +PALAPI GetWriteWatch( IN DWORD dwFlags, IN PVOID lpBaseAddress, @@ -3782,16 +3865,16 @@ GetWriteWatch( ); PALIMPORT -UINT -PALAPI +UINT +PALAPI ResetWriteWatch( IN LPVOID lpBaseAddress, IN SIZE_T dwRegionSize ); PALIMPORT -VOID -PALAPI +VOID +PALAPI FlushProcessWriteBuffers(VOID); typedef void (*PAL_ActivationFunction)(CONTEXT *context); @@ -3919,88 +4002,6 @@ CreatePipe( // NUMA related APIs // -typedef enum _PROCESSOR_CACHE_TYPE { - CacheUnified, - CacheInstruction, - CacheData, - CacheTrace -} PROCESSOR_CACHE_TYPE; - -typedef struct _PROCESSOR_NUMBER { - WORD Group; - BYTE Number; - BYTE Reserved; -} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER; - -typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP { - RelationProcessorCore, - RelationNumaNode, - RelationCache, - RelationProcessorPackage, - RelationGroup, - RelationAll = 0xffff -} LOGICAL_PROCESSOR_RELATIONSHIP; - -typedef ULONG_PTR KAFFINITY; - -#define ANYSIZE_ARRAY 1 - -typedef struct _GROUP_AFFINITY { - KAFFINITY Mask; - WORD Group; - WORD Reserved[3]; -} GROUP_AFFINITY, *PGROUP_AFFINITY; - -typedef struct _PROCESSOR_GROUP_INFO { - BYTE MaximumProcessorCount; - BYTE ActiveProcessorCount; - BYTE Reserved[38]; - KAFFINITY ActiveProcessorMask; -} PROCESSOR_GROUP_INFO, *PPROCESSOR_GROUP_INFO; - -typedef struct _PROCESSOR_RELATIONSHIP { - BYTE Flags; - BYTE EfficiencyClass; - BYTE Reserved[21]; - WORD GroupCount; - GROUP_AFFINITY GroupMask[ANYSIZE_ARRAY]; -} PROCESSOR_RELATIONSHIP, *PPROCESSOR_RELATIONSHIP; - -typedef struct _GROUP_RELATIONSHIP { - WORD MaximumGroupCount; - WORD ActiveGroupCount; - BYTE Reserved[20]; - PROCESSOR_GROUP_INFO GroupInfo[ANYSIZE_ARRAY]; -} GROUP_RELATIONSHIP, *PGROUP_RELATIONSHIP; - -typedef struct _NUMA_NODE_RELATIONSHIP { - DWORD NodeNumber; - BYTE Reserved[20]; - GROUP_AFFINITY GroupMask; -} NUMA_NODE_RELATIONSHIP, *PNUMA_NODE_RELATIONSHIP; - -typedef struct _CACHE_RELATIONSHIP { - BYTE Level; - BYTE Associativity; - WORD LineSize; - DWORD CacheSize; - PROCESSOR_CACHE_TYPE Type; - BYTE Reserved[20]; - GROUP_AFFINITY GroupMask; -} CACHE_RELATIONSHIP, *PCACHE_RELATIONSHIP; - -typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX { - LOGICAL_PROCESSOR_RELATIONSHIP Relationship; - DWORD Size; - union { - PROCESSOR_RELATIONSHIP Processor; - NUMA_NODE_RELATIONSHIP NumaNode; - CACHE_RELATIONSHIP Cache; - GROUP_RELATIONSHIP Group; - }; -} SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, *PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX; - - PALIMPORT BOOL PALAPI @@ -4011,10 +4012,7 @@ GetNumaHighestNodeNumber( PALIMPORT BOOL PALAPI -GetNumaProcessorNodeEx( - IN PPROCESSOR_NUMBER Processor, - OUT PUSHORT NodeNumber -); +PAL_GetNumaProcessorNode(WORD procNo, WORD* node); PALIMPORT LPVOID @@ -4031,61 +4029,12 @@ VirtualAllocExNuma( PALIMPORT BOOL PALAPI -GetLogicalProcessorInformationEx( - IN LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType, - OUT OPTIONAL PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Buffer, - IN OUT PDWORD ReturnedLength -); - -PALIMPORT -DWORD_PTR -PALAPI -SetThreadAffinityMask( - IN HANDLE hThread, - IN DWORD_PTR dwThreadAffinityMask -); - -PALIMPORT -BOOL -PALAPI -SetThreadGroupAffinity( - IN HANDLE hThread, - IN const GROUP_AFFINITY *GroupAffinity, - OUT OPTIONAL PGROUP_AFFINITY PreviousGroupAffinity -); - -PALIMPORT -BOOL -PALAPI -GetThreadGroupAffinity( - IN HANDLE hThread, - OUT PGROUP_AFFINITY GroupAffinity -); - -PALIMPORT -VOID -PALAPI -GetCurrentProcessorNumberEx( - OUT PPROCESSOR_NUMBER ProcNumber -); - -PALIMPORT -BOOL -PALAPI -GetProcessAffinityMask( - IN HANDLE hProcess, - OUT PDWORD_PTR lpProcessAffinityMask, - OUT PDWORD_PTR lpSystemAffinityMask -); +PAL_SetCurrentThreadAffinity(WORD procNo); PALIMPORT BOOL PALAPI -SetThreadIdealProcessorEx( - IN HANDLE hThread, - IN PPROCESSOR_NUMBER lpIdealProcessor, - OUT PPROCESSOR_NUMBER lpPreviousIdealProcessor -); +PAL_GetCurrentThreadAffinitySet(SIZE_T size, UINT_PTR* data); // // The types of events that can be logged. @@ -4129,14 +4078,6 @@ SetThreadIdealProcessorEx( #define wcsncpy PAL_wcsncpy #define wcstok PAL_wcstok #define wcscspn PAL_wcscspn -#define iswprint PAL_iswprint -#define iswalpha PAL_iswalpha -#define iswdigit PAL_iswdigit -#define iswspace PAL_iswspace -#define iswupper PAL_iswupper -#define iswxdigit PAL_iswxdigit -#define towlower PAL_towlower -#define towupper PAL_towupper #define realloc PAL_realloc #define fopen PAL_fopen #define strtok PAL_strtok @@ -4181,18 +4122,26 @@ SetThreadIdealProcessorEx( #define asinh PAL_asinh #define atan2 PAL_atan2 #define exp PAL_exp +#define fma PAL_fma +#define ilogb PAL_ilogb #define log PAL_log +#define log2 PAL_log2 #define log10 PAL_log10 #define pow PAL_pow +#define scalbn PAL_scalbn #define acosf PAL_acosf #define acoshf PAL_acoshf #define asinf PAL_asinf #define asinhf PAL_asinhf #define atan2f PAL_atan2f #define expf PAL_expf +#define fmaf PAL_fmaf +#define ilogbf PAL_ilogbf #define logf PAL_logf +#define log2f PAL_log2f #define log10f PAL_log10f #define powf PAL_powf +#define scalbnf PAL_scalbnf #define malloc PAL_malloc #define free PAL_free #define mkstemp PAL_mkstemp @@ -4200,13 +4149,14 @@ SetThreadIdealProcessorEx( #define _strdup PAL__strdup #define _getcwd PAL__getcwd #define _open PAL__open +#define _pread PAL__pread #define _close PAL__close #define _wcstoui64 PAL__wcstoui64 #define _flushall PAL__flushall #define strnlen PAL_strnlen #define wcsnlen PAL_wcsnlen -#ifdef _AMD64_ +#ifdef _AMD64_ #define _mm_getcsr PAL__mm_getcsr #define _mm_setcsr PAL__mm_setcsr #endif // _AMD64_ @@ -4229,6 +4179,12 @@ SetThreadIdealProcessorEx( typedef int errno_t; +#if defined(__WINT_TYPE__) +typedef __WINT_TYPE__ wint_t; +#else +typedef unsigned int wint_t; +#endif + #ifndef PAL_STDCPP_COMPAT typedef struct { @@ -4249,9 +4205,10 @@ See MSDN doc for memcpy --*/ EXTERN_C PALIMPORT -void *PAL_memcpy (void *dest, const void *src, size_t count); +DLLEXPORT +void *PAL_memcpy (void *dest, const void * src, size_t count); -PALIMPORT void * __cdecl memcpy(void *, const void *, size_t); +PALIMPORT void * __cdecl memcpy(void *, const void *, size_t) THROW_DECL; #define memcpy PAL_memcpy #define IS_PAL_memcpy 1 @@ -4264,7 +4221,7 @@ PALIMPORT int __cdecl memcmp(const void *, const void *, size_t); PALIMPORT void * __cdecl memset(void *, int, size_t); PALIMPORT void * __cdecl memmove(void *, const void *, size_t); PALIMPORT void * __cdecl memchr(const void *, int, size_t); -PALIMPORT long long int __cdecl atoll(const char *); +PALIMPORT long long int __cdecl atoll(const char *) THROW_DECL; PALIMPORT size_t __cdecl strlen(const char *); PALIMPORT int __cdecl strcmp(const char*, const char *); PALIMPORT int __cdecl strncmp(const char*, const char *, size_t); @@ -4295,7 +4252,14 @@ PALIMPORT int __cdecl isupper(int); PALIMPORT int __cdecl islower(int); PALIMPORT int __cdecl tolower(int); PALIMPORT int __cdecl toupper(int); - +PALIMPORT int __cdecl iswalpha(wint_t); +PALIMPORT int __cdecl iswdigit(wint_t); +PALIMPORT int __cdecl iswupper(wint_t); +PALIMPORT int __cdecl iswprint(wint_t); +PALIMPORT int __cdecl iswspace(wint_t); +PALIMPORT int __cdecl iswxdigit(wint_t); +PALIMPORT wint_t __cdecl towupper(wint_t); +PALIMPORT wint_t __cdecl towlower(wint_t); #endif // PAL_STDCPP_COMPAT /* _TRUNCATE */ @@ -4303,62 +4267,54 @@ PALIMPORT int __cdecl toupper(int); #define _TRUNCATE ((size_t)-1) #endif -PALIMPORT errno_t __cdecl memcpy_s(void *, size_t, const void *, size_t); +PALIMPORT DLLEXPORT errno_t __cdecl memcpy_s(void *, size_t, const void *, size_t) THROW_DECL; PALIMPORT errno_t __cdecl memmove_s(void *, size_t, const void *, size_t); PALIMPORT char * __cdecl _strlwr(char *); -PALIMPORT int __cdecl _stricmp(const char *, const char *); -PALIMPORT int __cdecl vsprintf_s(char *, size_t, const char *, va_list); +PALIMPORT DLLEXPORT int __cdecl _stricmp(const char *, const char *); +PALIMPORT DLLEXPORT int __cdecl vsprintf_s(char *, size_t, const char *, va_list); PALIMPORT char * __cdecl _gcvt_s(char *, int, double, int); PALIMPORT int __cdecl __iscsym(int); PALIMPORT unsigned char * __cdecl _mbsinc(const unsigned char *); PALIMPORT unsigned char * __cdecl _mbsninc(const unsigned char *, size_t); PALIMPORT unsigned char * __cdecl _mbsdec(const unsigned char *, const unsigned char *); -PALIMPORT int __cdecl _wcsicmp(const WCHAR *, const WCHAR*); +PALIMPORT DLLEXPORT int __cdecl _wcsicmp(const WCHAR *, const WCHAR*); PALIMPORT int __cdecl _wcsnicmp(const WCHAR *, const WCHAR *, size_t); PALIMPORT int __cdecl _vsnprintf(char *, size_t, const char *, va_list); -PALIMPORT int __cdecl _vsnprintf_s(char *, size_t, size_t, const char *, va_list); -PALIMPORT int __cdecl _vsnwprintf_s(WCHAR *, size_t, size_t, const WCHAR *, va_list); -PALIMPORT int __cdecl _snwprintf_s(WCHAR *, size_t, size_t, const WCHAR *, ...); -PALIMPORT int __cdecl _snprintf_s(char *, size_t, size_t, const char *, ...); -PALIMPORT int __cdecl sprintf_s(char *, size_t, const char *, ... ); -PALIMPORT int __cdecl swprintf_s(WCHAR *, size_t, const WCHAR *, ... ); +PALIMPORT DLLEXPORT int __cdecl _vsnprintf_s(char *, size_t, size_t, const char *, va_list); +PALIMPORT DLLEXPORT int __cdecl _vsnwprintf_s(WCHAR *, size_t, size_t, const WCHAR *, va_list); +PALIMPORT DLLEXPORT int __cdecl _snwprintf_s(WCHAR *, size_t, size_t, const WCHAR *, ...); +PALIMPORT DLLEXPORT int __cdecl _snprintf_s(char *, size_t, size_t, const char *, ...); +PALIMPORT DLLEXPORT int __cdecl sprintf_s(char *, size_t, const char *, ... ); +PALIMPORT DLLEXPORT int __cdecl swprintf_s(WCHAR *, size_t, const WCHAR *, ... ); PALIMPORT int __cdecl _snwprintf_s(WCHAR *, size_t, size_t, const WCHAR *, ...); PALIMPORT int __cdecl vswprintf_s( WCHAR *, size_t, const WCHAR *, va_list); -PALIMPORT int __cdecl sscanf_s(const char *, const char *, ...); -PALIMPORT errno_t __cdecl _itow_s(int, WCHAR *, size_t, int); +PALIMPORT DLLEXPORT int __cdecl sscanf_s(const char *, const char *, ...); +PALIMPORT DLLEXPORT errno_t __cdecl _itow_s(int, WCHAR *, size_t, int); -PALIMPORT size_t __cdecl PAL_wcslen(const WCHAR *); -PALIMPORT int __cdecl PAL_wcscmp(const WCHAR*, const WCHAR*); -PALIMPORT int __cdecl PAL_wcsncmp(const WCHAR *, const WCHAR *, size_t); -PALIMPORT WCHAR * __cdecl PAL_wcscat(WCHAR *, const WCHAR *); +PALIMPORT DLLEXPORT size_t __cdecl PAL_wcslen(const WCHAR *); +PALIMPORT DLLEXPORT int __cdecl PAL_wcscmp(const WCHAR*, const WCHAR*); +PALIMPORT DLLEXPORT int __cdecl PAL_wcsncmp(const WCHAR *, const WCHAR *, size_t); +PALIMPORT DLLEXPORT WCHAR * __cdecl PAL_wcscat(WCHAR *, const WCHAR *); PALIMPORT WCHAR * __cdecl PAL_wcsncat(WCHAR *, const WCHAR *, size_t); PALIMPORT WCHAR * __cdecl PAL_wcscpy(WCHAR *, const WCHAR *); PALIMPORT WCHAR * __cdecl PAL_wcsncpy(WCHAR *, const WCHAR *, size_t); -PALIMPORT const WCHAR * __cdecl PAL_wcschr(const WCHAR *, WCHAR); -PALIMPORT const WCHAR * __cdecl PAL_wcsrchr(const WCHAR *, WCHAR); +PALIMPORT DLLEXPORT const WCHAR * __cdecl PAL_wcschr(const WCHAR *, WCHAR); +PALIMPORT DLLEXPORT const WCHAR * __cdecl PAL_wcsrchr(const WCHAR *, WCHAR); PALIMPORT WCHAR _WConst_return * __cdecl PAL_wcspbrk(const WCHAR *, const WCHAR *); -PALIMPORT WCHAR _WConst_return * __cdecl PAL_wcsstr(const WCHAR *, const WCHAR *); +PALIMPORT DLLEXPORT WCHAR _WConst_return * __cdecl PAL_wcsstr(const WCHAR *, const WCHAR *); PALIMPORT WCHAR * __cdecl PAL_wcstok(WCHAR *, const WCHAR *); -PALIMPORT size_t __cdecl PAL_wcscspn(const WCHAR *, const WCHAR *); +PALIMPORT DLLEXPORT size_t __cdecl PAL_wcscspn(const WCHAR *, const WCHAR *); PALIMPORT int __cdecl PAL_swprintf(WCHAR *, const WCHAR *, ...); PALIMPORT int __cdecl PAL_vswprintf(WCHAR *, const WCHAR *, va_list); PALIMPORT int __cdecl PAL_swscanf(const WCHAR *, const WCHAR *, ...); PALIMPORT LONG __cdecl PAL_wcstol(const WCHAR *, WCHAR **, int); -PALIMPORT ULONG __cdecl PAL_wcstoul(const WCHAR *, WCHAR **, int); +PALIMPORT DLLEXPORT ULONG __cdecl PAL_wcstoul(const WCHAR *, WCHAR **, int); PALIMPORT size_t __cdecl PAL_wcsspn (const WCHAR *, const WCHAR *); PALIMPORT double __cdecl PAL_wcstod(const WCHAR *, WCHAR **); -PALIMPORT int __cdecl PAL_iswalpha(WCHAR); -PALIMPORT int __cdecl PAL_iswprint(WCHAR); -PALIMPORT int __cdecl PAL_iswupper(WCHAR); -PALIMPORT int __cdecl PAL_iswspace(WCHAR); -PALIMPORT int __cdecl PAL_iswdigit(WCHAR); -PALIMPORT int __cdecl PAL_iswxdigit(WCHAR); -PALIMPORT WCHAR __cdecl PAL_towlower(WCHAR); -PALIMPORT WCHAR __cdecl PAL_towupper(WCHAR); PALIMPORT WCHAR * __cdecl _wcslwr(WCHAR *); -PALIMPORT ULONGLONG _wcstoui64(const WCHAR *, WCHAR **, int); -PALIMPORT errno_t __cdecl _i64tow_s(long long, WCHAR *, size_t, int); +PALIMPORT DLLEXPORT ULONGLONG _wcstoui64(const WCHAR *, WCHAR **, int); +PALIMPORT DLLEXPORT errno_t __cdecl _i64tow_s(long long, WCHAR *, size_t, int); PALIMPORT int __cdecl _wtoi(const WCHAR *); #ifdef __cplusplus @@ -4374,7 +4330,15 @@ inline WCHAR *PAL_wcsstr(WCHAR *_S, const WCHAR *_P) } #endif -#if !__has_builtin(_rotl) +#if defined(__llvm__) +#define HAS_ROTL __has_builtin(_rotl) +#define HAS_ROTR __has_builtin(_rotr) +#else +#define HAS_ROTL 0 +#define HAS_ROTR 0 +#endif + +#if !HAS_ROTL /*++ Function: _rotl @@ -4392,14 +4356,14 @@ unsigned int __cdecl _rotl(unsigned int value, int shift) retval = (value << shift) | (value >> (sizeof(int) * CHAR_BIT - shift)); return retval; } -#endif // !__has_builtin(_rotl) +#endif // !HAS_ROTL // On 64 bit unix, make the long an int. #ifdef BIT64 #define _lrotl _rotl #endif // BIT64 -#if !__has_builtin(_rotr) +#if !HAS_ROTR /*++ Function: @@ -4419,15 +4383,15 @@ unsigned int __cdecl _rotr(unsigned int value, int shift) return retval; } -#endif // !__has_builtin(_rotr) +#endif // !HAS_ROTR PALIMPORT int __cdecl abs(int); -#ifndef PAL_STDCPP_COMPAT -PALIMPORT LONG __cdecl labs(LONG); -#endif // !PAL_STDCPP_COMPAT // clang complains if this is declared with __int64 PALIMPORT long long __cdecl llabs(long long); +#ifndef PAL_STDCPP_COMPAT +PALIMPORT LONG __cdecl labs(LONG); +PALIMPORT int __cdecl _signbit(double); PALIMPORT int __cdecl _finite(double); PALIMPORT int __cdecl _isnan(double); PALIMPORT double __cdecl _copysign(double, double); @@ -4435,27 +4399,32 @@ PALIMPORT double __cdecl acos(double); PALIMPORT double __cdecl acosh(double); PALIMPORT double __cdecl asin(double); PALIMPORT double __cdecl asinh(double); -PALIMPORT double __cdecl atan(double); -PALIMPORT double __cdecl atanh(double); +PALIMPORT double __cdecl atan(double) THROW_DECL; +PALIMPORT double __cdecl atanh(double) THROW_DECL; PALIMPORT double __cdecl atan2(double, double); -PALIMPORT double __cdecl cbrt(double); +PALIMPORT double __cdecl cbrt(double) THROW_DECL; PALIMPORT double __cdecl ceil(double); PALIMPORT double __cdecl cos(double); PALIMPORT double __cdecl cosh(double); PALIMPORT double __cdecl exp(double); PALIMPORT double __cdecl fabs(double); PALIMPORT double __cdecl floor(double); -PALIMPORT double __cdecl fmod(double, double); +PALIMPORT double __cdecl fmod(double, double); +PALIMPORT double __cdecl fma(double, double, double); +PALIMPORT int __cdecl ilogb(double); PALIMPORT double __cdecl log(double); +PALIMPORT double __cdecl log2(double); PALIMPORT double __cdecl log10(double); PALIMPORT double __cdecl modf(double, double*); PALIMPORT double __cdecl pow(double, double); +PALIMPORT double __cdecl scalbn(double, int); PALIMPORT double __cdecl sin(double); PALIMPORT double __cdecl sinh(double); PALIMPORT double __cdecl sqrt(double); PALIMPORT double __cdecl tan(double); PALIMPORT double __cdecl tanh(double); +PALIMPORT int __cdecl _signbitf(float); PALIMPORT int __cdecl _finitef(float); PALIMPORT int __cdecl _isnanf(float); PALIMPORT float __cdecl _copysignf(float, float); @@ -4463,26 +4432,31 @@ PALIMPORT float __cdecl acosf(float); PALIMPORT float __cdecl acoshf(float); PALIMPORT float __cdecl asinf(float); PALIMPORT float __cdecl asinhf(float); -PALIMPORT float __cdecl atanf(float); -PALIMPORT float __cdecl atanhf(float); +PALIMPORT float __cdecl atanf(float) THROW_DECL; +PALIMPORT float __cdecl atanhf(float) THROW_DECL; PALIMPORT float __cdecl atan2f(float, float); -PALIMPORT float __cdecl cbrtf(float); +PALIMPORT float __cdecl cbrtf(float) THROW_DECL; PALIMPORT float __cdecl ceilf(float); PALIMPORT float __cdecl cosf(float); PALIMPORT float __cdecl coshf(float); PALIMPORT float __cdecl expf(float); PALIMPORT float __cdecl fabsf(float); PALIMPORT float __cdecl floorf(float); -PALIMPORT float __cdecl fmodf(float, float); +PALIMPORT float __cdecl fmodf(float, float); +PALIMPORT float __cdecl fmaf(float, float, float); +PALIMPORT int __cdecl ilogbf(float); PALIMPORT float __cdecl logf(float); +PALIMPORT float __cdecl log2f(float); PALIMPORT float __cdecl log10f(float); PALIMPORT float __cdecl modff(float, float*); PALIMPORT float __cdecl powf(float, float); +PALIMPORT float __cdecl scalbnf(float, int); PALIMPORT float __cdecl sinf(float); PALIMPORT float __cdecl sinhf(float); PALIMPORT float __cdecl sqrtf(float); PALIMPORT float __cdecl tanf(float); PALIMPORT float __cdecl tanhf(float); +#endif // !PAL_STDCPP_COMPAT #ifndef PAL_STDCPP_COMPAT @@ -4496,9 +4470,9 @@ inline __int64 abs(__int64 _X) { } #endif -PALIMPORT void * __cdecl malloc(size_t); -PALIMPORT void __cdecl free(void *); -PALIMPORT void * __cdecl realloc(void *, size_t); +PALIMPORT DLLEXPORT void * __cdecl malloc(size_t); +PALIMPORT DLLEXPORT void __cdecl free(void *); +PALIMPORT DLLEXPORT void * __cdecl realloc(void *, size_t); PALIMPORT char * __cdecl _strdup(const char *); #if defined(_MSC_VER) @@ -4517,13 +4491,14 @@ PALIMPORT char * __cdecl _strdup(const char *); PALIMPORT PAL_NORETURN void __cdecl exit(int); int __cdecl atexit(void (__cdecl *function)(void)); -PALIMPORT void __cdecl qsort(void *, size_t, size_t, int (__cdecl *)(const void *, const void *)); -PALIMPORT void * __cdecl bsearch(const void *, const void *, size_t, size_t, -int (__cdecl *)(const void *, const void *)); - PALIMPORT char * __cdecl _fullpath(char *, const char *, size_t); #ifndef PAL_STDCPP_COMPAT + +PALIMPORT DLLEXPORT void __cdecl qsort(void *, size_t, size_t, int(__cdecl *)(const void *, const void *)); +PALIMPORT DLLEXPORT void * __cdecl bsearch(const void *, const void *, size_t, size_t, + int(__cdecl *)(const void *, const void *)); + PALIMPORT time_t __cdecl time(time_t *); struct tm { @@ -4544,8 +4519,10 @@ PALIMPORT char * __cdecl ctime(const time_t *); #endif // !PAL_STDCPP_COMPAT PALIMPORT int __cdecl _open_osfhandle(INT_PTR, int); -PALIMPORT int __cdecl _close(int); -PALIMPORT int __cdecl _flushall(); +PALIMPORT DLLEXPORT int __cdecl _open(const char *szPath, int nFlags, ...); +PALIMPORT DLLEXPORT size_t __cdecl _pread(int fd, void *buf, size_t nbytes, ULONG64 offset); +PALIMPORT DLLEXPORT int __cdecl _close(int); +PALIMPORT DLLEXPORT int __cdecl _flushall(); #ifdef PAL_STDCPP_COMPAT @@ -4578,14 +4555,14 @@ typedef struct _FILE PAL_FILE; PALIMPORT int __cdecl PAL_fclose(PAL_FILE *); PALIMPORT void __cdecl PAL_setbuf(PAL_FILE *, char*); -PALIMPORT int __cdecl PAL_fflush(PAL_FILE *); +PALIMPORT DLLEXPORT int __cdecl PAL_fflush(PAL_FILE *); PALIMPORT size_t __cdecl PAL_fwrite(const void *, size_t, size_t, PAL_FILE *); PALIMPORT size_t __cdecl PAL_fread(void *, size_t, size_t, PAL_FILE *); PALIMPORT char * __cdecl PAL_fgets(char *, int, PAL_FILE *); PALIMPORT int __cdecl PAL_fputs(const char *, PAL_FILE *); PALIMPORT int __cdecl PAL_fputc(int c, PAL_FILE *stream); PALIMPORT int __cdecl PAL_putchar(int c); -PALIMPORT int __cdecl PAL_fprintf(PAL_FILE *, const char *, ...); +PALIMPORT DLLEXPORT int __cdecl PAL_fprintf(PAL_FILE *, const char *, ...); PALIMPORT int __cdecl PAL_vfprintf(PAL_FILE *, const char *, va_list); PALIMPORT int __cdecl PAL_fseek(PAL_FILE *, LONG, int); PALIMPORT LONG __cdecl PAL_ftell(PAL_FILE *); @@ -4597,7 +4574,7 @@ PALIMPORT int __cdecl PAL_fgetc(PAL_FILE *stream); PALIMPORT int __cdecl PAL_ungetc(int c, PAL_FILE *stream); PALIMPORT int __cdecl PAL_setvbuf(PAL_FILE *stream, char *, int, size_t); PALIMPORT WCHAR * __cdecl PAL_fgetws(WCHAR *, int, PAL_FILE *); -PALIMPORT int __cdecl PAL_fwprintf(PAL_FILE *, const WCHAR *, ...); +PALIMPORT DLLEXPORT int __cdecl PAL_fwprintf(PAL_FILE *, const WCHAR *, ...); PALIMPORT int __cdecl PAL_vfwprintf(PAL_FILE *, const WCHAR *, va_list); PALIMPORT int __cdecl PAL_wprintf(const WCHAR*, ...); @@ -4616,7 +4593,7 @@ PALIMPORT PAL_FILE * __cdecl _wfsopen(const WCHAR *, const WCHAR *, int); PALIMPORT int __cdecl rand(void); PALIMPORT void __cdecl srand(unsigned int); -PALIMPORT int __cdecl printf(const char *, ...); +PALIMPORT DLLEXPORT int __cdecl printf(const char *, ...); PALIMPORT int __cdecl vprintf(const char *, va_list); #ifdef _MSC_VER @@ -4625,10 +4602,10 @@ PALIMPORT int __cdecl vprintf(const char *, va_list); #define PAL_get_caller 0 #endif -PALIMPORT PAL_FILE * __cdecl PAL_get_stdout(int caller); +PALIMPORT DLLEXPORT PAL_FILE * __cdecl PAL_get_stdout(int caller); PALIMPORT PAL_FILE * __cdecl PAL_get_stdin(int caller); -PALIMPORT PAL_FILE * __cdecl PAL_get_stderr(int caller); -PALIMPORT int * __cdecl PAL_errno(int caller); +PALIMPORT DLLEXPORT PAL_FILE * __cdecl PAL_get_stderr(int caller); +PALIMPORT DLLEXPORT int * __cdecl PAL_errno(int caller); #ifdef PAL_STDCPP_COMPAT #define PAL_stdout (PAL_get_stdout(PAL_get_caller)) @@ -4642,11 +4619,14 @@ PALIMPORT int * __cdecl PAL_errno(int caller); #define errno (*PAL_errno(PAL_get_caller)) #endif // PAL_STDCPP_COMPAT -PALIMPORT char * __cdecl getenv(const char *); -PALIMPORT int __cdecl _putenv(const char *); +PALIMPORT DLLEXPORT char * __cdecl getenv(const char *); +PALIMPORT DLLEXPORT int __cdecl _putenv(const char *); #define ERANGE 34 +PALIMPORT WCHAR __cdecl PAL_ToUpperInvariant(WCHAR); +PALIMPORT WCHAR __cdecl PAL_ToLowerInvariant(WCHAR); + /******************* PAL-specific I/O completion port *****************/ typedef struct _PAL_IOCP_CPU_INFORMATION { @@ -4728,7 +4708,7 @@ typedef enum _PAL_Boundary { PAL_BoundaryTop, // closer to main() PAL_BoundaryBottom, // closer to execution PAL_BoundaryEH, // out-of-band during EH - + PAL_BoundaryMax = PAL_BoundaryEH } PAL_Boundary; @@ -4837,10 +4817,10 @@ class PAL_EnterHolder { return m_palError; } - + void SuppressRelease() { - // Used to avoid calling PAL_Leave() when + // Used to avoid calling PAL_Leave() when // another code path will explicitly do so. m_fEntered = FALSE; } @@ -4890,7 +4870,7 @@ PALIMPORT VOID PALAPI PAL_FreeExceptionRecords( - IN EXCEPTION_RECORD *exceptionRecord, + IN EXCEPTION_RECORD *exceptionRecord, IN CONTEXT *contextRecord); #define EXCEPTION_CONTINUE_SEARCH 0 @@ -4900,7 +4880,7 @@ PAL_FreeExceptionRecords( struct PAL_SEHException { private: - static const SIZE_T NoTargetFrameSp = SIZE_MAX; + static const SIZE_T NoTargetFrameSp = (SIZE_T)SIZE_MAX; void Move(PAL_SEHException& ex) { @@ -4939,7 +4919,7 @@ struct PAL_SEHException PAL_SEHException() { Clear(); - } + } // The copy constructor and copy assignment operators are deleted so that the PAL_SEHException // can never be copied, only moved. This enables simple lifetime management of the exception and @@ -4950,7 +4930,7 @@ struct PAL_SEHException PAL_SEHException(PAL_SEHException&& ex) { Move(ex); - } + } PAL_SEHException& operator=(PAL_SEHException&& ex) { @@ -4995,7 +4975,7 @@ struct PAL_SEHException typedef BOOL (*PHARDWARE_EXCEPTION_HANDLER)(PAL_SEHException* ex); typedef BOOL (*PHARDWARE_EXCEPTION_SAFETY_CHECK_FUNCTION)(PCONTEXT contextRecord, PEXCEPTION_RECORD exceptionRecord); -typedef VOID (*PTERMINATION_REQUEST_HANDLER)(); +typedef VOID (*PTERMINATION_REQUEST_HANDLER)(int terminationExitCode); typedef DWORD (*PGET_GCMARKER_EXCEPTION_CODE)(LPVOID ip); PALIMPORT @@ -5024,6 +5004,16 @@ PALAPI PAL_SetTerminationRequestHandler( IN PTERMINATION_REQUEST_HANDLER terminationRequestHandler); +PALIMPORT +VOID +PALAPI +PAL_CatchHardwareExceptionHolderEnter(); + +PALIMPORT +VOID +PALAPI +PAL_CatchHardwareExceptionHolderExit(); + // // This holder is used to indicate that a hardware // exception should be raised as a C++ exception @@ -5032,17 +5022,21 @@ PAL_SetTerminationRequestHandler( class CatchHardwareExceptionHolder { public: - CatchHardwareExceptionHolder(); + CatchHardwareExceptionHolder() + { + PAL_CatchHardwareExceptionHolderEnter(); + } - ~CatchHardwareExceptionHolder(); + ~CatchHardwareExceptionHolder() + { + PAL_CatchHardwareExceptionHolderExit(); + } static bool IsEnabled(); }; // -// NOTE: Catching hardware exceptions are only enabled in the DAC and SOS -// builds. A hardware exception in coreclr code will fail fast/terminate -// the process. +// NOTE: This is only defined in one PAL test. // #ifdef FEATURE_ENABLE_HARDWARE_EXCEPTIONS #define HardwareExceptionHolder CatchHardwareExceptionHolder __catchHardwareException; @@ -5052,17 +5046,24 @@ class CatchHardwareExceptionHolder #ifdef FEATURE_PAL_SXS +class NativeExceptionHolderBase; + +PALIMPORT +PALAPI +NativeExceptionHolderBase ** +PAL_GetNativeExceptionHolderHead(); + extern "C++" { // -// This is the base class of native exception holder used to provide +// This is the base class of native exception holder used to provide // the filter function to the exception dispatcher. This allows the // filter to be called during the first pass to better emulate SEH // the xplat platforms that only have C++ exception support. // class NativeExceptionHolderBase { - // Save the address of the holder head so the destructor + // Save the address of the holder head so the destructor // doesn't have access the slow (on Linux) TLS value again. NativeExceptionHolderBase **m_head; @@ -5070,9 +5071,22 @@ class NativeExceptionHolderBase NativeExceptionHolderBase *m_next; protected: - NativeExceptionHolderBase(); + NativeExceptionHolderBase() + { + m_head = nullptr; + m_next = nullptr; + } - ~NativeExceptionHolderBase(); + ~NativeExceptionHolderBase() + { + // Only destroy if Push was called + if (m_head != nullptr) + { + *m_head = m_next; + m_head = nullptr; + m_next = nullptr; + } + } public: // Calls the holder's filter handler. @@ -5081,17 +5095,23 @@ class NativeExceptionHolderBase // Adds the holder to the "stack" of holders. This is done explicitly instead // of in the constructor was to avoid the mess of move constructors combined // with return value optimization (in CreateHolder). - void Push(); + void Push() + { + NativeExceptionHolderBase **head = PAL_GetNativeExceptionHolderHead(); + m_head = head; + m_next = *head; + *head = this; + } // Given the currentHolder and locals stack range find the next holder starting with this one // To find the first holder, pass nullptr as the currentHolder. - static NativeExceptionHolderBase *FindNextHolder(NativeExceptionHolderBase *currentHolder, void *frameLowAddress, void *frameHighAddress); + static NativeExceptionHolderBase *FindNextHolder(NativeExceptionHolderBase *currentHolder, PVOID frameLowAddress, PVOID frameHighAddress); }; // // This is the second part of the native exception filter holder. It is // templated because the lambda used to wrap the exception filter is a -// unknown type. +// unknown type. // template class NativeExceptionHolder : public NativeExceptionHolderBase @@ -5168,8 +5188,8 @@ class NativeExceptionHolderFactory auto tryBlock = [](__ParamType __paramDef) \ { -// Start of an exception handler. If an exception raised by the RaiseException -// occurs in the try block and the disposition is EXCEPTION_EXECUTE_HANDLER, +// Start of an exception handler. If an exception raised by the RaiseException +// occurs in the try block and the disposition is EXCEPTION_EXECUTE_HANDLER, // the handler code is executed. If the disposition is EXCEPTION_CONTINUE_SEARCH, // the exception is rethrown. The EXCEPTION_CONTINUE_EXECUTION disposition is // not supported. @@ -5214,7 +5234,7 @@ class NativeExceptionHolderFactory }; \ const bool isFinally = true; \ auto finallyBlock = [&]() \ - { + { // End of an except or a finally block. #define PAL_ENDTRY \ @@ -5285,7 +5305,7 @@ class NativeExceptionHolderFactory #endif // __cplusplus // Platform-specific library naming -// +// #ifdef __APPLE__ #define MAKEDLLNAME_W(name) u"lib" name u".dylib" #define MAKEDLLNAME_A(name) "lib" name ".dylib" @@ -5311,16 +5331,16 @@ class NativeExceptionHolderFactory #define PAL_SHLIB_SUFFIX_W u".so" #endif -#define DBG_EXCEPTION_HANDLED ((DWORD )0x00010001L) -#define DBG_CONTINUE ((DWORD )0x00010002L) -#define DBG_EXCEPTION_NOT_HANDLED ((DWORD )0x80010001L) +#define DBG_EXCEPTION_HANDLED ((DWORD )0x00010001L) +#define DBG_CONTINUE ((DWORD )0x00010002L) +#define DBG_EXCEPTION_NOT_HANDLED ((DWORD )0x80010001L) -#define DBG_TERMINATE_THREAD ((DWORD )0x40010003L) -#define DBG_TERMINATE_PROCESS ((DWORD )0x40010004L) -#define DBG_CONTROL_C ((DWORD )0x40010005L) -#define DBG_RIPEXCEPTION ((DWORD )0x40010007L) -#define DBG_CONTROL_BREAK ((DWORD )0x40010008L) -#define DBG_COMMAND_EXCEPTION ((DWORD )0x40010009L) +#define DBG_TERMINATE_THREAD ((DWORD )0x40010003L) +#define DBG_TERMINATE_PROCESS ((DWORD )0x40010004L) +#define DBG_CONTROL_C ((DWORD )0x40010005L) +#define DBG_RIPEXCEPTION ((DWORD )0x40010007L) +#define DBG_CONTROL_BREAK ((DWORD )0x40010008L) +#define DBG_COMMAND_EXCEPTION ((DWORD )0x40010009L) #define STATUS_USER_APC ((DWORD )0x000000C0L) #define STATUS_GUARD_PAGE_VIOLATION ((DWORD )0x80000001L) diff --git a/lib/coreclr/src/pal/inc/pal_mstypes.h b/lib/coreclr/src/pal/inc/pal_mstypes.h index 0aa35ae1e5a9..78c6b042dd26 100644 --- a/lib/coreclr/src/pal/inc/pal_mstypes.h +++ b/lib/coreclr/src/pal/inc/pal_mstypes.h @@ -96,17 +96,20 @@ extern "C" { #else #define PALIMPORT __declspec(dllimport) #endif +#define DLLEXPORT __declspec(dllexport) #define PAL_NORETURN __declspec(noreturn) #else #define PALIMPORT +#define DLLEXPORT __attribute__((visibility("default"))) #define PAL_NORETURN __attribute__((noreturn)) #endif -#define PALAPI __cdecl -#define PALAPIV __cdecl +#define PALAPI DLLEXPORT __cdecl +#define PALAPI_NOEXPORT __cdecl +#define PALAPIV __cdecl //////////////////////////////////////////////////////////////////////// // Type attribute stuff @@ -586,12 +589,6 @@ typedef LONG_PTR LPARAM; #ifdef PAL_STDCPP_COMPAT -#ifdef BIT64 -typedef unsigned long int uintptr_t; -#else // !BIT64 -typedef unsigned int uintptr_t; -#endif // !BIT64 - typedef char16_t WCHAR; #else // PAL_STDCPP_COMPAT diff --git a/lib/coreclr/src/pal/inc/rt/assert.h b/lib/coreclr/src/pal/inc/rt/assert.h deleted file mode 100644 index b0c8ecd3be23..000000000000 --- a/lib/coreclr/src/pal/inc/rt/assert.h +++ /dev/null @@ -1,13 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// - -// -// =========================================================================== -// File: assert.h -// -// =========================================================================== -// dummy assert.h for PAL - -#include "palrt.h" diff --git a/lib/coreclr/src/pal/inc/rt/common.ver b/lib/coreclr/src/pal/inc/rt/common.ver deleted file mode 100644 index 9007a3de2d25..000000000000 --- a/lib/coreclr/src/pal/inc/rt/common.ver +++ /dev/null @@ -1,33 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -#include "fxver.h" - -VS_VERSION_INFO VERSIONINFO - -FILEVERSION VER_FILEVERSION -PRODUCTVERSION VER_PRODUCTVERSION -FILEFLAGSMASK VER_FILEFLAGSMASK -FILEFLAGS VER_FILEFLAGS -FILEOS VER_FILEOS -FILETYPE VER_FILETYPE -FILESUBTYPE VER_FILESUBTYPE - -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK VER_VERSION_UNICODE_LANG - BEGIN - VALUE "CompanyName", VER_COMPANYNAME_STR - VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR - VALUE "FileVersion", VER_FILEVERSION_STR - VALUE "FileDescription", "Rotor File" - END - END - - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", VER_VERSION_TRANSLATION - END -END diff --git a/lib/coreclr/src/pal/inc/rt/cpp/ccombstr.h b/lib/coreclr/src/pal/inc/rt/cpp/ccombstr.h deleted file mode 100644 index 999be9e706ea..000000000000 --- a/lib/coreclr/src/pal/inc/rt/cpp/ccombstr.h +++ /dev/null @@ -1,263 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// - -// -// =========================================================================== -// File: CComBSTR.h -// -// =========================================================================== - -/*++ - -Abstract: - - Stripped down and modified version of CComBSTR - ---*/ - -#ifndef __CCOMBSTR_H__ -#define __CCOMBSTR_H__ - -#ifdef __cplusplus - -#ifndef AtlThrow -#define AtlThrow(a) RaiseException(STATUS_NO_MEMORY,EXCEPTION_NONCONTINUABLE,0,nullptr); -#endif -#ifndef ATLASSERT -#define ATLASSERT(a) _ASSERTE(a) -#endif -#define MAX_SATELLITESTRING 1024 - -#include - -class CComBSTR -{ -public: - BSTR m_str; - CComBSTR() - { - m_str = nullptr; - } - CComBSTR(int nSize) - { - if (nSize == 0) - m_str = nullptr; - else - { - m_str = ::SysAllocStringLen(nullptr, nSize); - if (m_str == nullptr) - AtlThrow(E_OUTOFMEMORY); - } - } - CComBSTR(int nSize, LPCOLESTR sz) - { - if (nSize == 0) - m_str = nullptr; - else - { - m_str = ::SysAllocStringLen(sz, nSize); - if (m_str == nullptr) - AtlThrow(E_OUTOFMEMORY); - } - } - CComBSTR(LPCOLESTR pSrc) - { - if (pSrc == nullptr) - m_str = nullptr; - else - { - m_str = ::SysAllocString(pSrc); - if (m_str == nullptr) - AtlThrow(E_OUTOFMEMORY); - } - } - - CComBSTR(const CComBSTR& src) - { - m_str = src.Copy(); - if (!!src && m_str == nullptr) - AtlThrow(E_OUTOFMEMORY); - - } - - CComBSTR& operator=(const CComBSTR& src) - { - if (m_str != src.m_str) - { - ::SysFreeString(m_str); - m_str = src.Copy(); - if (!!src && m_str == nullptr) - AtlThrow(E_OUTOFMEMORY); - } - return *this; - } - - CComBSTR& operator=(LPCOLESTR pSrc) - { - if (pSrc != m_str) - { - ::SysFreeString(m_str); - if (pSrc != nullptr) - { - m_str = ::SysAllocString(pSrc); - if (m_str == nullptr) - AtlThrow(E_OUTOFMEMORY); - } - else - m_str = nullptr; - } - return *this; - } - - ~CComBSTR() - { - ::SysFreeString(m_str); - } - unsigned int ByteLength() const - { - return (m_str == nullptr)? 0 : SysStringByteLen(m_str); - } - unsigned int Length() const - { - return (m_str == nullptr)? 0 : SysStringLen(m_str); - } - operator BSTR() const - { - return m_str; - } - BSTR* operator&() - { - return &m_str; - } - BSTR Copy() const - { - if (m_str == nullptr) - return nullptr; - return ::SysAllocStringLen(m_str, SysStringLen(m_str)); - } - HRESULT CopyTo(BSTR* pbstr) - { - ATLASSERT(pbstr != nullptr); - if (pbstr == nullptr) - return E_POINTER; - *pbstr = Copy(); - if ((*pbstr == nullptr) && (m_str != nullptr)) - return E_OUTOFMEMORY; - return S_OK; - } - // copy BSTR to VARIANT - HRESULT CopyTo(VARIANT *pvarDest) - { - ATLASSERT(pvarDest != nullptr); - HRESULT hRes = E_POINTER; - if (pvarDest != nullptr) - { - V_VT (pvarDest) = VT_BSTR; - V_BSTR (pvarDest) = Copy(); - if (V_BSTR (pvarDest) == nullptr && m_str != nullptr) - hRes = E_OUTOFMEMORY; - else - hRes = S_OK; - } - return hRes; - } - - void Attach(BSTR src) - { - if (m_str != src) - { - ::SysFreeString(m_str); - m_str = src; - } - } - BSTR Detach() - { - BSTR s = m_str; - m_str = nullptr; - return s; - } - void Empty() - { - ::SysFreeString(m_str); - m_str = nullptr; - } - HRESULT Append(LPCOLESTR lpsz) - { - return Append(lpsz, UINT(lstrlenW(lpsz))); - } - - HRESULT Append(LPCOLESTR lpsz, int nLen) - { - if (lpsz == nullptr || (m_str != nullptr && nLen == 0)) - return S_OK; - if (nLen < 0) - return E_INVALIDARG; - int n1 = Length(); - - // Check for overflow - size_t newSize; - if (!ClrSafeInt::addition(n1, nLen, newSize)) - return E_INVALIDARG; - - BSTR b; - b = ::SysAllocStringLen(nullptr, newSize); - if (b == nullptr) - return E_OUTOFMEMORY; - memcpy(b, m_str, n1*sizeof(OLECHAR)); - memcpy(b+n1, lpsz, nLen*sizeof(OLECHAR)); - b[n1+nLen] = 0; - SysFreeString(m_str); - m_str = b; - return S_OK; - } - - HRESULT AssignBSTR(const BSTR bstrSrc) - { - HRESULT hr = S_OK; - if (m_str != bstrSrc) - { - ::SysFreeString(m_str); - if (bstrSrc != nullptr) - { - m_str = SysAllocStringLen(bstrSrc, SysStringLen(bstrSrc)); - if (m_str == nullptr) - hr = E_OUTOFMEMORY; - } - else - m_str = nullptr; - } - - return hr; - } - - bool LoadString(HSATELLITE hInst, UINT nID) - { - ::SysFreeString(m_str); - m_str = nullptr; - WCHAR SatelliteString[MAX_SATELLITESTRING]; - if (PAL_LoadSatelliteStringW(hInst, nID, SatelliteString, MAX_SATELLITESTRING)) - { - m_str = SysAllocString(SatelliteString); - } - return m_str != nullptr; - } - - bool LoadString(PVOID hInst, UINT nID) - { - return LoadString ((HSATELLITE)hInst, nID); - } - - CComBSTR& operator+=(LPCOLESTR pszSrc) - { - HRESULT hr; - hr = Append(pszSrc); - if (FAILED(hr)) - AtlThrow(hr); - return *this; - } - -}; -#endif // __cplusplus -#endif // __CCOMBSTR_H__ diff --git a/lib/coreclr/src/pal/inc/rt/cpp/cstring.h b/lib/coreclr/src/pal/inc/rt/cpp/cstring.h deleted file mode 100644 index 483a005ca66c..000000000000 --- a/lib/coreclr/src/pal/inc/rt/cpp/cstring.h +++ /dev/null @@ -1,77 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// - -// - -#ifndef __CSTRING_H__ -#define __CSTRING_H__ - -#ifdef __cplusplus - -#ifndef AtlThrow -#define AtlThrow(a) RaiseException(STATUS_NO_MEMORY,EXCEPTION_NONCONTINUABLE,0,nullptr); -#endif -#ifndef ATLASSERT -#define ATLASSERT(a) _ASSERTE(a) -#endif - -#include "ccombstr.h" - -class CStringW : public CComBSTR -{ -public: - CStringW() { - } - - CStringW(int nSize, LPCOLESTR sz) : - CComBSTR (nSize, sz) - { - } - - - CStringW(LPCOLESTR pSrc) : - CComBSTR(pSrc) - { - } - - CStringW(const CStringW& src) : - CComBSTR(src) - { - } - - CStringW (LPCSTR pSrc) : - CComBSTR() - { - // Intentionaly create us as empty string, later - // we will overwrite ourselves with the - // converted string. - int cchSize; - cchSize = MultiByteToWideChar(CP_ACP, 0, pSrc, -1, nullptr, 0); - if (cchSize == 0) - { - AtlThrow(E_OUTOFMEMORY); - } - - CComBSTR bstr(cchSize); - // No convert the string - // (Note that (BSTR)bstr will return a pointer to the - // allocated WCHAR buffer - done by the CComBSTR constructor) - if (MultiByteToWideChar(CP_ACP, 0, pSrc, -1, (WCHAR *)((BSTR)bstr), cchSize) == 0) - { - AtlThrow(E_OUTOFMEMORY); - } - - // And now assign this new bstr to us - // The following is a trick how to avoid copying the string - Attach(bstr.Detach()); - } - - ~CStringW() { - } -}; - -#endif // __cplusplus - -#endif // __CSTRING_H__ diff --git a/lib/coreclr/src/pal/inc/rt/emmintrin.h b/lib/coreclr/src/pal/inc/rt/emmintrin.h deleted file mode 100644 index 5401fabc1308..000000000000 --- a/lib/coreclr/src/pal/inc/rt/emmintrin.h +++ /dev/null @@ -1,5 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -#include "palrt.h" diff --git a/lib/coreclr/src/pal/inc/rt/guiddef.h b/lib/coreclr/src/pal/inc/rt/guiddef.h index 12e51c8fc6fd..392df60075ed 100644 --- a/lib/coreclr/src/pal/inc/rt/guiddef.h +++ b/lib/coreclr/src/pal/inc/rt/guiddef.h @@ -18,7 +18,7 @@ #ifdef INITGUID #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ - EXTERN_C const GUID DECLSPEC_SELECTANY name \ + EXTERN_C DLLEXPORT const GUID DECLSPEC_SELECTANY name \ = { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } } #else #define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ diff --git a/lib/coreclr/src/pal/inc/rt/palrt.h b/lib/coreclr/src/pal/inc/rt/palrt.h index 1360a81c4325..6502cf589155 100644 --- a/lib/coreclr/src/pal/inc/rt/palrt.h +++ b/lib/coreclr/src/pal/inc/rt/palrt.h @@ -14,9 +14,9 @@ Abstract: - Rotor runtime functions. These are functions which are ordinarily - implemented as part of the Win32 API set, but for Rotor, are - implemented as a runtime library on top of the PAL. + PAL runtime functions. These are functions which are ordinarily + implemented as part of the Win32 API set, but when compiling CoreCLR for + Unix-like systems, are implemented as a runtime library on top of the PAL. Author: @@ -63,7 +63,6 @@ Revision History: #define CO_E_CLASSSTRING _HRESULT_TYPEDEF_(0x800401F3L) -#define URL_E_INVALID_SYNTAX _HRESULT_TYPEDEF_(0x80041001L) #define MK_E_SYNTAX _HRESULT_TYPEDEF_(0x800401E4L) #define STG_E_INVALIDFUNCTION _HRESULT_TYPEDEF_(0x80030001L) @@ -151,60 +150,6 @@ inline void *__cdecl operator new(size_t, void *_P) #include -#if defined(_DEBUG) -#define ROTOR_PAL_CTOR_TEST_BODY(TESTNAME) \ - class TESTNAME ## _CTOR_TEST { \ - public: \ - class HelperClass { \ - public: \ - HelperClass(const char *String) { \ - _ASSERTE (m_s == NULL); \ - m_s = String; \ - } \ - \ - void Validate (const char *String) { \ - _ASSERTE (m_s); \ - _ASSERTE (m_s == String); \ - _ASSERTE (!strncmp ( \ - m_s, \ - String, \ - 1000)); \ - } \ - \ - private: \ - const char *m_s; \ - }; \ - \ - TESTNAME ## _CTOR_TEST() { \ - _ASSERTE (m_This == NULL); \ - m_This = this; \ - } \ - \ - void Validate () { \ - _ASSERTE (m_This == this); \ - m_String.Validate(#TESTNAME "_CTOR_TEST"); \ - } \ - \ - private: \ - void *m_This; \ - static HelperClass m_String; \ - }; \ - \ - static TESTNAME ## _CTOR_TEST \ - g_ ## TESTNAME ## _CTOR_TEST; \ - TESTNAME ## _CTOR_TEST::HelperClass \ - TESTNAME ## _CTOR_TEST::m_String(#TESTNAME "_CTOR_TEST"); - -#define ROTOR_PAL_CTOR_TEST_RUN(TESTNAME) \ - g_ ## TESTNAME ##_CTOR_TEST.Validate() - -#else // DEBUG - -#define ROTOR_PAL_CTOR_TEST_BODY(TESTNAME) -#define ROTOR_PAL_CTOR_TEST_RUN(TESTNAME) do {} while (0) - -#endif // DEBUG - #define NTAPI __cdecl #define WINAPI __cdecl #define CALLBACK __cdecl @@ -269,6 +214,7 @@ inline void *__cdecl operator new(size_t, void *_P) #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE #define STDAPI_(type) EXTERN_C type STDAPICALLTYPE +#define STDAPI_VIS(vis,type) EXTERN_C vis type STDAPICALLTYPE #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE @@ -427,9 +373,9 @@ typedef union _ULARGE_INTEGER { /******************* OLE, BSTR, VARIANT *************************/ -STDAPI_(LPVOID) CoTaskMemAlloc(SIZE_T cb); -STDAPI_(LPVOID) CoTaskMemRealloc(LPVOID pv, SIZE_T cb); -STDAPI_(void) CoTaskMemFree(LPVOID pv); +STDAPI_VIS(DLLEXPORT, LPVOID) CoTaskMemAlloc(SIZE_T cb); +STDAPI_VIS(DLLEXPORT, LPVOID) CoTaskMemRealloc(LPVOID pv, SIZE_T cb); +STDAPI_VIS(DLLEXPORT, void) CoTaskMemFree(LPVOID pv); typedef SHORT VARIANT_BOOL; #define VARIANT_TRUE ((VARIANT_BOOL)-1) @@ -441,12 +387,12 @@ typedef const OLECHAR* LPCOLESTR; typedef WCHAR *BSTR; -STDAPI_(BSTR) SysAllocString(const OLECHAR*); -STDAPI_(BSTR) SysAllocStringLen(const OLECHAR*, UINT); -STDAPI_(BSTR) SysAllocStringByteLen(const char *, UINT); -STDAPI_(void) SysFreeString(BSTR); -STDAPI_(UINT) SysStringLen(BSTR); -STDAPI_(UINT) SysStringByteLen(BSTR); +STDAPI_VIS(DLLEXPORT, BSTR) SysAllocString(const OLECHAR*); +STDAPI_VIS(DLLEXPORT, BSTR) SysAllocStringLen(const OLECHAR*, UINT); +STDAPI_VIS(DLLEXPORT, BSTR) SysAllocStringByteLen(const char *, UINT); +STDAPI_VIS(DLLEXPORT, void) SysFreeString(BSTR); +STDAPI_VIS(DLLEXPORT, UINT) SysStringLen(BSTR); +STDAPI_VIS(DLLEXPORT, UINT) SysStringByteLen(BSTR); typedef double DATE; @@ -1003,29 +949,6 @@ STDAPI_(BOOL) PathRenameExtensionW(LPWSTR pszPath, LPCWSTR pszExt); STDAPI_(BOOL) PathRemoveFileSpecW(LPWSTR pFile); STDAPI_(void) PathStripPathW (LPWSTR pszPath); -STDAPI PathCreateFromUrlW(LPCWSTR pszUrl, LPWSTR pszPath, LPDWORD pcchPath, DWORD dwFlags); -STDAPI_(BOOL) PathIsURLW(LPCWSTR pszPath); - - -#define URL_UNESCAPE 0x10000000 -#define URL_ESCAPE_PERCENT 0x00001000 - -typedef enum { - URLIS_FILEURL = 3, -} URLIS; - -typedef enum { - URL_PART_SCHEME = 1, - URL_PART_HOSTNAME = 2, -} URL_PART; - -STDAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized, LPDWORD pcchCanonicalized, DWORD dwFlags); -STDAPI UrlCombineW(LPCWSTR pszBase, LPCWSTR pszRelative, LPWSTR pszCombined, LPDWORD pcchCombined, DWORD dwFlags); -STDAPI UrlEscapeW(LPCWSTR pszUrl, LPWSTR pszEscaped, LPDWORD pcchEscaped, DWORD dwFlags); -STDAPI UrlUnescapeW(LPWSTR pszURL, LPWSTR pszUnescaped, LPDWORD pcchUnescaped, DWORD dwFlags); -STDAPI_(BOOL) UrlIsW(LPCWSTR pszUrl, URLIS dwUrlIs); -STDAPI UrlGetPartW(LPCWSTR pszIn, LPWSTR pszOut, LPDWORD pcchOut, DWORD dwPart, DWORD dwFlags); - #ifdef UNICODE #define PathAppend PathAppendW #define PathCommonPrefix PathCommonPrefixW @@ -1045,15 +968,6 @@ STDAPI UrlGetPartW(LPCWSTR pszIn, LPWSTR pszOut, LPDWORD pcchOut, DWORD dwPart, #define PathRenameExtension PathRenameExtensionW #define PathStripPath PathStripPathW -#define PathCreateFromUrl PathCreateFromUrlW -#define PathIsURL PathIsURLW - -#define UrlCanonicalize UrlCanonicalizeW -#define UrlCombine UrlCombineW -#define UrlEscape UrlEscapeW -#define UrlUnescape UrlUnescapeW -#define UrlIs UrlIsW -#define UrlGetPart UrlGetPartW #endif // UNICODE @@ -1219,8 +1133,9 @@ typedef JIT_DEBUG_INFO JIT_DEBUG_INFO32, *LPJIT_DEBUG_INFO32; typedef JIT_DEBUG_INFO JIT_DEBUG_INFO64, *LPJIT_DEBUG_INFO64; /******************* resources ***************************************/ - +#define IS_INTRESOURCE(_r) ((((ULONG_PTR)(_r)) >> 16) == 0) #define MAKEINTRESOURCEW(i) ((LPWSTR)((ULONG_PTR)((WORD)(i)))) +#define MAKEINTRESOURCE(i) ((LPWSTR)((ULONG_PTR)((WORD)(i)))) #define RT_RCDATA MAKEINTRESOURCE(10) #define RT_VERSION MAKEINTRESOURCE(16) @@ -1273,7 +1188,7 @@ interface IMoniker; typedef VOID (WINAPI *LPOVERLAPPED_COMPLETION_ROUTINE)( DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, - LPVOID lpOverlapped); + LPOVERLAPPED lpOverlapped); // // Debug APIs @@ -1615,10 +1530,6 @@ typedef struct tagVS_FIXEDFILEINFO /******************** external includes *************************/ #include "ntimage.h" -#ifndef PAL_STDCPP_COMPAT -#include "cpp/ccombstr.h" -#include "cpp/cstring.h" -#endif // !PAL_STDCPP_COMPAT #endif // RC_INVOKED diff --git a/lib/coreclr/src/pal/inc/rt/safecrt.h b/lib/coreclr/src/pal/inc/rt/safecrt.h index 92366dfc38b6..9f9e15c24465 100644 --- a/lib/coreclr/src/pal/inc/rt/safecrt.h +++ b/lib/coreclr/src/pal/inc/rt/safecrt.h @@ -135,7 +135,11 @@ typedef _W64 unsigned int uintptr_t; #define _UINTPTR_T_DEFINED #endif +#ifdef __GNUC__ +#define SAFECRT_DEPRECATED __attribute__((deprecated)) +#else #define SAFECRT_DEPRECATED __declspec(deprecated) +#endif /* errno_t */ #if !defined(_ERRCODE_DEFINED) diff --git a/lib/coreclr/src/pal/inc/rt/sal.h b/lib/coreclr/src/pal/inc/rt/sal.h index 07468645a523..9a8c2a480fa4 100644 --- a/lib/coreclr/src/pal/inc/rt/sal.h +++ b/lib/coreclr/src/pal/inc/rt/sal.h @@ -2363,7 +2363,7 @@ typedef struct __F_ __F_; #ifdef __cplusplus // [ #ifndef __nothrow // [ -# define __nothrow __declspec(nothrow) +# define __nothrow NOTHROW_DECL #endif // ] extern "C" { #else // ][ @@ -2604,6 +2604,7 @@ extern "C" { #ifndef PAL_STDCPP_COMPAT #define __null #define __notnull + #define __deref #endif // !PAL_STDCPP_COMPAT #define __maybenull #define __readonly @@ -2618,7 +2619,6 @@ extern "C" { #define __writableTo(size) #define __elem_writableTo(size) #define __byte_writableTo(size) - #define __deref #define __pre #define __post #define __precond(expr) @@ -2951,7 +2951,3 @@ __PRIMOP(int, _In_function_class_(__In_impl_ char*);) #ifdef __cplusplus // [ } #endif // ] - -// Rotor doesn't need concurrency sal. -// #include - diff --git a/lib/coreclr/src/pal/inc/rt/specstrings.h b/lib/coreclr/src/pal/inc/rt/specstrings.h index 214d4190debe..12feab933132 100644 --- a/lib/coreclr/src/pal/inc/rt/specstrings.h +++ b/lib/coreclr/src/pal/inc/rt/specstrings.h @@ -515,9 +515,6 @@ void __pfx_assume(int, const char *); #define __PRIMOP(type, fun) #endif /* !defined(_Outptr_) || _MSC_VER <= 1600 */ -// ROTOR doesn't need driverspecs.h -// #include - /* If no SAL 2 appears to have been defined (_Outptr_ is a representative choice) then we must be operating in a downlevel build environment (such as VS10). diff --git a/lib/coreclr/src/pal/inc/rt/vsassert.h b/lib/coreclr/src/pal/inc/rt/vsassert.h index 2a7fa5fd925c..3c50e5925e10 100644 --- a/lib/coreclr/src/pal/inc/rt/vsassert.h +++ b/lib/coreclr/src/pal/inc/rt/vsassert.h @@ -55,18 +55,18 @@ do { \ #define VSAlloc(cb) HeapAlloc(GetProcessHeap(), 0, cb) #define VSAllocZero(cb) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cb) #define VSRealloc(pv, cb) HeapReAlloc(GetProcessHeap(), 0, pv, cb) -#define VSReallocZero(pv,cb) Rotors_pal_doesnt_have_vsrealloczero +#define VSReallocZero(pv,cb) CoreCLR_pal_doesnt_have_vsrealloczero #define VSFree(pv) HeapFree(GetProcessHeap(), 0, pv) -#define VSSize(pv) Rotors_pal_doesnt_have_heapsize +#define VSSize(pv) CoreCLR_pal_doesnt_have_heapsize #define VsDebAlloc(flags,cb) VSAlloc(cb) #define VsDebRealloc(pv,flags,cb) VSRealloc(pv,cb) -#define VsDebSafeRealloc(pv,flags,cb) Rotors_pal_doenst_have_saferealloc +#define VsDebSafeRealloc(pv,flags,cb) CoreCLR_pal_doenst_have_saferealloc #define VsDebFree(pv) VSFree(pv) #define VsDebHeapSize(heap, pv) VSSize(pv) -#define VsDebHeapCreate(flags, name) Rotor_doesnt_have_heapcreate -#define VsDebHeapDestroy(heap, fLeakCheck) Rotor_doesnt_have_heapdestroy +#define VsDebHeapCreate(flags, name) CoreCLR_doesnt_have_heapcreate +#define VsDebHeapDestroy(heap, fLeakCheck) CoreCLR_doesnt_have_heapdestroy #define VsDebugAllocInternal(hheap,dwFlags,cb,pszFile,uLine,dwInst,pszExtra) \ HeapAlloc(GetProcessHeap(), dwFlags, cb) diff --git a/lib/coreclr/src/pal/inc/rt/xmmintrin.h b/lib/coreclr/src/pal/inc/rt/xmmintrin.h deleted file mode 100644 index 1a670bd75a06..000000000000 --- a/lib/coreclr/src/pal/inc/rt/xmmintrin.h +++ /dev/null @@ -1,116 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -// From llvm-3.9/clang-3.9.1 xmmintrin.h: - -/*===---- xmmintrin.h - SSE intrinsics -------------------------------------=== -* -* Permission is hereby granted, free of charge, to any person obtaining a copy -* of this software and associated documentation files (the "Software"), to deal -* in the Software without restriction, including without limitation the rights -* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -* copies of the Software, and to permit persons to whom the Software is -* furnished to do so, subject to the following conditions: -* -* The above copyright notice and this permission notice shall be included in -* all copies or substantial portions of the Software. -* -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -* THE SOFTWARE. -* -*===-----------------------------------------------------------------------=== -*/ - -#ifdef __clang__ - -typedef float __m128 __attribute__((__vector_size__(16))); - -/* Define the default attributes for the functions in this file. */ -#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__)) - -/// \brief Loads a 128-bit floating-point vector of [4 x float] from an aligned -/// memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VMOVAPS / MOVAPS instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. The address of the memory -/// location has to be 128-bit aligned. -/// \returns A 128-bit vector of [4 x float] containing the loaded valus. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_load_ps(const float *__p) -{ - return *(__m128*)__p; -} - -/// \brief Loads a 128-bit floating-point vector of [4 x float] from an -/// unaligned memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VMOVUPS / MOVUPS instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. The address of the memory -/// location does not have to be aligned. -/// \returns A 128-bit vector of [4 x float] containing the loaded values. -static __inline__ __m128 __DEFAULT_FN_ATTRS -_mm_loadu_ps(const float *__p) -{ - struct __loadu_ps - { - __m128 __v; - } __attribute__((__packed__, __may_alias__)); - return ((struct __loadu_ps*)__p)->__v; -} - -/// \brief Stores float values from a 128-bit vector of [4 x float] to an -/// unaligned memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to the \c VMOVUPS / MOVUPS instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. The address of the memory -/// location does not have to be aligned. -/// \param __a -/// A 128-bit vector of [4 x float] containing the values to be stored. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_storeu_ps(float *__p, __m128 __a) -{ - struct __storeu_ps - { - __m128 __v; - } __attribute__((__packed__, __may_alias__)); - ((struct __storeu_ps*)__p)->__v = __a; -} - -/// \brief Stores the lower 32 bits of a 128-bit vector of [4 x float] into -/// four contiguous elements in an aligned memory location. -/// -/// \headerfile -/// -/// This intrinsic corresponds to \c VMOVAPS / MOVAPS + \c shuffling -/// instruction. -/// -/// \param __p -/// A pointer to a 128-bit memory location. -/// \param __a -/// A 128-bit vector of [4 x float] whose lower 32 bits are stored to each -/// of the four contiguous elements pointed by __p. -static __inline__ void __DEFAULT_FN_ATTRS -_mm_store_ps(float *__p, __m128 __a) -{ - *(__m128*)__p = __a; -} - -#endif // __clang__ diff --git a/lib/coreclr/src/pal/inc/unixasmmacros.inc b/lib/coreclr/src/pal/inc/unixasmmacros.inc index e7a5eba898a9..f553840a8d33 100644 --- a/lib/coreclr/src/pal/inc/unixasmmacros.inc +++ b/lib/coreclr/src/pal/inc/unixasmmacros.inc @@ -2,7 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -#define INVALIDGCVALUE 0CCCCCCCDh +#define INVALIDGCVALUE 0xCCCCCCCD #if defined(__APPLE__) #define C_FUNC(name) _##name @@ -10,7 +10,11 @@ #define LOCAL_LABEL(name) L##name #else #define C_FUNC(name) name +#if defined(_AMD64_) || defined(_X86_) #define EXTERNAL_C_FUNC(name) C_FUNC(name)@plt +#else +#define EXTERNAL_C_FUNC(name) C_FUNC(name) +#endif #define LOCAL_LABEL(name) .L##name #endif diff --git a/lib/coreclr/src/pal/inc/unixasmmacrosarm64.inc b/lib/coreclr/src/pal/inc/unixasmmacrosarm64.inc index f0c4a5ebfe04..6db1f242f346 100644 --- a/lib/coreclr/src/pal/inc/unixasmmacrosarm64.inc +++ b/lib/coreclr/src/pal/inc/unixasmmacrosarm64.inc @@ -137,14 +137,14 @@ C_FUNC(\Name\()_End): // ArgumentRegisters::x2 // ArgumentRegisters::x1 // ArgumentRegisters::x0 -// FloatRegisters::d7 -// FloatRegisters::d6 -// FloatRegisters::d5 -// FloatRegisters::d4 -// FloatRegisters::d3 -// FloatRegisters::d2 -// FloatRegisters::d1 -// FloatRegisters::d0 +// FloatRegisters::q7 +// FloatRegisters::q6 +// FloatRegisters::q5 +// FloatRegisters::q4 +// FloatRegisters::q3 +// FloatRegisters::q2 +// FloatRegisters::q1 +// FloatRegisters::q0 .macro PROLOG_WITH_TRANSITION_BLOCK extraLocals = 0, SaveFPArgs = 1 __PWTB_FloatArgumentRegisters = \extraLocals @@ -161,7 +161,8 @@ C_FUNC(\Name\()_End): .endif __PWTB_StackAlloc = __PWTB_TransitionBlock - __PWTB_ArgumentRegisters = __PWTB_StackAlloc + 96 + __PWTB_ArgumentRegisters = __PWTB_StackAlloc + 104 + __PWTB_ArgumentRegister_FirstArg = __PWTB_ArgumentRegisters + 8 PROLOG_SAVE_REG_PAIR_INDEXED fp, lr, -176 // Spill callee saved registers @@ -191,40 +192,40 @@ C_FUNC(\Name\()_End): // Reserve 64 bytes of memory before calling SAVE_ARGUMENT_REGISTERS .macro SAVE_ARGUMENT_REGISTERS reg, ofs - stp x0, x1, [\reg, #(\ofs)] - stp x2, x3, [\reg, #(\ofs + 16)] - stp x4, x5, [\reg, #(\ofs + 32)] - stp x6, x7, [\reg, #(\ofs + 48)] - str x8, [\reg, #(\ofs + 64)] + str x8, [\reg, #(\ofs)] + stp x0, x1, [\reg, #(\ofs + 8)] + stp x2, x3, [\reg, #(\ofs + 24)] + stp x4, x5, [\reg, #(\ofs + 40)] + stp x6, x7, [\reg, #(\ofs + 56)] .endm -// Reserve 64 bytes of memory before calling SAVE_FLOAT_ARGUMENT_REGISTERS +// Reserve 128 bytes of memory before calling SAVE_FLOAT_ARGUMENT_REGISTERS .macro SAVE_FLOAT_ARGUMENT_REGISTERS reg, ofs - stp d0, d1, [\reg, #(\ofs)] - stp d2, d3, [\reg, #(\ofs + 16)] - stp d4, d5, [\reg, #(\ofs + 32)] - stp d6, d7, [\reg, #(\ofs + 48)] + stp q0, q1, [\reg, #(\ofs)] + stp q2, q3, [\reg, #(\ofs + 32)] + stp q4, q5, [\reg, #(\ofs + 64)] + stp q6, q7, [\reg, #(\ofs + 96)] .endm .macro RESTORE_ARGUMENT_REGISTERS reg, ofs - ldp x0, x1, [\reg, #(\ofs)] - ldp x2, x3, [\reg, #(\ofs + 16)] - ldp x4, x5, [\reg, #(\ofs + 32)] - ldp x6, x7, [\reg, #(\ofs + 48)] - ldr x8, [\reg, #(\ofs + 64)] + ldr x8, [\reg, #(\ofs)] + ldp x0, x1, [\reg, #(\ofs + 8)] + ldp x2, x3, [\reg, #(\ofs + 24)] + ldp x4, x5, [\reg, #(\ofs + 40)] + ldp x6, x7, [\reg, #(\ofs + 56)] .endm .macro RESTORE_FLOAT_ARGUMENT_REGISTERS reg, ofs - ldp d0, d1, [\reg, #(\ofs)] - ldp d2, d3, [\reg, #(\ofs + 16)] - ldp d4, d5, [\reg, #(\ofs + 32)] - ldp d6, d7, [\reg, #(\ofs + 48)] + ldp q0, q1, [\reg, #(\ofs)] + ldp q2, q3, [\reg, #(\ofs + 32)] + ldp q4, q5, [\reg, #(\ofs + 64)] + ldp q6, q7, [\reg, #(\ofs + 96)] .endm diff --git a/lib/coreclr/src/pal/prebuilt/inc/clrprivbinding.h b/lib/coreclr/src/pal/prebuilt/inc/clrprivbinding.h index 4d3d36d05fee..ceb11feaffd3 100644 --- a/lib/coreclr/src/pal/prebuilt/inc/clrprivbinding.h +++ b/lib/coreclr/src/pal/prebuilt/inc/clrprivbinding.h @@ -155,23 +155,11 @@ EXTERN_C const IID IID_ICLRPrivBinder; /* [in] */ IAssemblyName *pAssemblyName, /* [retval][out] */ ICLRPrivAssembly **ppAssembly) = 0; - virtual HRESULT STDMETHODCALLTYPE VerifyBind( - /* [in] */ IAssemblyName *AssemblyName, - /* [in] */ ICLRPrivAssembly *pAssembly, - /* [in] */ ICLRPrivAssemblyInfo *pAssemblyInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBinderFlags( - /* [retval][out] */ DWORD *pBinderFlags) = 0; - virtual HRESULT STDMETHODCALLTYPE GetBinderID( /* [retval][out] */ UINT_PTR *pBinderId) = 0; - virtual HRESULT STDMETHODCALLTYPE FindAssemblyBySpec( - /* [in] */ LPVOID pvAppDomain, - /* [in] */ LPVOID pvAssemblySpec, - /* [out] */ HRESULT *pResult, - /* [out] */ ICLRPrivAssembly **ppAssembly) = 0; - + virtual HRESULT STDMETHODCALLTYPE GetLoaderAllocator( + /* [retval][out] */ LPVOID* pLoaderAllocator) = 0; }; @@ -198,27 +186,14 @@ EXTERN_C const IID IID_ICLRPrivBinder; /* [in] */ IAssemblyName *pAssemblyName, /* [retval][out] */ ICLRPrivAssembly **ppAssembly); - HRESULT ( STDMETHODCALLTYPE *VerifyBind )( - ICLRPrivBinder * This, - /* [in] */ IAssemblyName *AssemblyName, - /* [in] */ ICLRPrivAssembly *pAssembly, - /* [in] */ ICLRPrivAssemblyInfo *pAssemblyInfo); - - HRESULT ( STDMETHODCALLTYPE *GetBinderFlags )( - ICLRPrivBinder * This, - /* [retval][out] */ DWORD *pBinderFlags); - HRESULT ( STDMETHODCALLTYPE *GetBinderID )( ICLRPrivBinder * This, /* [retval][out] */ UINT_PTR *pBinderId); - HRESULT ( STDMETHODCALLTYPE *FindAssemblyBySpec )( + HRESULT(STDMETHODCALLTYPE *GetLoaderAllocator)( ICLRPrivBinder * This, - /* [in] */ LPVOID pvAppDomain, - /* [in] */ LPVOID pvAssemblySpec, - /* [out] */ HRESULT *pResult, - /* [out] */ ICLRPrivAssembly **ppAssembly); - + /* [retval][out] */ LPVOID *pLoaderAllocator) = 0; + END_INTERFACE } ICLRPrivBinderVtbl; @@ -245,18 +220,9 @@ EXTERN_C const IID IID_ICLRPrivBinder; #define ICLRPrivBinder_BindAssemblyByName(This,pAssemblyName,ppAssembly) \ ( (This)->lpVtbl -> BindAssemblyByName(This,pAssemblyName,ppAssembly) ) -#define ICLRPrivBinder_VerifyBind(This,AssemblyName,pAssembly,pAssemblyInfo) \ - ( (This)->lpVtbl -> VerifyBind(This,AssemblyName,pAssembly,pAssemblyInfo) ) - -#define ICLRPrivBinder_GetBinderFlags(This,pBinderFlags) \ - ( (This)->lpVtbl -> GetBinderFlags(This,pBinderFlags) ) - #define ICLRPrivBinder_GetBinderID(This,pBinderId) \ ( (This)->lpVtbl -> GetBinderID(This,pBinderId) ) -#define ICLRPrivBinder_FindAssemblyBySpec(This,pvAppDomain,pvAssemblySpec,pResult,ppAssembly) \ - ( (This)->lpVtbl -> FindAssemblyBySpec(This,pvAppDomain,pvAssemblySpec,pResult,ppAssembly) ) - #endif /* COBJMACROS */ @@ -272,13 +238,6 @@ EXTERN_C const IID IID_ICLRPrivBinder; /* [local] */ -enum CLR_PRIV_BINDER_FLAGS - { - BINDER_NONE = 0, - BINDER_DESIGNER_BINDING_CONTEXT = 0x1, - BINDER_FINDASSEMBLYBYSPEC_REQUIRES_EXACT_MATCH = 0x2 - } ; - enum ASSEMBLY_IMAGE_TYPES { ASSEMBLY_IMAGE_TYPE_IL = 0x1, @@ -343,27 +302,10 @@ EXTERN_C const IID IID_ICLRPrivAssembly; /* [in] */ IAssemblyName *pAssemblyName, /* [retval][out] */ ICLRPrivAssembly **ppAssembly); - HRESULT ( STDMETHODCALLTYPE *VerifyBind )( - ICLRPrivAssembly * This, - /* [in] */ IAssemblyName *AssemblyName, - /* [in] */ ICLRPrivAssembly *pAssembly, - /* [in] */ ICLRPrivAssemblyInfo *pAssemblyInfo); - - HRESULT ( STDMETHODCALLTYPE *GetBinderFlags )( - ICLRPrivAssembly * This, - /* [retval][out] */ DWORD *pBinderFlags); - HRESULT ( STDMETHODCALLTYPE *GetBinderID )( ICLRPrivAssembly * This, /* [retval][out] */ UINT_PTR *pBinderId); - HRESULT ( STDMETHODCALLTYPE *FindAssemblyBySpec )( - ICLRPrivAssembly * This, - /* [in] */ LPVOID pvAppDomain, - /* [in] */ LPVOID pvAssemblySpec, - /* [out] */ HRESULT *pResult, - /* [out] */ ICLRPrivAssembly **ppAssembly); - HRESULT ( STDMETHODCALLTYPE *IsShareable )( ICLRPrivAssembly * This, /* [retval][out] */ BOOL *pbIsShareable); @@ -404,18 +346,9 @@ EXTERN_C const IID IID_ICLRPrivAssembly; #define ICLRPrivAssembly_BindAssemblyByName(This,pAssemblyName,ppAssembly) \ ( (This)->lpVtbl -> BindAssemblyByName(This,pAssemblyName,ppAssembly) ) -#define ICLRPrivAssembly_VerifyBind(This,AssemblyName,pAssembly,pAssemblyInfo) \ - ( (This)->lpVtbl -> VerifyBind(This,AssemblyName,pAssembly,pAssemblyInfo) ) - -#define ICLRPrivAssembly_GetBinderFlags(This,pBinderFlags) \ - ( (This)->lpVtbl -> GetBinderFlags(This,pBinderFlags) ) - #define ICLRPrivAssembly_GetBinderID(This,pBinderId) \ ( (This)->lpVtbl -> GetBinderID(This,pBinderId) ) -#define ICLRPrivAssembly_FindAssemblyBySpec(This,pvAppDomain,pvAssemblySpec,pResult,ppAssembly) \ - ( (This)->lpVtbl -> FindAssemblyBySpec(This,pvAppDomain,pvAssemblySpec,pResult,ppAssembly) ) - #define ICLRPrivAssembly_IsShareable(This,pbIsShareable) \ ( (This)->lpVtbl -> IsShareable(This,pbIsShareable) ) diff --git a/lib/coreclr/src/pal/prebuilt/inc/cordebug.h b/lib/coreclr/src/pal/prebuilt/inc/cordebug.h index e45964ae9d2c..96dc9c0eb192 100644 --- a/lib/coreclr/src/pal/prebuilt/inc/cordebug.h +++ b/lib/coreclr/src/pal/prebuilt/inc/cordebug.h @@ -3,11 +3,11 @@ /* this ALWAYS GENERATED file contains the definitions for the interfaces */ - /* File created by MIDL compiler version 8.00.0603 */ -/* at Fri Sep 23 15:43:16 2016 + /* File created by MIDL compiler version 8.01.0622 */ +/* at Mon Jan 18 19:14:07 2038 */ -/* Compiler settings for cordebug.idl: - Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0603 +/* Compiler settings for E:/repos/coreclr2/src/inc/cordebug.idl: + Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data VC __declspec() decoration level: @@ -29,7 +29,7 @@ #ifndef __RPCNDR_H_VERSION__ #error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ +#endif /* __RPCNDR_H_VERSION__ */ #ifndef COM_NO_WINDOWS_H #include "windows.h" @@ -164,6 +164,13 @@ typedef interface ICorDebugManagedCallback3 ICorDebugManagedCallback3; #endif /* __ICorDebugManagedCallback3_FWD_DEFINED__ */ +#ifndef __ICorDebugManagedCallback4_FWD_DEFINED__ +#define __ICorDebugManagedCallback4_FWD_DEFINED__ +typedef interface ICorDebugManagedCallback4 ICorDebugManagedCallback4; + +#endif /* __ICorDebugManagedCallback4_FWD_DEFINED__ */ + + #ifndef __ICorDebugManagedCallback2_FWD_DEFINED__ #define __ICorDebugManagedCallback2_FWD_DEFINED__ typedef interface ICorDebugManagedCallback2 ICorDebugManagedCallback2; @@ -353,6 +360,13 @@ typedef interface ICorDebugProcess8 ICorDebugProcess8; #endif /* __ICorDebugProcess8_FWD_DEFINED__ */ +#ifndef __ICorDebugProcess10_FWD_DEFINED__ +#define __ICorDebugProcess10_FWD_DEFINED__ +typedef interface ICorDebugProcess10 ICorDebugProcess10; + +#endif /* __ICorDebugProcess10_FWD_DEFINED__ */ + + #ifndef __ICorDebugModuleDebugEvent_FWD_DEFINED__ #define __ICorDebugModuleDebugEvent_FWD_DEFINED__ typedef interface ICorDebugModuleDebugEvent ICorDebugModuleDebugEvent; @@ -581,7 +595,7 @@ typedef interface ICorDebugFunction3 ICorDebugFunction3; #define __ICorDebugFunction4_FWD_DEFINED__ typedef interface ICorDebugFunction4 ICorDebugFunction4; -#endif /* __ICorDebugFunction4_FWD_DEFINED__ */ +#endif /* __ICorDebugFunction4_FWD_DEFINED__ */ #ifndef __ICorDebugCode_FWD_DEFINED__ @@ -724,6 +738,13 @@ typedef interface ICorDebugObjectValue2 ICorDebugObjectValue2; #endif /* __ICorDebugObjectValue2_FWD_DEFINED__ */ +#ifndef __ICorDebugDelegateObjectValue_FWD_DEFINED__ +#define __ICorDebugDelegateObjectValue_FWD_DEFINED__ +typedef interface ICorDebugDelegateObjectValue ICorDebugDelegateObjectValue; + +#endif /* __ICorDebugDelegateObjectValue_FWD_DEFINED__ */ + + #ifndef __ICorDebugBoxValue_FWD_DEFINED__ #define __ICorDebugBoxValue_FWD_DEFINED__ typedef interface ICorDebugBoxValue ICorDebugBoxValue; @@ -3751,14 +3772,120 @@ EXTERN_C const IID IID_ICorDebugManagedCallback3; #endif /* __ICorDebugManagedCallback3_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0017 */ +#ifndef __ICorDebugManagedCallback4_INTERFACE_DEFINED__ +#define __ICorDebugManagedCallback4_INTERFACE_DEFINED__ + +/* interface ICorDebugManagedCallback4 */ +/* [unique][uuid][local][object] */ + + +EXTERN_C const IID IID_ICorDebugManagedCallback4; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("322911AE-16A5-49BA-84A3-ED69678138A3") + ICorDebugManagedCallback4 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE BeforeGarbageCollection( + /* [in] */ ICorDebugProcess *pProcess) = 0; + + virtual HRESULT STDMETHODCALLTYPE AfterGarbageCollection( + /* [in] */ ICorDebugProcess *pProcess) = 0; + + virtual HRESULT STDMETHODCALLTYPE DataBreakpoint( + /* [in] */ ICorDebugProcess *pProcess, + /* [in] */ ICorDebugThread *pThread, + /* [in] */ BYTE *pContext, + /* [in] */ ULONG32 contextSize) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ICorDebugManagedCallback4Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ICorDebugManagedCallback4 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ICorDebugManagedCallback4 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ICorDebugManagedCallback4 * This); + + HRESULT ( STDMETHODCALLTYPE *BeforeGarbageCollection )( + ICorDebugManagedCallback4 * This, + /* [in] */ ICorDebugProcess *pProcess); + + HRESULT ( STDMETHODCALLTYPE *AfterGarbageCollection )( + ICorDebugManagedCallback4 * This, + /* [in] */ ICorDebugProcess *pProcess); + + HRESULT ( STDMETHODCALLTYPE *DataBreakpoint )( + ICorDebugManagedCallback4 * This, + /* [in] */ ICorDebugProcess *pProcess, + /* [in] */ ICorDebugThread *pThread, + /* [in] */ BYTE *pContext, + /* [in] */ ULONG32 contextSize); + + END_INTERFACE + } ICorDebugManagedCallback4Vtbl; + + interface ICorDebugManagedCallback4 + { + CONST_VTBL struct ICorDebugManagedCallback4Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ICorDebugManagedCallback4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ICorDebugManagedCallback4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ICorDebugManagedCallback4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ICorDebugManagedCallback4_BeforeGarbageCollection(This,pProcess) \ + ( (This)->lpVtbl -> BeforeGarbageCollection(This,pProcess) ) + +#define ICorDebugManagedCallback4_AfterGarbageCollection(This,pProcess) \ + ( (This)->lpVtbl -> AfterGarbageCollection(This,pProcess) ) + +#define ICorDebugManagedCallback4_DataBreakpoint(This,pProcess,pThread,pContext,contextSize) \ + ( (This)->lpVtbl -> DataBreakpoint(This,pProcess,pThread,pContext,contextSize) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ICorDebugManagedCallback4_INTERFACE_DEFINED__ */ + + +/* interface __MIDL_itf_cordebug_0000_0018 */ /* [local] */ #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0017_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0017_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0018_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0018_v0_0_s_ifspec; #ifndef __ICorDebugManagedCallback2_INTERFACE_DEFINED__ #define __ICorDebugManagedCallback2_INTERFACE_DEFINED__ @@ -3973,14 +4100,14 @@ EXTERN_C const IID IID_ICorDebugManagedCallback2; #endif /* __ICorDebugManagedCallback2_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0018 */ +/* interface __MIDL_itf_cordebug_0000_0019 */ /* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0018_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0018_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0019_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0019_v0_0_s_ifspec; #ifndef __ICorDebugUnmanagedCallback_INTERFACE_DEFINED__ #define __ICorDebugUnmanagedCallback_INTERFACE_DEFINED__ @@ -4064,7 +4191,7 @@ EXTERN_C const IID IID_ICorDebugUnmanagedCallback; #endif /* __ICorDebugUnmanagedCallback_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0019 */ +/* interface __MIDL_itf_cordebug_0000_0020 */ /* [local] */ typedef @@ -4084,8 +4211,8 @@ enum CorDebugHandleType #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0019_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0019_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0020_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0020_v0_0_s_ifspec; #ifndef __ICorDebug_INTERFACE_DEFINED__ #define __ICorDebug_INTERFACE_DEFINED__ @@ -4273,14 +4400,14 @@ EXTERN_C const IID IID_ICorDebug; #endif /* __ICorDebug_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0020 */ +/* interface __MIDL_itf_cordebug_0000_0021 */ /* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0020_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0020_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0021_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0021_v0_0_s_ifspec; #ifndef __ICorDebugRemoteTarget_INTERFACE_DEFINED__ #define __ICorDebugRemoteTarget_INTERFACE_DEFINED__ @@ -4492,7 +4619,7 @@ EXTERN_C const IID IID_ICorDebugRemote; #endif /* __ICorDebugRemote_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0022 */ +/* interface __MIDL_itf_cordebug_0000_0023 */ /* [local] */ typedef struct _COR_VERSION @@ -4505,8 +4632,8 @@ typedef struct _COR_VERSION -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0022_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0022_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0023_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0023_v0_0_s_ifspec; #ifndef __ICorDebug2_INTERFACE_DEFINED__ #define __ICorDebug2_INTERFACE_DEFINED__ @@ -4668,7 +4795,7 @@ EXTERN_C const IID IID_ICorDebug2; #endif /* __ICorDebug2_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0023 */ +/* interface __MIDL_itf_cordebug_0000_0024 */ /* [local] */ typedef @@ -4680,8 +4807,8 @@ enum CorDebugThreadState -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0023_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0023_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0024_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0024_v0_0_s_ifspec; #ifndef __ICorDebugController_INTERFACE_DEFINED__ #define __ICorDebugController_INTERFACE_DEFINED__ @@ -4863,15 +4990,15 @@ EXTERN_C const IID IID_ICorDebugController; #endif /* __ICorDebugController_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0024 */ +/* interface __MIDL_itf_cordebug_0000_0025 */ /* [local] */ #pragma warning(push) #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0024_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0024_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0025_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0025_v0_0_s_ifspec; #ifndef __ICorDebugAppDomain_INTERFACE_DEFINED__ #define __ICorDebugAppDomain_INTERFACE_DEFINED__ @@ -5123,14 +5250,14 @@ EXTERN_C const IID IID_ICorDebugAppDomain; #endif /* __ICorDebugAppDomain_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0025 */ +/* interface __MIDL_itf_cordebug_0000_0026 */ /* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0025_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0025_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0026_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0026_v0_0_s_ifspec; #ifndef __ICorDebugAppDomain2_INTERFACE_DEFINED__ #define __ICorDebugAppDomain2_INTERFACE_DEFINED__ @@ -5628,15 +5755,15 @@ EXTERN_C const IID IID_ICorDebugAppDomain4; #endif /* __ICorDebugAppDomain4_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0029 */ +/* interface __MIDL_itf_cordebug_0000_0030 */ /* [local] */ #pragma warning(push) #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0029_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0029_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0030_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0030_v0_0_s_ifspec; #ifndef __ICorDebugAssembly_INTERFACE_DEFINED__ #define __ICorDebugAssembly_INTERFACE_DEFINED__ @@ -5766,14 +5893,14 @@ EXTERN_C const IID IID_ICorDebugAssembly; #endif /* __ICorDebugAssembly_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0030 */ +/* interface __MIDL_itf_cordebug_0000_0031 */ /* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0030_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0030_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0031_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0031_v0_0_s_ifspec; #ifndef __ICorDebugAssembly2_INTERFACE_DEFINED__ #define __ICorDebugAssembly2_INTERFACE_DEFINED__ @@ -5945,7 +6072,7 @@ EXTERN_C const IID IID_ICorDebugAssembly3; #endif /* __ICorDebugAssembly3_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0032 */ +/* interface __MIDL_itf_cordebug_0000_0033 */ /* [local] */ #ifndef _DEF_COR_TYPEID_ @@ -5966,8 +6093,8 @@ typedef struct _COR_HEAPOBJECT -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0032_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0032_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0033_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0033_v0_0_s_ifspec; #ifndef __ICorDebugHeapEnum_INTERFACE_DEFINED__ #define __ICorDebugHeapEnum_INTERFACE_DEFINED__ @@ -6081,7 +6208,7 @@ EXTERN_C const IID IID_ICorDebugHeapEnum; #endif /* __ICorDebugHeapEnum_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0033 */ +/* interface __MIDL_itf_cordebug_0000_0034 */ /* [local] */ typedef @@ -6119,8 +6246,8 @@ typedef struct _COR_HEAPINFO -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0033_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0033_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0034_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0034_v0_0_s_ifspec; #ifndef __ICorDebugHeapSegmentEnum_INTERFACE_DEFINED__ #define __ICorDebugHeapSegmentEnum_INTERFACE_DEFINED__ @@ -6234,7 +6361,7 @@ EXTERN_C const IID IID_ICorDebugHeapSegmentEnum; #endif /* __ICorDebugHeapSegmentEnum_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0034 */ +/* interface __MIDL_itf_cordebug_0000_0035 */ /* [local] */ typedef @@ -6270,8 +6397,8 @@ typedef struct COR_GC_REFERENCE #endif // _DEF_COR_GC_REFERENCE_ -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0034_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0034_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0035_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0035_v0_0_s_ifspec; #ifndef __ICorDebugGCReferenceEnum_INTERFACE_DEFINED__ #define __ICorDebugGCReferenceEnum_INTERFACE_DEFINED__ @@ -6385,7 +6512,7 @@ EXTERN_C const IID IID_ICorDebugGCReferenceEnum; #endif /* __ICorDebugGCReferenceEnum_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0035 */ +/* interface __MIDL_itf_cordebug_0000_0036 */ /* [local] */ #ifndef _DEF_COR_ARRAY_LAYOUT_ @@ -6430,8 +6557,8 @@ typedef struct COR_FIELD #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0035_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0035_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0036_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0036_v0_0_s_ifspec; #ifndef __ICorDebugProcess_INTERFACE_DEFINED__ #define __ICorDebugProcess_INTERFACE_DEFINED__ @@ -6781,14 +6908,14 @@ EXTERN_C const IID IID_ICorDebugProcess; #endif /* __ICorDebugProcess_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0036 */ +/* interface __MIDL_itf_cordebug_0000_0037 */ /* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0036_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0036_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0037_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0037_v0_0_s_ifspec; #ifndef __ICorDebugProcess2_INTERFACE_DEFINED__ #define __ICorDebugProcess2_INTERFACE_DEFINED__ @@ -7232,7 +7359,7 @@ EXTERN_C const IID IID_ICorDebugProcess5; #endif /* __ICorDebugProcess5_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0039 */ +/* interface __MIDL_itf_cordebug_0000_0040 */ /* [local] */ typedef @@ -7268,8 +7395,8 @@ enum CorDebugStateChange -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0039_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0039_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0040_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0040_v0_0_s_ifspec; #ifndef __ICorDebugDebugEvent_INTERFACE_DEFINED__ #define __ICorDebugDebugEvent_INTERFACE_DEFINED__ @@ -7361,7 +7488,7 @@ EXTERN_C const IID IID_ICorDebugDebugEvent; #endif /* __ICorDebugDebugEvent_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0040 */ +/* interface __MIDL_itf_cordebug_0000_0041 */ /* [local] */ typedef @@ -7383,8 +7510,8 @@ enum CorDebugCodeInvokePurpose -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0040_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0040_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0041_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0041_v0_0_s_ifspec; #ifndef __ICorDebugProcess6_INTERFACE_DEFINED__ #define __ICorDebugProcess6_INTERFACE_DEFINED__ @@ -7532,7 +7659,7 @@ EXTERN_C const IID IID_ICorDebugProcess6; #endif /* __ICorDebugProcess6_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0041 */ +/* interface __MIDL_itf_cordebug_0000_0042 */ /* [local] */ typedef @@ -7544,8 +7671,8 @@ enum WriteableMetadataUpdateMode -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0041_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0041_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0042_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0042_v0_0_s_ifspec; #ifndef __ICorDebugProcess7_INTERFACE_DEFINED__ #define __ICorDebugProcess7_INTERFACE_DEFINED__ @@ -7707,6 +7834,86 @@ EXTERN_C const IID IID_ICorDebugProcess8; #endif /* __ICorDebugProcess8_INTERFACE_DEFINED__ */ +#ifndef __ICorDebugProcess10_INTERFACE_DEFINED__ +#define __ICorDebugProcess10_INTERFACE_DEFINED__ + +/* interface ICorDebugProcess10 */ +/* [unique][uuid][local][object] */ + + +EXTERN_C const IID IID_ICorDebugProcess10; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("8F378F6F-1017-4461-9890-ECF64C54079F") + ICorDebugProcess10 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE EnableGCNotificationEvents( + BOOL fEnable) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ICorDebugProcess10Vtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ICorDebugProcess10 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ICorDebugProcess10 * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ICorDebugProcess10 * This); + + HRESULT ( STDMETHODCALLTYPE *EnableGCNotificationEvents )( + ICorDebugProcess10 * This, + BOOL fEnable); + + END_INTERFACE + } ICorDebugProcess10Vtbl; + + interface ICorDebugProcess10 + { + CONST_VTBL struct ICorDebugProcess10Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ICorDebugProcess10_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ICorDebugProcess10_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ICorDebugProcess10_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ICorDebugProcess10_EnableGCNotificationEvents(This,fEnable) \ + ( (This)->lpVtbl -> EnableGCNotificationEvents(This,fEnable) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ICorDebugProcess10_INTERFACE_DEFINED__ */ + + #ifndef __ICorDebugModuleDebugEvent_INTERFACE_DEFINED__ #define __ICorDebugModuleDebugEvent_INTERFACE_DEFINED__ @@ -8643,6 +8850,38 @@ enum CorDebugRegister REGISTER_ARM_R11 = ( REGISTER_ARM_R10 + 1 ) , REGISTER_ARM_R12 = ( REGISTER_ARM_R11 + 1 ) , REGISTER_ARM_LR = ( REGISTER_ARM_R12 + 1 ) , + REGISTER_ARM_D0 = ( REGISTER_ARM_LR + 1 ) , + REGISTER_ARM_D1 = ( REGISTER_ARM_D0 + 1 ) , + REGISTER_ARM_D2 = ( REGISTER_ARM_D1 + 1 ) , + REGISTER_ARM_D3 = ( REGISTER_ARM_D2 + 1 ) , + REGISTER_ARM_D4 = ( REGISTER_ARM_D3 + 1 ) , + REGISTER_ARM_D5 = ( REGISTER_ARM_D4 + 1 ) , + REGISTER_ARM_D6 = ( REGISTER_ARM_D5 + 1 ) , + REGISTER_ARM_D7 = ( REGISTER_ARM_D6 + 1 ) , + REGISTER_ARM_D8 = ( REGISTER_ARM_D7 + 1 ) , + REGISTER_ARM_D9 = ( REGISTER_ARM_D8 + 1 ) , + REGISTER_ARM_D10 = ( REGISTER_ARM_D9 + 1 ) , + REGISTER_ARM_D11 = ( REGISTER_ARM_D10 + 1 ) , + REGISTER_ARM_D12 = ( REGISTER_ARM_D11 + 1 ) , + REGISTER_ARM_D13 = ( REGISTER_ARM_D12 + 1 ) , + REGISTER_ARM_D14 = ( REGISTER_ARM_D13 + 1 ) , + REGISTER_ARM_D15 = ( REGISTER_ARM_D14 + 1 ) , + REGISTER_ARM_D16 = ( REGISTER_ARM_D15 + 1 ) , + REGISTER_ARM_D17 = ( REGISTER_ARM_D16 + 1 ) , + REGISTER_ARM_D18 = ( REGISTER_ARM_D17 + 1 ) , + REGISTER_ARM_D19 = ( REGISTER_ARM_D18 + 1 ) , + REGISTER_ARM_D20 = ( REGISTER_ARM_D19 + 1 ) , + REGISTER_ARM_D21 = ( REGISTER_ARM_D20 + 1 ) , + REGISTER_ARM_D22 = ( REGISTER_ARM_D21 + 1 ) , + REGISTER_ARM_D23 = ( REGISTER_ARM_D22 + 1 ) , + REGISTER_ARM_D24 = ( REGISTER_ARM_D23 + 1 ) , + REGISTER_ARM_D25 = ( REGISTER_ARM_D24 + 1 ) , + REGISTER_ARM_D26 = ( REGISTER_ARM_D25 + 1 ) , + REGISTER_ARM_D27 = ( REGISTER_ARM_D26 + 1 ) , + REGISTER_ARM_D28 = ( REGISTER_ARM_D27 + 1 ) , + REGISTER_ARM_D29 = ( REGISTER_ARM_D28 + 1 ) , + REGISTER_ARM_D30 = ( REGISTER_ARM_D29 + 1 ) , + REGISTER_ARM_D31 = ( REGISTER_ARM_D30 + 1 ) , REGISTER_ARM64_PC = 0, REGISTER_ARM64_SP = ( REGISTER_ARM64_PC + 1 ) , REGISTER_ARM64_FP = ( REGISTER_ARM64_SP + 1 ) , @@ -10659,7 +10898,7 @@ EXTERN_C const IID IID_ICorDebugILFrame3; #endif /* __ICorDebugILFrame3_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0065 */ +/* interface __MIDL_itf_cordebug_0000_0067 */ /* [local] */ typedef @@ -10671,8 +10910,8 @@ enum ILCodeKind -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0065_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0065_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0067_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0067_v0_0_s_ifspec; #ifndef __ICorDebugILFrame4_INTERFACE_DEFINED__ #define __ICorDebugILFrame4_INTERFACE_DEFINED__ @@ -11036,15 +11275,15 @@ EXTERN_C const IID IID_ICorDebugNativeFrame; #endif /* __ICorDebugNativeFrame_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0067 */ +/* interface __MIDL_itf_cordebug_0000_0069 */ /* [local] */ #pragma warning(push) #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0067_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0067_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0069_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0069_v0_0_s_ifspec; #ifndef __ICorDebugNativeFrame2_INTERFACE_DEFINED__ #define __ICorDebugNativeFrame2_INTERFACE_DEFINED__ @@ -11614,14 +11853,14 @@ EXTERN_C const IID IID_ICorDebugModule; #endif /* __ICorDebugModule_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0071 */ +/* interface __MIDL_itf_cordebug_0000_0073 */ /* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0071_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0071_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0073_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0073_v0_0_s_ifspec; #ifndef __ICorDebugModule2_INTERFACE_DEFINED__ #define __ICorDebugModule2_INTERFACE_DEFINED__ @@ -12092,7 +12331,7 @@ EXTERN_C const IID IID_ICorDebugFunction3; -#endif /* __ICorDebugFunction3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunction3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFunction4_INTERFACE_DEFINED__ @@ -12116,7 +12355,7 @@ EXTERN_C const IID IID_ICorDebugFunction4; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorDebugFunction4Vtbl { @@ -12151,29 +12390,28 @@ EXTERN_C const IID IID_ICorDebugFunction4; #ifdef COBJMACROS -#define ICorDebugFunction4_QueryInterface(This,riid,ppvObject) \ +#define ICorDebugFunction4_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFunction4_AddRef(This) \ +#define ICorDebugFunction4_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFunction4_Release(This) \ +#define ICorDebugFunction4_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFunction4_CreateNativeBreakpoint(This,ppBreakpoint) \ +#define ICorDebugFunction4_CreateNativeBreakpoint(This,ppBreakpoint) \ ( (This)->lpVtbl -> CreateNativeBreakpoint(This,ppBreakpoint) ) #endif /* COBJMACROS */ -#endif /* C style interface */ - +#endif /* C style interface */ -#endif /* __ICorDebugFunction4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunction4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugCode_INTERFACE_DEFINED__ @@ -14455,6 +14693,96 @@ EXTERN_C const IID IID_ICorDebugObjectValue2; #endif /* __ICorDebugObjectValue2_INTERFACE_DEFINED__ */ +#ifndef __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ +#define __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ + +/* interface ICorDebugDelegateObjectValue */ +/* [unique][uuid][local][object] */ + + +EXTERN_C const IID IID_ICorDebugDelegateObjectValue; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("3AF70CC7-6047-47F6-A5C5-090A1A622638") + ICorDebugDelegateObjectValue : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE GetTarget( + /* [out] */ ICorDebugReferenceValue **ppObject) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetFunction( + /* [out] */ ICorDebugFunction **ppFunction) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ICorDebugDelegateObjectValueVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ICorDebugDelegateObjectValue * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ICorDebugDelegateObjectValue * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ICorDebugDelegateObjectValue * This); + + HRESULT ( STDMETHODCALLTYPE *GetTarget )( + ICorDebugDelegateObjectValue * This, + /* [out] */ ICorDebugReferenceValue **ppObject); + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( + ICorDebugDelegateObjectValue * This, + /* [out] */ ICorDebugFunction **ppFunction); + + END_INTERFACE + } ICorDebugDelegateObjectValueVtbl; + + interface ICorDebugDelegateObjectValue + { + CONST_VTBL struct ICorDebugDelegateObjectValueVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ICorDebugDelegateObjectValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ICorDebugDelegateObjectValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ICorDebugDelegateObjectValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ICorDebugDelegateObjectValue_GetTarget(This,ppObject) \ + ( (This)->lpVtbl -> GetTarget(This,ppObject) ) + +#define ICorDebugDelegateObjectValue_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ */ + + #ifndef __ICorDebugBoxValue_INTERFACE_DEFINED__ #define __ICorDebugBoxValue_INTERFACE_DEFINED__ @@ -14579,15 +14907,15 @@ EXTERN_C const IID IID_ICorDebugBoxValue; #endif /* __ICorDebugBoxValue_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0096 */ +/* interface __MIDL_itf_cordebug_0000_0100 */ /* [local] */ #pragma warning(push) #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0096_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0096_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0100_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0100_v0_0_s_ifspec; #ifndef __ICorDebugStringValue_INTERFACE_DEFINED__ #define __ICorDebugStringValue_INTERFACE_DEFINED__ @@ -14727,14 +15055,14 @@ EXTERN_C const IID IID_ICorDebugStringValue; #endif /* __ICorDebugStringValue_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0097 */ +/* interface __MIDL_itf_cordebug_0000_0101 */ /* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0097_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0097_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0101_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0101_v0_0_s_ifspec; #ifndef __ICorDebugArrayValue_INTERFACE_DEFINED__ #define __ICorDebugArrayValue_INTERFACE_DEFINED__ @@ -17509,15 +17837,15 @@ EXTERN_C const IID IID_ICorDebugBlockingObjectEnum; #endif /* __ICorDebugBlockingObjectEnum_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0121 */ +/* interface __MIDL_itf_cordebug_0000_0125 */ /* [local] */ #pragma warning(push) #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0121_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0121_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0125_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0125_v0_0_s_ifspec; #ifndef __ICorDebugMDA_INTERFACE_DEFINED__ #define __ICorDebugMDA_INTERFACE_DEFINED__ @@ -17657,7 +17985,7 @@ EXTERN_C const IID IID_ICorDebugMDA; #endif /* __ICorDebugMDA_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0122 */ +/* interface __MIDL_itf_cordebug_0000_0126 */ /* [local] */ #pragma warning(pop) @@ -17665,8 +17993,8 @@ EXTERN_C const IID IID_ICorDebugMDA; #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0122_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0122_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0126_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0126_v0_0_s_ifspec; #ifndef __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ #define __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ @@ -17782,14 +18110,14 @@ EXTERN_C const IID IID_ICorDebugEditAndContinueErrorInfo; #endif /* __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0123 */ +/* interface __MIDL_itf_cordebug_0000_0127 */ /* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0123_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0123_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0127_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0127_v0_0_s_ifspec; #ifndef __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ #define __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ diff --git a/lib/coreclr/src/pal/prebuilt/inc/corerror.h b/lib/coreclr/src/pal/prebuilt/inc/corerror.h index d4d449529752..15dc30154649 100644 --- a/lib/coreclr/src/pal/prebuilt/inc/corerror.h +++ b/lib/coreclr/src/pal/prebuilt/inc/corerror.h @@ -24,221 +24,74 @@ #endif #define CLDB_S_TRUNCATION SMAKEHR(0x1106) -#define CLDB_S_NULL SMAKEHR(0x1109) -#define CLDB_S_INDEX_TABLESCANREQUIRED SMAKEHR(0x1125) -#define TLBX_I_TYPEINFO_IMPORTED SMAKEHR(0x116c) -#define TLBX_I_PIA_REGISTERED_FOR_TLB SMAKEHR(0x116d) -#define TLBX_I_AGNOSTIC_ASSEMBLY SMAKEHR(0x116e) -#define TLBX_I_USEIUNKNOWN SMAKEHR(0x116f) -#define TLBX_I_UNCONVERTABLE_ARGS SMAKEHR(0x1170) -#define TLBX_I_UNCONVERTABLE_FIELD SMAKEHR(0x1171) -#define TLBX_W_WARNING_MESSAGE SMAKEHR(0x1173) -#define TLBX_W_ASSEMBLY_HAS_EMBEDDED_TLB SMAKEHR(0x1174) -#define TLBX_W_CROSS_COMPILE_NO_REFS SMAKEHR(0x1175) -#define TLBX_W_PURE_CROSS_COMPILE SMAKEHR(0x1176) -#define TLBX_I_TYPE_EXPORTED SMAKEHR(0x1179) -#define TLBX_I_DUPLICATE_DISPID SMAKEHR(0x117a) -#define TLBX_I_REF_TYPE_AS_STRUCT SMAKEHR(0x117c) -#define TLBX_I_GENERIC_TYPE SMAKEHR(0x117f) -#define TLBX_W_NON_INTEGRAL_CA_TYPE SMAKEHR(0x1184) -#define TLBX_W_IENUM_CA_ON_IUNK SMAKEHR(0x1185) -#define META_S_PARAM_MISMATCH SMAKEHR(0x1189) #define META_S_DUPLICATE SMAKEHR(0x1197) -#define TLBX_S_REFERENCED_TYPELIB SMAKEHR(0x11ac) -#define TLBX_S_NOSTDINTERFACE SMAKEHR(0x11b3) -#define TLBX_S_DUPLICATE_DISPID SMAKEHR(0x11b4) -#define TLBX_W_ENUM_VALUE_TOOBIG SMAKEHR(0x11d5) -#define TLBX_W_EXPORTING_AUTO_LAYOUT SMAKEHR(0x11d9) -#define TLBX_W_DEFAULT_INTF_NOT_VISIBLE SMAKEHR(0x11db) -#define TLBX_W_BAD_SAFEARRAYFIELD_NO_ELEMENTVT SMAKEHR(0x11de) -#define TLBX_W_LAYOUTCLASS_AS_INTERFACE SMAKEHR(0x11df) -#define TLBX_I_GENERIC_BASE_TYPE SMAKEHR(0x11e0) -#define VLDTR_S_WRN SMAKEHR(0x1200) -#define VLDTR_S_ERR SMAKEHR(0x1201) -#define VLDTR_S_WRNERR SMAKEHR(0x1202) #define CORDBG_S_BAD_START_SEQUENCE_POINT SMAKEHR(0x130b) #define CORDBG_S_BAD_END_SEQUENCE_POINT SMAKEHR(0x130c) -#define CORDBG_S_INSUFFICIENT_INFO_FOR_SET_IP SMAKEHR(0x130d) #define CORDBG_S_FUNC_EVAL_HAS_NO_RESULT SMAKEHR(0x1316) #define CORDBG_S_VALUE_POINTS_TO_VOID SMAKEHR(0x1317) #define CORDBG_S_FUNC_EVAL_ABORTED SMAKEHR(0x1319) #define CORDBG_S_AT_END_OF_STACK SMAKEHR(0x1324) #define CORDBG_S_NOT_ALL_BITS_SET SMAKEHR(0x1c13) -#define CEE_E_ENTRYPOINT EMAKEHR(0x1000) #define CEE_E_CVTRES_NOT_FOUND EMAKEHR(0x1001) -#define MSEE_E_LOADLIBFAILED EMAKEHR(0x1010) -#define MSEE_E_GETPROCFAILED EMAKEHR(0x1011) -#define MSEE_E_MULTCOPIESLOADED EMAKEHR(0x1012) #define COR_E_TYPEUNLOADED EMAKEHR(0x1013) #define COR_E_APPDOMAINUNLOADED EMAKEHR(0x1014) #define COR_E_CANNOTUNLOADAPPDOMAIN EMAKEHR(0x1015) #define MSEE_E_ASSEMBLYLOADINPROGRESS EMAKEHR(0x1016) -#define MSEE_E_CANNOTCREATEAPPDOMAIN EMAKEHR(0x1017) #define COR_E_ASSEMBLYEXPECTED EMAKEHR(0x1018) #define COR_E_FIXUPSINEXE EMAKEHR(0x1019) -#define COR_E_NO_LOADLIBRARY_ALLOWED EMAKEHR(0x101a) #define COR_E_NEWER_RUNTIME EMAKEHR(0x101b) -#define COR_E_CANNOT_SET_POLICY EMAKEHR(0x101c) -#define COR_E_CANNOT_SPECIFY_EVIDENCE EMAKEHR(0x101d) #define COR_E_MULTIMODULEASSEMBLIESDIALLOWED EMAKEHR(0x101e) #define HOST_E_DEADLOCK EMAKEHR(0x1020) -#define HOST_E_INTERRUPTED EMAKEHR(0x1021) #define HOST_E_INVALIDOPERATION EMAKEHR(0x1022) #define HOST_E_CLRNOTAVAILABLE EMAKEHR(0x1023) -#define HOST_E_TIMEOUT EMAKEHR(0x1024) -#define HOST_E_NOT_OWNER EMAKEHR(0x1025) -#define HOST_E_ABANDONED EMAKEHR(0x1026) #define HOST_E_EXITPROCESS_THREADABORT EMAKEHR(0x1027) #define HOST_E_EXITPROCESS_ADUNLOAD EMAKEHR(0x1028) #define HOST_E_EXITPROCESS_TIMEOUT EMAKEHR(0x1029) #define HOST_E_EXITPROCESS_OUTOFMEMORY EMAKEHR(0x102a) -#define HOST_E_EXITPROCESS_STACKOVERFLOW EMAKEHR(0x102b) #define COR_E_MODULE_HASH_CHECK_FAILED EMAKEHR(0x1039) #define FUSION_E_REF_DEF_MISMATCH EMAKEHR(0x1040) #define FUSION_E_INVALID_PRIVATE_ASM_LOCATION EMAKEHR(0x1041) #define FUSION_E_ASM_MODULE_MISSING EMAKEHR(0x1042) -#define FUSION_E_UNEXPECTED_MODULE_FOUND EMAKEHR(0x1043) #define FUSION_E_PRIVATE_ASM_DISALLOWED EMAKEHR(0x1044) #define FUSION_E_SIGNATURE_CHECK_FAILED EMAKEHR(0x1045) -#define FUSION_E_DATABASE_ERROR EMAKEHR(0x1046) #define FUSION_E_INVALID_NAME EMAKEHR(0x1047) #define FUSION_E_CODE_DOWNLOAD_DISABLED EMAKEHR(0x1048) -#define FUSION_E_UNINSTALL_DISALLOWED EMAKEHR(0x1049) -#define CLR_E_APP_CONFIG_NOT_ALLOWED_IN_APPX_PROCESS EMAKEHR(0x104a) #define FUSION_E_HOST_GAC_ASM_MISMATCH EMAKEHR(0x1050) #define FUSION_E_LOADFROM_BLOCKED EMAKEHR(0x1051) #define FUSION_E_CACHEFILE_FAILED EMAKEHR(0x1052) #define FUSION_E_APP_DOMAIN_LOCKED EMAKEHR(0x1053) #define FUSION_E_CONFIGURATION_ERROR EMAKEHR(0x1054) #define FUSION_E_MANIFEST_PARSE_ERROR EMAKEHR(0x1055) -#define FUSION_E_INVALID_ASSEMBLY_REFERENCE EMAKEHR(0x1056) -#define COR_E_ASSEMBLY_NOT_EXPECTED EMAKEHR(0x1057) #define COR_E_LOADING_REFERENCE_ASSEMBLY EMAKEHR(0x1058) #define COR_E_NI_AND_RUNTIME_VERSION_MISMATCH EMAKEHR(0x1059) #define COR_E_LOADING_WINMD_REFERENCE_ASSEMBLY EMAKEHR(0x1069) +#define COR_E_AMBIGUOUSIMPLEMENTATION EMAKEHR(0x106a) #define CLDB_E_FILE_BADREAD EMAKEHR(0x1100) #define CLDB_E_FILE_BADWRITE EMAKEHR(0x1101) -#define CLDB_E_FILE_READONLY EMAKEHR(0x1103) -#define CLDB_E_NAME_ERROR EMAKEHR(0x1105) -#define CLDB_E_TRUNCATION EMAKEHR(0x1106) #define CLDB_E_FILE_OLDVER EMAKEHR(0x1107) -#define CLDB_E_RELOCATED EMAKEHR(0x1108) #define CLDB_E_SMDUPLICATE EMAKEHR(0x110a) #define CLDB_E_NO_DATA EMAKEHR(0x110b) -#define CLDB_E_READONLY EMAKEHR(0x110c) #define CLDB_E_INCOMPATIBLE EMAKEHR(0x110d) #define CLDB_E_FILE_CORRUPT EMAKEHR(0x110e) -#define CLDB_E_SCHEMA_VERNOTFOUND EMAKEHR(0x110f) #define CLDB_E_BADUPDATEMODE EMAKEHR(0x1110) -#define CLDB_E_INDEX_NONULLKEYS EMAKEHR(0x1121) -#define CLDB_E_INDEX_DUPLICATE EMAKEHR(0x1122) -#define CLDB_E_INDEX_BADTYPE EMAKEHR(0x1123) #define CLDB_E_INDEX_NOTFOUND EMAKEHR(0x1124) #define CLDB_E_RECORD_NOTFOUND EMAKEHR(0x1130) -#define CLDB_E_RECORD_OVERFLOW EMAKEHR(0x1131) -#define CLDB_E_RECORD_DUPLICATE EMAKEHR(0x1132) -#define CLDB_E_RECORD_PKREQUIRED EMAKEHR(0x1133) -#define CLDB_E_RECORD_DELETED EMAKEHR(0x1134) #define CLDB_E_RECORD_OUTOFORDER EMAKEHR(0x1135) -#define CLDB_E_COLUMN_OVERFLOW EMAKEHR(0x1140) -#define CLDB_E_COLUMN_READONLY EMAKEHR(0x1141) -#define CLDB_E_COLUMN_SPECIALCOL EMAKEHR(0x1142) -#define CLDB_E_COLUMN_PKNONULLS EMAKEHR(0x1143) -#define CLDB_E_TABLE_CANTDROP EMAKEHR(0x1150) -#define CLDB_E_OBJECT_NOTFOUND EMAKEHR(0x1151) -#define CLDB_E_OBJECT_COLNOTFOUND EMAKEHR(0x1152) -#define CLDB_E_VECTOR_BADINDEX EMAKEHR(0x1153) #define CLDB_E_TOO_BIG EMAKEHR(0x1154) #define META_E_INVALID_TOKEN_TYPE EMAKEHR(0x115f) -#define TLBX_E_INVALID_TYPEINFO EMAKEHR(0x1160) -#define TLBX_E_INVALID_TYPEINFO_UNNAMED EMAKEHR(0x1161) -#define TLBX_E_CTX_NESTED EMAKEHR(0x1162) -#define TLBX_E_ERROR_MESSAGE EMAKEHR(0x1163) -#define TLBX_E_CANT_SAVE EMAKEHR(0x1164) -#define TLBX_W_LIBNOTREGISTERED EMAKEHR(0x1165) -#define TLBX_E_CANTLOADLIBRARY EMAKEHR(0x1166) -#define TLBX_E_BAD_VT_TYPE EMAKEHR(0x1167) -#define TLBX_E_NO_MSCOREE_TLB EMAKEHR(0x1168) -#define TLBX_E_BAD_MSCOREE_TLB EMAKEHR(0x1169) -#define TLBX_E_TLB_EXCEPTION EMAKEHR(0x116a) -#define TLBX_E_MULTIPLE_LCIDS EMAKEHR(0x116b) -#define TLBX_E_AMBIGUOUS_RETURN EMAKEHR(0x116d) -#define TLBX_E_DUPLICATE_TYPE_NAME EMAKEHR(0x116e) -#define TLBX_I_NONSEQUENTIALSTRUCT EMAKEHR(0x1172) -#define TLBX_I_RESOLVEREFFAILED EMAKEHR(0x1174) -#define TLBX_E_ASANY EMAKEHR(0x1175) -#define TLBX_E_INVALIDLCIDPARAM EMAKEHR(0x1176) -#define TLBX_E_LCIDONDISPONLYITF EMAKEHR(0x1177) -#define TLBX_E_NONPUBLIC_FIELD EMAKEHR(0x1178) -#define TLBX_E_BAD_NAMES EMAKEHR(0x117b) -#define TLBX_E_GENERICINST_SIGNATURE EMAKEHR(0x117d) -#define TLBX_E_GENERICPAR_SIGNATURE EMAKEHR(0x117e) -#define META_E_DUPLICATE EMAKEHR(0x1180) -#define META_E_GUID_REQUIRED EMAKEHR(0x1181) -#define META_E_TYPEDEF_MISMATCH EMAKEHR(0x1182) -#define META_E_MERGE_COLLISION EMAKEHR(0x1183) -#define TLBX_E_NO_SAFEHANDLE_ARRAYS EMAKEHR(0x1186) -#define META_E_METHD_NOT_FOUND EMAKEHR(0x1187) -#define META_E_FIELD_NOT_FOUND EMAKEHR(0x1188) -#define META_E_PARAM_MISMATCH EMAKEHR(0x1189) +#define TLBX_E_LIBNOTREGISTERED EMAKEHR(0x1165) #define META_E_BADMETADATA EMAKEHR(0x118a) -#define META_E_INTFCEIMPL_NOT_FOUND EMAKEHR(0x118b) -#define TLBX_E_NO_CRITICALHANDLE_ARRAYS EMAKEHR(0x118c) -#define META_E_CLASS_LAYOUT_INCONSISTENT EMAKEHR(0x118d) -#define META_E_FIELD_MARSHAL_NOT_FOUND EMAKEHR(0x118e) -#define META_E_METHODSEM_NOT_FOUND EMAKEHR(0x118f) -#define META_E_EVENT_NOT_FOUND EMAKEHR(0x1190) -#define META_E_PROP_NOT_FOUND EMAKEHR(0x1191) #define META_E_BAD_SIGNATURE EMAKEHR(0x1192) #define META_E_BAD_INPUT_PARAMETER EMAKEHR(0x1193) -#define META_E_METHDIMPL_INCONSISTENT EMAKEHR(0x1194) -#define META_E_MD_INCONSISTENCY EMAKEHR(0x1195) #define META_E_CANNOTRESOLVETYPEREF EMAKEHR(0x1196) #define META_E_STRINGSPACE_FULL EMAKEHR(0x1198) -#define META_E_UNEXPECTED_REMAP EMAKEHR(0x1199) #define META_E_HAS_UNMARKALL EMAKEHR(0x119a) #define META_E_MUST_CALL_UNMARKALL EMAKEHR(0x119b) -#define META_E_GENERICPARAM_INCONSISTENT EMAKEHR(0x119c) -#define META_E_EVENT_COUNTS EMAKEHR(0x119d) -#define META_E_PROPERTY_COUNTS EMAKEHR(0x119e) -#define META_E_TYPEDEF_MISSING EMAKEHR(0x119f) -#define TLBX_E_CANT_LOAD_MODULE EMAKEHR(0x11a0) -#define TLBX_E_CANT_LOAD_CLASS EMAKEHR(0x11a1) -#define TLBX_E_NULL_MODULE EMAKEHR(0x11a2) -#define TLBX_E_NO_CLSID_KEY EMAKEHR(0x11a3) -#define TLBX_E_CIRCULAR_EXPORT EMAKEHR(0x11a4) -#define TLBX_E_CIRCULAR_IMPORT EMAKEHR(0x11a5) -#define TLBX_E_BAD_NATIVETYPE EMAKEHR(0x11a6) -#define TLBX_E_BAD_VTABLE EMAKEHR(0x11a7) -#define TLBX_E_CRM_NON_STATIC EMAKEHR(0x11a8) -#define TLBX_E_CRM_INVALID_SIG EMAKEHR(0x11a9) -#define TLBX_E_CLASS_LOAD_EXCEPTION EMAKEHR(0x11aa) -#define TLBX_E_UNKNOWN_SIGNATURE EMAKEHR(0x11ab) -#define TLBX_E_REFERENCED_TYPELIB EMAKEHR(0x11ac) -#define TLBX_E_INVALID_NAMESPACE EMAKEHR(0x11ad) -#define TLBX_E_LAYOUT_ERROR EMAKEHR(0x11ae) -#define TLBX_E_NOTIUNKNOWN EMAKEHR(0x11af) -#define TLBX_E_NONVISIBLEVALUECLASS EMAKEHR(0x11b0) -#define TLBX_E_LPTSTR_NOT_ALLOWED EMAKEHR(0x11b1) -#define TLBX_E_AUTO_CS_NOT_ALLOWED EMAKEHR(0x11b2) -#define TLBX_E_ENUM_VALUE_INVALID EMAKEHR(0x11b5) -#define TLBX_E_DUPLICATE_IID EMAKEHR(0x11b6) -#define TLBX_E_NO_NESTED_ARRAYS EMAKEHR(0x11b7) -#define TLBX_E_PARAM_ERROR_NAMED EMAKEHR(0x11b8) -#define TLBX_E_PARAM_ERROR_UNNAMED EMAKEHR(0x11b9) -#define TLBX_E_AGNOST_SIGNATURE EMAKEHR(0x11ba) -#define TLBX_E_CONVERT_FAIL EMAKEHR(0x11bb) -#define TLBX_W_DUAL_NOT_DISPATCH EMAKEHR(0x11bc) -#define TLBX_E_BAD_SIGNATURE EMAKEHR(0x11bd) -#define TLBX_E_ARRAY_NEEDS_NT_FIXED EMAKEHR(0x11be) -#define TLBX_E_CLASS_NEEDS_NT_INTF EMAKEHR(0x11bf) #define META_E_CA_INVALID_TARGET EMAKEHR(0x11c0) #define META_E_CA_INVALID_VALUE EMAKEHR(0x11c1) #define META_E_CA_INVALID_BLOB EMAKEHR(0x11c2) #define META_E_CA_REPEATED_ARG EMAKEHR(0x11c3) #define META_E_CA_UNKNOWN_ARGUMENT EMAKEHR(0x11c4) -#define META_E_CA_VARIANT_NYI EMAKEHR(0x11c5) -#define META_E_CA_ARRAY_NYI EMAKEHR(0x11c6) #define META_E_CA_UNEXPECTED_TYPE EMAKEHR(0x11c7) #define META_E_CA_INVALID_ARGTYPE EMAKEHR(0x11c8) #define META_E_CA_INVALID_ARG_FOR_TYPE EMAKEHR(0x11c9) @@ -246,77 +99,18 @@ #define META_E_CA_INVALID_MARSHALAS_FIELDS EMAKEHR(0x11cb) #define META_E_CA_NT_FIELDONLY EMAKEHR(0x11cc) #define META_E_CA_NEGATIVE_PARAMINDEX EMAKEHR(0x11cd) -#define META_E_CA_NEGATIVE_MULTIPLIER EMAKEHR(0x11ce) #define META_E_CA_NEGATIVE_CONSTSIZE EMAKEHR(0x11cf) #define META_E_CA_FIXEDSTR_SIZE_REQUIRED EMAKEHR(0x11d0) #define META_E_CA_CUSTMARSH_TYPE_REQUIRED EMAKEHR(0x11d1) -#define META_E_CA_FILENAME_REQUIRED EMAKEHR(0x11d2) -#define TLBX_W_NO_PROPS_IN_EVENTS EMAKEHR(0x11d3) #define META_E_NOT_IN_ENC_MODE EMAKEHR(0x11d4) -#define META_E_METHOD_COUNTS EMAKEHR(0x11d6) -#define META_E_FIELD_COUNTS EMAKEHR(0x11d7) -#define META_E_PARAM_COUNTS EMAKEHR(0x11d8) -#define TLBX_E_TYPED_REF EMAKEHR(0x11da) -#define TLBX_E_BITNESS_MISMATCH EMAKEHR(0x11e1) -#define TLBX_E_EVENT_WITH_NEWENUM EMAKEHR(0x11e2) -#define TLBX_E_PROPGET_WITHOUT_RETURN EMAKEHR(0x11e3) -#define META_E_MISMATCHED_VISIBLITY EMAKEHR(0x11e4) #define META_E_CA_BAD_FRIENDS_ARGS EMAKEHR(0x11e5) #define META_E_CA_FRIENDS_SN_REQUIRED EMAKEHR(0x11e6) #define VLDTR_E_RID_OUTOFRANGE EMAKEHR(0x1203) -#define VLDTR_E_CDTKN_OUTOFRANGE EMAKEHR(0x1204) -#define VLDTR_E_CDRID_OUTOFRANGE EMAKEHR(0x1205) #define VLDTR_E_STRING_INVALID EMAKEHR(0x1206) #define VLDTR_E_GUID_INVALID EMAKEHR(0x1207) #define VLDTR_E_BLOB_INVALID EMAKEHR(0x1208) -#define VLDTR_E_MOD_MULTI EMAKEHR(0x1209) -#define VLDTR_E_MOD_NULLMVID EMAKEHR(0x120a) -#define VLDTR_E_TR_NAMENULL EMAKEHR(0x120b) -#define VLDTR_E_TR_DUP EMAKEHR(0x120c) -#define VLDTR_E_TD_NAMENULL EMAKEHR(0x120d) -#define VLDTR_E_TD_DUPNAME EMAKEHR(0x120e) -#define VLDTR_E_TD_DUPGUID EMAKEHR(0x120f) -#define VLDTR_E_TD_NOTIFACEOBJEXTNULL EMAKEHR(0x1210) -#define VLDTR_E_TD_OBJEXTENDSNONNULL EMAKEHR(0x1211) -#define VLDTR_E_TD_EXTENDSSEALED EMAKEHR(0x1212) -#define VLDTR_E_TD_DLTNORTSPCL EMAKEHR(0x1213) -#define VLDTR_E_TD_RTSPCLNOTDLT EMAKEHR(0x1214) -#define VLDTR_E_MI_DECLPRIV EMAKEHR(0x1215) -#define VLDTR_E_AS_BADNAME EMAKEHR(0x1216) -#define VLDTR_E_FILE_SYSNAME EMAKEHR(0x1217) -#define VLDTR_E_MI_BODYSTATIC EMAKEHR(0x1218) -#define VLDTR_E_TD_IFACENOTABS EMAKEHR(0x1219) -#define VLDTR_E_TD_IFACEPARNOTNIL EMAKEHR(0x121a) -#define VLDTR_E_TD_IFACEGUIDNULL EMAKEHR(0x121b) -#define VLDTR_E_MI_DECLFINAL EMAKEHR(0x121c) -#define VLDTR_E_TD_VTNOTSEAL EMAKEHR(0x121d) -#define VLDTR_E_PD_BADFLAGS EMAKEHR(0x121e) -#define VLDTR_E_IFACE_DUP EMAKEHR(0x121f) -#define VLDTR_E_MR_NAMENULL EMAKEHR(0x1220) -#define VLDTR_E_MR_VTBLNAME EMAKEHR(0x1221) -#define VLDTR_E_MR_DELNAME EMAKEHR(0x1222) -#define VLDTR_E_MR_PARNIL EMAKEHR(0x1223) #define VLDTR_E_MR_BADCALLINGCONV EMAKEHR(0x1224) -#define VLDTR_E_MR_NOTVARARG EMAKEHR(0x1225) -#define VLDTR_E_MR_NAMEDIFF EMAKEHR(0x1226) -#define VLDTR_E_MR_SIGDIFF EMAKEHR(0x1227) -#define VLDTR_E_MR_DUP EMAKEHR(0x1228) -#define VLDTR_E_CL_TDAUTO EMAKEHR(0x1229) -#define VLDTR_E_CL_BADPCKSZ EMAKEHR(0x122a) -#define VLDTR_E_CL_DUP EMAKEHR(0x122b) -#define VLDTR_E_FL_BADOFFSET EMAKEHR(0x122c) -#define VLDTR_E_FL_TDNIL EMAKEHR(0x122d) -#define VLDTR_E_FL_NOCL EMAKEHR(0x122e) -#define VLDTR_E_FL_TDNOTEXPLCT EMAKEHR(0x122f) -#define VLDTR_E_FL_FLDSTATIC EMAKEHR(0x1230) -#define VLDTR_E_FL_DUP EMAKEHR(0x1231) -#define VLDTR_E_MODREF_NAMENULL EMAKEHR(0x1232) -#define VLDTR_E_MODREF_DUP EMAKEHR(0x1233) -#define VLDTR_E_TR_BADSCOPE EMAKEHR(0x1234) -#define VLDTR_E_TD_NESTEDNOENCL EMAKEHR(0x1235) -#define VLDTR_E_TD_EXTTRRES EMAKEHR(0x1236) #define VLDTR_E_SIGNULL EMAKEHR(0x1237) -#define VLDTR_E_SIGNODATA EMAKEHR(0x1238) #define VLDTR_E_MD_BADCALLINGCONV EMAKEHR(0x1239) #define VLDTR_E_MD_THISSTATIC EMAKEHR(0x123a) #define VLDTR_E_MD_NOTTHISNOTSTATIC EMAKEHR(0x123b) @@ -332,187 +126,13 @@ #define VLDTR_E_SIG_MISSNLBND EMAKEHR(0x1245) #define VLDTR_E_SIG_MISSLBND EMAKEHR(0x1246) #define VLDTR_E_SIG_BADELTYPE EMAKEHR(0x1247) -#define VLDTR_E_SIG_MISSVASIZE EMAKEHR(0x1248) -#define VLDTR_E_FD_BADCALLINGCONV EMAKEHR(0x1249) -#define VLDTR_E_MD_NAMENULL EMAKEHR(0x124a) -#define VLDTR_E_MD_PARNIL EMAKEHR(0x124b) -#define VLDTR_E_MD_DUP EMAKEHR(0x124c) -#define VLDTR_E_FD_NAMENULL EMAKEHR(0x124d) -#define VLDTR_E_FD_PARNIL EMAKEHR(0x124e) -#define VLDTR_E_FD_DUP EMAKEHR(0x124f) -#define VLDTR_E_AS_MULTI EMAKEHR(0x1250) -#define VLDTR_E_AS_NAMENULL EMAKEHR(0x1251) -#define VLDTR_E_SIG_TOKTYPEMISMATCH EMAKEHR(0x1252) -#define VLDTR_E_CL_TDINTF EMAKEHR(0x1253) -#define VLDTR_E_ASOS_OSPLTFRMIDINVAL EMAKEHR(0x1254) -#define VLDTR_E_AR_NAMENULL EMAKEHR(0x1255) #define VLDTR_E_TD_ENCLNOTNESTED EMAKEHR(0x1256) -#define VLDTR_E_AROS_OSPLTFRMIDINVAL EMAKEHR(0x1257) -#define VLDTR_E_FILE_NAMENULL EMAKEHR(0x1258) -#define VLDTR_E_CT_NAMENULL EMAKEHR(0x1259) -#define VLDTR_E_TD_EXTENDSCHILD EMAKEHR(0x125a) -#define VLDTR_E_MAR_NAMENULL EMAKEHR(0x125b) -#define VLDTR_E_FILE_DUP EMAKEHR(0x125c) -#define VLDTR_E_FILE_NAMEFULLQLFD EMAKEHR(0x125d) -#define VLDTR_E_CT_DUP EMAKEHR(0x125e) -#define VLDTR_E_MAR_DUP EMAKEHR(0x125f) -#define VLDTR_E_MAR_NOTPUBPRIV EMAKEHR(0x1260) -#define VLDTR_E_TD_ENUMNOVALUE EMAKEHR(0x1261) -#define VLDTR_E_TD_ENUMVALSTATIC EMAKEHR(0x1262) -#define VLDTR_E_TD_ENUMVALNOTSN EMAKEHR(0x1263) -#define VLDTR_E_TD_ENUMFLDNOTST EMAKEHR(0x1264) -#define VLDTR_E_TD_ENUMFLDNOTLIT EMAKEHR(0x1265) -#define VLDTR_E_TD_ENUMNOLITFLDS EMAKEHR(0x1266) -#define VLDTR_E_TD_ENUMFLDSIGMISMATCH EMAKEHR(0x1267) -#define VLDTR_E_TD_ENUMVALNOT1ST EMAKEHR(0x1268) -#define VLDTR_E_FD_NOTVALUERTSN EMAKEHR(0x1269) -#define VLDTR_E_FD_VALUEPARNOTENUM EMAKEHR(0x126a) -#define VLDTR_E_FD_INSTINIFACE EMAKEHR(0x126b) -#define VLDTR_E_FD_NOTPUBINIFACE EMAKEHR(0x126c) -#define VLDTR_E_FMD_GLOBALNOTPUBPRIVSC EMAKEHR(0x126d) -#define VLDTR_E_FMD_GLOBALNOTSTATIC EMAKEHR(0x126e) -#define VLDTR_E_FD_GLOBALNORVA EMAKEHR(0x126f) -#define VLDTR_E_MD_CTORZERORVA EMAKEHR(0x1270) -#define VLDTR_E_FD_MARKEDNOMARSHAL EMAKEHR(0x1271) -#define VLDTR_E_FD_MARSHALNOTMARKED EMAKEHR(0x1272) -#define VLDTR_E_FD_MARKEDNODEFLT EMAKEHR(0x1273) -#define VLDTR_E_FD_DEFLTNOTMARKED EMAKEHR(0x1274) -#define VLDTR_E_FMD_MARKEDNOSECUR EMAKEHR(0x1275) -#define VLDTR_E_FMD_SECURNOTMARKED EMAKEHR(0x1276) #define VLDTR_E_FMD_PINVOKENOTSTATIC EMAKEHR(0x1277) -#define VLDTR_E_FMD_MARKEDNOPINVOKE EMAKEHR(0x1278) -#define VLDTR_E_FMD_PINVOKENOTMARKED EMAKEHR(0x1279) -#define VLDTR_E_FMD_BADIMPLMAP EMAKEHR(0x127a) -#define VLDTR_E_IMAP_BADMODREF EMAKEHR(0x127b) -#define VLDTR_E_IMAP_BADMEMBER EMAKEHR(0x127c) -#define VLDTR_E_IMAP_BADIMPORTNAME EMAKEHR(0x127d) -#define VLDTR_E_IMAP_BADCALLCONV EMAKEHR(0x127e) -#define VLDTR_E_FMD_BADACCESSFLAG EMAKEHR(0x127f) -#define VLDTR_E_FD_INITONLYANDLITERAL EMAKEHR(0x1280) -#define VLDTR_E_FD_LITERALNOTSTATIC EMAKEHR(0x1281) -#define VLDTR_E_FMD_RTSNNOTSN EMAKEHR(0x1282) -#define VLDTR_E_MD_ABSTPARNOTABST EMAKEHR(0x1283) -#define VLDTR_E_MD_NOTSTATABSTININTF EMAKEHR(0x1284) -#define VLDTR_E_MD_NOTPUBININTF EMAKEHR(0x1285) -#define VLDTR_E_MD_CTORININTF EMAKEHR(0x1286) -#define VLDTR_E_MD_GLOBALCTORCCTOR EMAKEHR(0x1287) -#define VLDTR_E_MD_CTORSTATIC EMAKEHR(0x1288) -#define VLDTR_E_MD_CTORNOTSNRTSN EMAKEHR(0x1289) -#define VLDTR_E_MD_CTORVIRT EMAKEHR(0x128a) -#define VLDTR_E_MD_CTORABST EMAKEHR(0x128b) -#define VLDTR_E_MD_CCTORNOTSTATIC EMAKEHR(0x128c) -#define VLDTR_E_MD_ZERORVA EMAKEHR(0x128d) -#define VLDTR_E_MD_FINNOTVIRT EMAKEHR(0x128e) -#define VLDTR_E_MD_STATANDFINORVIRT EMAKEHR(0x128f) -#define VLDTR_E_MD_ABSTANDFINAL EMAKEHR(0x1290) -#define VLDTR_E_MD_ABSTANDIMPL EMAKEHR(0x1291) -#define VLDTR_E_MD_ABSTANDPINVOKE EMAKEHR(0x1292) -#define VLDTR_E_MD_ABSTNOTVIRT EMAKEHR(0x1293) -#define VLDTR_E_MD_NOTABSTNOTIMPL EMAKEHR(0x1294) -#define VLDTR_E_MD_NOTABSTBADFLAGSRVA EMAKEHR(0x1295) -#define VLDTR_E_MD_PRIVSCOPENORVA EMAKEHR(0x1296) -#define VLDTR_E_MD_GLOBALABSTORVIRT EMAKEHR(0x1297) -#define VLDTR_E_SIG_LONGFORM EMAKEHR(0x1298) -#define VLDTR_E_MD_MULTIPLESEMANTICS EMAKEHR(0x1299) -#define VLDTR_E_MD_INVALIDSEMANTICS EMAKEHR(0x129a) -#define VLDTR_E_MD_SEMANTICSNOTEXIST EMAKEHR(0x129b) -#define VLDTR_E_MI_DECLNOTVIRT EMAKEHR(0x129c) -#define VLDTR_E_FMD_GLOBALITEM EMAKEHR(0x129d) -#define VLDTR_E_MD_MULTSEMANTICFLAGS EMAKEHR(0x129e) -#define VLDTR_E_MD_NOSEMANTICFLAGS EMAKEHR(0x129f) -#define VLDTR_E_FD_FLDINIFACE EMAKEHR(0x12a0) -#define VLDTR_E_AS_HASHALGID EMAKEHR(0x12a1) -#define VLDTR_E_AS_PROCID EMAKEHR(0x12a2) -#define VLDTR_E_AR_PROCID EMAKEHR(0x12a3) -#define VLDTR_E_CN_PARENTRANGE EMAKEHR(0x12a4) -#define VLDTR_E_AS_BADFLAGS EMAKEHR(0x12a5) -#define VLDTR_E_TR_HASTYPEDEF EMAKEHR(0x12a6) -#define VLDTR_E_IFACE_BADIMPL EMAKEHR(0x12a7) -#define VLDTR_E_IFACE_BADIFACE EMAKEHR(0x12a8) -#define VLDTR_E_TD_SECURNOTMARKED EMAKEHR(0x12a9) -#define VLDTR_E_TD_MARKEDNOSECUR EMAKEHR(0x12aa) -#define VLDTR_E_MD_CCTORHASARGS EMAKEHR(0x12ab) -#define VLDTR_E_CT_BADIMPL EMAKEHR(0x12ac) -#define VLDTR_E_MI_ALIENBODY EMAKEHR(0x12ad) -#define VLDTR_E_MD_CCTORCALLCONV EMAKEHR(0x12ae) -#define VLDTR_E_MI_BADCLASS EMAKEHR(0x12af) -#define VLDTR_E_MI_CLASSISINTF EMAKEHR(0x12b0) -#define VLDTR_E_MI_BADDECL EMAKEHR(0x12b1) -#define VLDTR_E_MI_BADBODY EMAKEHR(0x12b2) -#define VLDTR_E_MI_DUP EMAKEHR(0x12b3) -#define VLDTR_E_FD_BADPARENT EMAKEHR(0x12b4) -#define VLDTR_E_MD_PARAMOUTOFSEQ EMAKEHR(0x12b5) -#define VLDTR_E_MD_PARASEQTOOBIG EMAKEHR(0x12b6) -#define VLDTR_E_MD_PARMMARKEDNOMARSHAL EMAKEHR(0x12b7) -#define VLDTR_E_MD_PARMMARSHALNOTMARKED EMAKEHR(0x12b8) -#define VLDTR_E_MD_PARMMARKEDNODEFLT EMAKEHR(0x12ba) -#define VLDTR_E_MD_PARMDEFLTNOTMARKED EMAKEHR(0x12bb) -#define VLDTR_E_PR_BADSCOPE EMAKEHR(0x12bc) -#define VLDTR_E_PR_NONAME EMAKEHR(0x12bd) -#define VLDTR_E_PR_NOSIG EMAKEHR(0x12be) -#define VLDTR_E_PR_DUP EMAKEHR(0x12bf) -#define VLDTR_E_PR_BADCALLINGCONV EMAKEHR(0x12c0) -#define VLDTR_E_PR_MARKEDNODEFLT EMAKEHR(0x12c1) -#define VLDTR_E_PR_DEFLTNOTMARKED EMAKEHR(0x12c2) -#define VLDTR_E_PR_BADSEMANTICS EMAKEHR(0x12c3) -#define VLDTR_E_PR_BADMETHOD EMAKEHR(0x12c4) -#define VLDTR_E_PR_ALIENMETHOD EMAKEHR(0x12c5) -#define VLDTR_E_CN_BLOBNOTNULL EMAKEHR(0x12c6) -#define VLDTR_E_CN_BLOBNULL EMAKEHR(0x12c7) -#define VLDTR_E_EV_BADSCOPE EMAKEHR(0x12c8) -#define VLDTR_E_EV_NONAME EMAKEHR(0x12ca) -#define VLDTR_E_EV_DUP EMAKEHR(0x12cb) -#define VLDTR_E_EV_BADEVTYPE EMAKEHR(0x12cc) -#define VLDTR_E_EV_EVTYPENOTCLASS EMAKEHR(0x12cd) -#define VLDTR_E_EV_BADSEMANTICS EMAKEHR(0x12ce) -#define VLDTR_E_EV_BADMETHOD EMAKEHR(0x12cf) -#define VLDTR_E_EV_ALIENMETHOD EMAKEHR(0x12d0) -#define VLDTR_E_EV_NOADDON EMAKEHR(0x12d1) -#define VLDTR_E_EV_NOREMOVEON EMAKEHR(0x12d2) -#define VLDTR_E_CT_DUPTDNAME EMAKEHR(0x12d3) -#define VLDTR_E_MAR_BADOFFSET EMAKEHR(0x12d4) -#define VLDTR_E_DS_BADOWNER EMAKEHR(0x12d5) -#define VLDTR_E_DS_BADFLAGS EMAKEHR(0x12d6) -#define VLDTR_E_DS_NOBLOB EMAKEHR(0x12d7) -#define VLDTR_E_MAR_BADIMPL EMAKEHR(0x12d8) -#define VLDTR_E_MR_VARARGCALLINGCONV EMAKEHR(0x12da) -#define VLDTR_E_MD_CTORNOTVOID EMAKEHR(0x12db) -#define VLDTR_E_EV_FIRENOTVOID EMAKEHR(0x12dc) -#define VLDTR_E_AS_BADLOCALE EMAKEHR(0x12dd) -#define VLDTR_E_CN_PARENTTYPE EMAKEHR(0x12de) #define VLDTR_E_SIG_SENTINMETHODDEF EMAKEHR(0x12df) #define VLDTR_E_SIG_SENTMUSTVARARG EMAKEHR(0x12e0) #define VLDTR_E_SIG_MULTSENTINELS EMAKEHR(0x12e1) -#define VLDTR_E_SIG_LASTSENTINEL EMAKEHR(0x12e2) #define VLDTR_E_SIG_MISSARG EMAKEHR(0x12e3) #define VLDTR_E_SIG_BYREFINFIELD EMAKEHR(0x12e4) -#define VLDTR_E_MD_SYNCMETHODINVTYPE EMAKEHR(0x12e5) -#define VLDTR_E_TD_NAMETOOLONG EMAKEHR(0x12e6) -#define VLDTR_E_AS_PROCDUP EMAKEHR(0x12e7) -#define VLDTR_E_ASOS_DUP EMAKEHR(0x12e8) -#define VLDTR_E_MAR_BADFLAGS EMAKEHR(0x12e9) -#define VLDTR_E_CT_NOTYPEDEFID EMAKEHR(0x12ea) -#define VLDTR_E_FILE_BADFLAGS EMAKEHR(0x12eb) -#define VLDTR_E_FILE_NULLHASH EMAKEHR(0x12ec) -#define VLDTR_E_MOD_NONAME EMAKEHR(0x12ed) -#define VLDTR_E_MOD_NAMEFULLQLFD EMAKEHR(0x12ee) -#define VLDTR_E_TD_RTSPCLNOTSPCL EMAKEHR(0x12ef) -#define VLDTR_E_TD_EXTENDSIFACE EMAKEHR(0x12f0) -#define VLDTR_E_MD_CTORPINVOKE EMAKEHR(0x12f1) -#define VLDTR_E_TD_SYSENUMNOTCLASS EMAKEHR(0x12f2) -#define VLDTR_E_TD_SYSENUMNOTEXTVTYPE EMAKEHR(0x12f3) -#define VLDTR_E_MI_SIGMISMATCH EMAKEHR(0x12f4) -#define VLDTR_E_TD_ENUMHASMETHODS EMAKEHR(0x12f5) -#define VLDTR_E_TD_ENUMIMPLIFACE EMAKEHR(0x12f6) -#define VLDTR_E_TD_ENUMHASPROP EMAKEHR(0x12f7) -#define VLDTR_E_TD_ENUMHASEVENT EMAKEHR(0x12f8) -#define VLDTR_E_TD_BADMETHODLST EMAKEHR(0x12f9) -#define VLDTR_E_TD_BADFIELDLST EMAKEHR(0x12fa) -#define VLDTR_E_CN_BADTYPE EMAKEHR(0x12fb) -#define VLDTR_E_TD_ENUMNOINSTFLD EMAKEHR(0x12fc) -#define VLDTR_E_TD_ENUMMULINSTFLD EMAKEHR(0x12fd) -#define VLDTR_E_INTERRUPTED EMAKEHR(0x12fe) -#define VLDTR_E_NOTINIT EMAKEHR(0x12ff) #define CORDBG_E_UNRECOVERABLE_ERROR EMAKEHR(0x1300) #define CORDBG_E_PROCESS_TERMINATED EMAKEHR(0x1301) #define CORDBG_E_PROCESS_NOT_SYNCHRONIZED EMAKEHR(0x1302) @@ -521,7 +141,6 @@ #define CORDBG_E_BAD_REFERENCE_VALUE EMAKEHR(0x1305) #define CORDBG_E_FIELD_NOT_AVAILABLE EMAKEHR(0x1306) #define CORDBG_E_NON_NATIVE_FRAME EMAKEHR(0x1307) -#define CORDBG_E_NONCONTINUABLE_EXCEPTION EMAKEHR(0x1308) #define CORDBG_E_CODE_NOT_AVAILABLE EMAKEHR(0x1309) #define CORDBG_E_FUNCTION_NOT_IL EMAKEHR(0x130a) #define CORDBG_E_CANT_SET_IP_INTO_FINALLY EMAKEHR(0x130e) @@ -532,16 +151,11 @@ #define CORDBG_E_FUNC_EVAL_BAD_START_POINT EMAKEHR(0x1313) #define CORDBG_E_INVALID_OBJECT EMAKEHR(0x1314) #define CORDBG_E_FUNC_EVAL_NOT_COMPLETE EMAKEHR(0x1315) -#define CORDBG_E_INPROC_NOT_IMPL EMAKEHR(0x1318) #define CORDBG_E_STATIC_VAR_NOT_AVAILABLE EMAKEHR(0x131a) -#define CORDBG_E_OBJECT_IS_NOT_COPYABLE_VALUE_CLASS EMAKEHR(0x131b) #define CORDBG_E_CANT_SETIP_INTO_OR_OUT_OF_FILTER EMAKEHR(0x131c) #define CORDBG_E_CANT_CHANGE_JIT_SETTING_FOR_ZAP_MODULE EMAKEHR(0x131d) #define CORDBG_E_CANT_SET_IP_OUT_OF_FINALLY_ON_WIN64 EMAKEHR(0x131e) #define CORDBG_E_CANT_SET_IP_OUT_OF_CATCH_ON_WIN64 EMAKEHR(0x131f) -#define CORDBG_E_REMOTE_CONNECTION_CONN_RESET EMAKEHR(0x1320) -#define CORDBG_E_REMOTE_CONNECTION_KEEP_ALIVE EMAKEHR(0x1321) -#define CORDBG_E_REMOTE_CONNECTION_FATAL_ERROR EMAKEHR(0x1322) #define CORDBG_E_CANT_SET_TO_JMC EMAKEHR(0x1323) #define CORDBG_E_NO_CONTEXT_FOR_INTERNAL_FRAME EMAKEHR(0x1325) #define CORDBG_E_NOT_CHILD_FRAME EMAKEHR(0x1326) @@ -552,32 +166,21 @@ #define CORDBG_E_DEBUGGER_ALREADY_ATTACHED EMAKEHR(0x132e) #define CORDBG_E_SUPERFLOUS_CONTINUE EMAKEHR(0x132f) #define CORDBG_E_SET_VALUE_NOT_ALLOWED_ON_NONLEAF_FRAME EMAKEHR(0x1330) -#define CORDBG_E_ENC_EH_MAX_NESTING_LEVEL_CANT_INCREASE EMAKEHR(0x1331) #define CORDBG_E_ENC_MODULE_NOT_ENC_ENABLED EMAKEHR(0x1332) #define CORDBG_E_SET_IP_NOT_ALLOWED_ON_EXCEPTION EMAKEHR(0x1333) #define CORDBG_E_VARIABLE_IS_ACTUALLY_LITERAL EMAKEHR(0x1334) #define CORDBG_E_PROCESS_DETACHED EMAKEHR(0x1335) -#define CORDBG_E_ENC_METHOD_SIG_CHANGED EMAKEHR(0x1336) -#define CORDBG_E_ENC_METHOD_NO_LOCAL_SIG EMAKEHR(0x1337) #define CORDBG_E_ENC_CANT_ADD_FIELD_TO_VALUE_OR_LAYOUT_CLASS EMAKEHR(0x1338) -#define CORDBG_E_ENC_CANT_CHANGE_FIELD EMAKEHR(0x1339) -#define CORDBG_E_ENC_CANT_ADD_NON_PRIVATE_MEMBER EMAKEHR(0x133a) #define CORDBG_E_FIELD_NOT_STATIC EMAKEHR(0x133b) #define CORDBG_E_FIELD_NOT_INSTANCE EMAKEHR(0x133c) -#define CORDBG_E_ENC_ZAPPED_WITHOUT_ENC EMAKEHR(0x133d) -#define CORDBG_E_ENC_BAD_METHOD_INFO EMAKEHR(0x133e) #define CORDBG_E_ENC_JIT_CANT_UPDATE EMAKEHR(0x133f) -#define CORDBG_E_ENC_MISSING_CLASS EMAKEHR(0x1340) #define CORDBG_E_ENC_INTERNAL_ERROR EMAKEHR(0x1341) #define CORDBG_E_ENC_HANGING_FIELD EMAKEHR(0x1342) #define CORDBG_E_MODULE_NOT_LOADED EMAKEHR(0x1343) -#define CORDBG_E_ENC_CANT_CHANGE_SUPERCLASS EMAKEHR(0x1344) #define CORDBG_E_UNABLE_TO_SET_BREAKPOINT EMAKEHR(0x1345) #define CORDBG_E_DEBUGGING_NOT_POSSIBLE EMAKEHR(0x1346) #define CORDBG_E_KERNEL_DEBUGGER_ENABLED EMAKEHR(0x1347) #define CORDBG_E_KERNEL_DEBUGGER_PRESENT EMAKEHR(0x1348) -#define CORDBG_E_HELPER_THREAD_DEAD EMAKEHR(0x1349) -#define CORDBG_E_INTERFACE_INHERITANCE_CANT_CHANGE EMAKEHR(0x134a) #define CORDBG_E_INCOMPATIBLE_PROTOCOL EMAKEHR(0x134b) #define CORDBG_E_TOO_MANY_PROCESSES EMAKEHR(0x134c) #define CORDBG_E_INTEROP_NOT_SUPPORTED EMAKEHR(0x134d) @@ -585,15 +188,9 @@ #define CORDBG_E_OBJECT_NEUTERED EMAKEHR(0x134f) #define CORPROF_E_FUNCTION_NOT_COMPILED EMAKEHR(0x1350) #define CORPROF_E_DATAINCOMPLETE EMAKEHR(0x1351) -#define CORPROF_E_NOT_REJITABLE_METHODS EMAKEHR(0x1352) -#define CORPROF_E_CANNOT_UPDATE_METHOD EMAKEHR(0x1353) #define CORPROF_E_FUNCTION_NOT_IL EMAKEHR(0x1354) #define CORPROF_E_NOT_MANAGED_THREAD EMAKEHR(0x1355) #define CORPROF_E_CALL_ONLY_FROM_INIT EMAKEHR(0x1356) -#define CORPROF_E_INPROC_NOT_ENABLED EMAKEHR(0x1357) -#define CORPROF_E_JITMAPS_NOT_ENABLED EMAKEHR(0x1358) -#define CORPROF_E_INPROC_ALREADY_BEGUN EMAKEHR(0x1359) -#define CORPROF_E_INPROC_NOT_AVAILABLE EMAKEHR(0x135a) #define CORPROF_E_NOT_YET_AVAILABLE EMAKEHR(0x135b) #define CORPROF_E_TYPE_IS_PARAMETERIZED EMAKEHR(0x135c) #define CORPROF_E_FUNCTION_IS_PARAMETERIZED EMAKEHR(0x135d) @@ -622,91 +219,35 @@ #define CORPROF_E_INCONSISTENT_WITH_FLAGS EMAKEHR(0x1374) #define CORPROF_E_PROFILER_CANCEL_ACTIVATION EMAKEHR(0x1375) #define CORPROF_E_CONCURRENT_GC_NOT_PROFILABLE EMAKEHR(0x1376) -#define CORPROF_E_INCONSISTENT_FLAGS_WITH_HOST_PROTECTION_SETTING EMAKEHR(0x1377) #define CORPROF_E_DEBUGGING_DISABLED EMAKEHR(0x1378) #define CORPROF_E_TIMEOUT_WAITING_FOR_CONCURRENT_GC EMAKEHR(0x1379) #define CORPROF_E_MODULE_IS_DYNAMIC EMAKEHR(0x137a) #define CORPROF_E_CALLBACK4_REQUIRED EMAKEHR(0x137b) #define CORPROF_E_REJIT_NOT_ENABLED EMAKEHR(0x137c) -#define CORPROF_E_ACTIVE_REJIT_REQUEST_NOT_FOUND EMAKEHR(0x137d) #define CORPROF_E_FUNCTION_IS_COLLECTIBLE EMAKEHR(0x137e) -#define CORPROF_E_REJIT_REQUIRES_DISABLE_NGEN EMAKEHR(0x137f) #define CORPROF_E_CALLBACK6_REQUIRED EMAKEHR(0x1380) #define CORPROF_E_CALLBACK7_REQUIRED EMAKEHR(0x1382) -#define SECURITY_E_XML_TO_ASN_ENCODING EMAKEHR(0x1400) +#define CORPROF_E_REJIT_INLINING_DISABLED EMAKEHR(0x1383) +#define CORDIAGIPC_E_BAD_ENCODING EMAKEHR(0x1384) +#define CORDIAGIPC_E_UNKNOWN_COMMAND EMAKEHR(0x1385) +#define CORDIAGIPC_E_UNKNOWN_MAGIC EMAKEHR(0x1386) +#define CORDIAGIPC_E_UNKNOWN_ERROR EMAKEHR(0x1387) +#define CORPROF_E_SUSPENSION_IN_PROGRESS EMAKEHR(0x1388) #define SECURITY_E_INCOMPATIBLE_SHARE EMAKEHR(0x1401) #define SECURITY_E_UNVERIFIABLE EMAKEHR(0x1402) #define SECURITY_E_INCOMPATIBLE_EVIDENCE EMAKEHR(0x1403) -#define CORSEC_E_DECODE_SET EMAKEHR(0x1410) -#define CORSEC_E_ENCODE_SET EMAKEHR(0x1411) -#define CORSEC_E_UNSUPPORTED_FORMAT EMAKEHR(0x1412) -#define SN_CRYPTOAPI_CALL_FAILED EMAKEHR(0x1413) -#define CORSEC_E_CRYPTOAPI_CALL_FAILED EMAKEHR(0x1413) -#define SN_NO_SUITABLE_CSP EMAKEHR(0x1414) -#define CORSEC_E_NO_SUITABLE_CSP EMAKEHR(0x1414) -#define CORSEC_E_INVALID_ATTR EMAKEHR(0x1415) #define CORSEC_E_POLICY_EXCEPTION EMAKEHR(0x1416) #define CORSEC_E_MIN_GRANT_FAIL EMAKEHR(0x1417) #define CORSEC_E_NO_EXEC_PERM EMAKEHR(0x1418) #define CORSEC_E_XMLSYNTAX EMAKEHR(0x1419) #define CORSEC_E_INVALID_STRONGNAME EMAKEHR(0x141a) #define CORSEC_E_MISSING_STRONGNAME EMAKEHR(0x141b) -#define CORSEC_E_CONTAINER_NOT_FOUND EMAKEHR(0x141c) #define CORSEC_E_INVALID_IMAGE_FORMAT EMAKEHR(0x141d) #define CORSEC_E_INVALID_PUBLICKEY EMAKEHR(0x141e) #define CORSEC_E_SIGNATURE_MISMATCH EMAKEHR(0x1420) -#define SN_E_PUBLICKEY_MISMATCH EMAKEHR(0x1421) -#define CORSEC_E_INVALID_SIGNATUREKEY EMAKEHR(0x1422) -#define CORSEC_E_INVALID_COUNTERSIGNATURE EMAKEHR(0x1423) #define CORSEC_E_CRYPTO EMAKEHR(0x1430) #define CORSEC_E_CRYPTO_UNEX_OPER EMAKEHR(0x1431) -#define CORSECATTR_E_BAD_ATTRIBUTE EMAKEHR(0x143a) -#define CORSECATTR_E_MISSING_CONSTRUCTOR EMAKEHR(0x143b) -#define CORSECATTR_E_FAILED_TO_CREATE_PERM EMAKEHR(0x143c) -#define CORSECATTR_E_BAD_ACTION_ASM EMAKEHR(0x143d) -#define CORSECATTR_E_BAD_ACTION_OTHER EMAKEHR(0x143e) -#define CORSECATTR_E_BAD_PARENT EMAKEHR(0x143f) -#define CORSECATTR_E_TRUNCATED EMAKEHR(0x1440) -#define CORSECATTR_E_BAD_VERSION EMAKEHR(0x1441) #define CORSECATTR_E_BAD_ACTION EMAKEHR(0x1442) -#define CORSECATTR_E_NO_SELF_REF EMAKEHR(0x1443) -#define CORSECATTR_E_BAD_NONCAS EMAKEHR(0x1444) -#define CORSECATTR_E_ASSEMBLY_LOAD_FAILED EMAKEHR(0x1445) -#define CORSECATTR_E_ASSEMBLY_LOAD_FAILED_EX EMAKEHR(0x1446) -#define CORSECATTR_E_TYPE_LOAD_FAILED EMAKEHR(0x1447) -#define CORSECATTR_E_TYPE_LOAD_FAILED_EX EMAKEHR(0x1448) -#define CORSECATTR_E_ABSTRACT EMAKEHR(0x1449) -#define CORSECATTR_E_UNSUPPORTED_TYPE EMAKEHR(0x144a) -#define CORSECATTR_E_UNSUPPORTED_ENUM_TYPE EMAKEHR(0x144b) -#define CORSECATTR_E_NO_FIELD EMAKEHR(0x144c) -#define CORSECATTR_E_NO_PROPERTY EMAKEHR(0x144d) -#define CORSECATTR_E_EXCEPTION EMAKEHR(0x144e) -#define CORSECATTR_E_EXCEPTION_HR EMAKEHR(0x144f) -#define ISS_E_ISOSTORE_START EMAKEHR(0x1450) -#define ISS_E_ISOSTORE EMAKEHR(0x1450) -#define ISS_E_OPEN_STORE_FILE EMAKEHR(0x1460) -#define ISS_E_OPEN_FILE_MAPPING EMAKEHR(0x1461) -#define ISS_E_MAP_VIEW_OF_FILE EMAKEHR(0x1462) -#define ISS_E_GET_FILE_SIZE EMAKEHR(0x1463) -#define ISS_E_CREATE_MUTEX EMAKEHR(0x1464) -#define ISS_E_LOCK_FAILED EMAKEHR(0x1465) -#define ISS_E_FILE_WRITE EMAKEHR(0x1466) -#define ISS_E_SET_FILE_POINTER EMAKEHR(0x1467) -#define ISS_E_CREATE_DIR EMAKEHR(0x1468) -#define ISS_E_STORE_NOT_OPEN EMAKEHR(0x1469) -#define ISS_E_CORRUPTED_STORE_FILE EMAKEHR(0x1480) -#define ISS_E_STORE_VERSION EMAKEHR(0x1481) -#define ISS_E_FILE_NOT_MAPPED EMAKEHR(0x1482) -#define ISS_E_BLOCK_SIZE_TOO_SMALL EMAKEHR(0x1483) -#define ISS_E_ALLOC_TOO_LARGE EMAKEHR(0x1484) -#define ISS_E_USAGE_WILL_EXCEED_QUOTA EMAKEHR(0x1485) -#define ISS_E_TABLE_ROW_NOT_FOUND EMAKEHR(0x1486) -#define ISS_E_DEPRECATE EMAKEHR(0x14a0) -#define ISS_E_CALLER EMAKEHR(0x14a1) -#define ISS_E_PATH_LENGTH EMAKEHR(0x14a2) -#define ISS_E_MACHINE EMAKEHR(0x14a3) -#define ISS_E_MACHINE_DACL EMAKEHR(0x14a4) -#define ISS_E_ISOSTORE_END EMAKEHR(0x14ff) #define COR_E_EXCEPTION EMAKEHR(0x1500) #define COR_E_SYSTEM EMAKEHR(0x1501) #define COR_E_ARGUMENTOUTOFRANGE EMAKEHR(0x1502) @@ -718,11 +259,8 @@ #define COR_E_INDEXOUTOFRANGE EMAKEHR(0x1508) #define COR_E_INVALIDOPERATION EMAKEHR(0x1509) #define COR_E_SECURITY EMAKEHR(0x150a) -#define COR_E_REMOTING EMAKEHR(0x150b) #define COR_E_SERIALIZATION EMAKEHR(0x150c) #define COR_E_VERIFICATION EMAKEHR(0x150d) -#define COR_E_SERVER EMAKEHR(0x150e) -#define COR_E_SERVICEDCOMPONENT EMAKEHR(0x150f) #define COR_E_METHODACCESS EMAKEHR(0x1510) #define COR_E_MISSINGFIELD EMAKEHR(0x1511) #define COR_E_MISSINGMEMBER EMAKEHR(0x1512) @@ -760,12 +298,10 @@ #define COR_E_OPERATIONCANCELED EMAKEHR(0x153b) #define COR_E_INSUFFICIENTMEMORY EMAKEHR(0x153d) #define COR_E_RUNTIMEWRAPPED EMAKEHR(0x153e) -#define COR_E_DEVICESNOTSUPPORTED EMAKEHR(0x1540) #define COR_E_DATAMISALIGNED EMAKEHR(0x1541) #define COR_E_CODECONTRACTFAILED EMAKEHR(0x1542) #define COR_E_TYPEACCESS EMAKEHR(0x1543) #define COR_E_ACCESSING_CCW EMAKEHR(0x1544) -#define COR_E_MAXMETHODSIZE EMAKEHR(0x1545) #define COR_E_KEYNOTFOUND EMAKEHR(0x1577) #define COR_E_INSUFFICIENTEXECUTIONSTACK EMAKEHR(0x1578) #define COR_E_APPLICATION EMAKEHR(0x1600) @@ -781,347 +317,16 @@ #define COR_E_HOSTPROTECTION EMAKEHR(0x1640) #define COR_E_ILLEGAL_REENTRANCY EMAKEHR(0x1641) #define CLR_E_SHIM_RUNTIMELOAD EMAKEHR(0x1700) -#define CLR_E_SHIM_RUNTIMEEXPORT EMAKEHR(0x1701) -#define CLR_E_SHIM_INSTALLROOT EMAKEHR(0x1702) -#define CLR_E_SHIM_INSTALLCOMP EMAKEHR(0x1703) #define CLR_E_SHIM_LEGACYRUNTIMEALREADYBOUND EMAKEHR(0x1704) -#define CLR_E_SHIM_SHUTDOWNINPROGRESS EMAKEHR(0x1705) -#define VER_E_HRESULT EMAKEHR(0x1801) -#define VER_E_OFFSET EMAKEHR(0x1802) -#define VER_E_OPCODE EMAKEHR(0x1803) -#define VER_E_OPERAND EMAKEHR(0x1804) -#define VER_E_TOKEN EMAKEHR(0x1805) -#define VER_E_EXCEPT EMAKEHR(0x1806) -#define VER_E_STACK_SLOT EMAKEHR(0x1807) -#define VER_E_LOC EMAKEHR(0x1808) -#define VER_E_ARG EMAKEHR(0x1809) -#define VER_E_FOUND EMAKEHR(0x180a) -#define VER_E_EXPECTED EMAKEHR(0x180b) -#define VER_E_LOC_BYNAME EMAKEHR(0x180c) -#define VER_E_UNKNOWN_OPCODE EMAKEHR(0x1810) -#define VER_E_SIG_CALLCONV EMAKEHR(0x1811) -#define VER_E_SIG_ELEMTYPE EMAKEHR(0x1812) -#define VER_E_RET_SIG EMAKEHR(0x1814) #define VER_E_FIELD_SIG EMAKEHR(0x1815) -#define VER_E_OPEN_DLGT_PROT_ACC EMAKEHR(0x1816) -#define VER_E_INTERNAL EMAKEHR(0x1818) -#define VER_E_STACK_TOO_LARGE EMAKEHR(0x1819) -#define VER_E_ARRAY_NAME_LONG EMAKEHR(0x181a) -#define VER_E_FALLTHRU EMAKEHR(0x1820) -#define VER_E_TRY_GTEQ_END EMAKEHR(0x1821) -#define VER_E_TRYEND_GT_CS EMAKEHR(0x1822) -#define VER_E_HND_GTEQ_END EMAKEHR(0x1823) -#define VER_E_HNDEND_GT_CS EMAKEHR(0x1824) -#define VER_E_FLT_GTEQ_CS EMAKEHR(0x1825) -#define VER_E_TRY_START EMAKEHR(0x1826) -#define VER_E_HND_START EMAKEHR(0x1827) -#define VER_E_FLT_START EMAKEHR(0x1828) -#define VER_E_TRY_OVERLAP EMAKEHR(0x1829) -#define VER_E_TRY_EQ_HND_FIL EMAKEHR(0x182a) -#define VER_E_TRY_SHARE_FIN_FAL EMAKEHR(0x182b) -#define VER_E_HND_OVERLAP EMAKEHR(0x182c) -#define VER_E_HND_EQ EMAKEHR(0x182d) -#define VER_E_FIL_OVERLAP EMAKEHR(0x182e) -#define VER_E_FIL_EQ EMAKEHR(0x182f) -#define VER_E_FIL_CONT_TRY EMAKEHR(0x1830) -#define VER_E_FIL_CONT_HND EMAKEHR(0x1831) -#define VER_E_FIL_CONT_FIL EMAKEHR(0x1832) -#define VER_E_FIL_GTEQ_CS EMAKEHR(0x1833) -#define VER_E_FIL_START EMAKEHR(0x1834) -#define VER_E_FALLTHRU_EXCEP EMAKEHR(0x1835) -#define VER_E_FALLTHRU_INTO_HND EMAKEHR(0x1836) -#define VER_E_FALLTHRU_INTO_FIL EMAKEHR(0x1837) -#define VER_E_LEAVE EMAKEHR(0x1838) -#define VER_E_RETHROW EMAKEHR(0x1839) -#define VER_E_ENDFINALLY EMAKEHR(0x183a) -#define VER_E_ENDFILTER EMAKEHR(0x183b) -#define VER_E_ENDFILTER_MISSING EMAKEHR(0x183c) -#define VER_E_BR_INTO_TRY EMAKEHR(0x183d) -#define VER_E_BR_INTO_HND EMAKEHR(0x183e) -#define VER_E_BR_INTO_FIL EMAKEHR(0x183f) -#define VER_E_BR_OUTOF_TRY EMAKEHR(0x1840) -#define VER_E_BR_OUTOF_HND EMAKEHR(0x1841) -#define VER_E_BR_OUTOF_FIL EMAKEHR(0x1842) -#define VER_E_BR_OUTOF_FIN EMAKEHR(0x1843) -#define VER_E_RET_FROM_TRY EMAKEHR(0x1844) -#define VER_E_RET_FROM_HND EMAKEHR(0x1845) -#define VER_E_RET_FROM_FIL EMAKEHR(0x1846) -#define VER_E_BAD_JMP_TARGET EMAKEHR(0x1847) -#define VER_E_PATH_LOC EMAKEHR(0x1848) -#define VER_E_PATH_THIS EMAKEHR(0x1849) -#define VER_E_PATH_STACK EMAKEHR(0x184a) -#define VER_E_PATH_STACK_DEPTH EMAKEHR(0x184b) -#define VER_E_THIS EMAKEHR(0x184c) -#define VER_E_THIS_UNINIT_EXCEP EMAKEHR(0x184d) -#define VER_E_THIS_UNINIT_STORE EMAKEHR(0x184e) -#define VER_E_THIS_UNINIT_RET EMAKEHR(0x184f) -#define VER_E_THIS_UNINIT_V_RET EMAKEHR(0x1850) -#define VER_E_THIS_UNINIT_BR EMAKEHR(0x1851) -#define VER_E_LDFTN_CTOR EMAKEHR(0x1852) -#define VER_E_STACK_NOT_EQ EMAKEHR(0x1853) -#define VER_E_STACK_UNEXPECTED EMAKEHR(0x1854) -#define VER_E_STACK_EXCEPTION EMAKEHR(0x1855) -#define VER_E_STACK_OVERFLOW EMAKEHR(0x1856) -#define VER_E_STACK_UNDERFLOW EMAKEHR(0x1857) -#define VER_E_STACK_EMPTY EMAKEHR(0x1858) -#define VER_E_STACK_UNINIT EMAKEHR(0x1859) -#define VER_E_STACK_I_I4_I8 EMAKEHR(0x185a) -#define VER_E_STACK_R_R4_R8 EMAKEHR(0x185b) -#define VER_E_STACK_NO_R_I8 EMAKEHR(0x185c) -#define VER_E_STACK_NUMERIC EMAKEHR(0x185d) -#define VER_E_STACK_OBJREF EMAKEHR(0x185e) -#define VER_E_STACK_P_OBJREF EMAKEHR(0x185f) -#define VER_E_STACK_BYREF EMAKEHR(0x1860) -#define VER_E_STACK_METHOD EMAKEHR(0x1861) -#define VER_E_STACK_ARRAY_SD EMAKEHR(0x1862) -#define VER_E_STACK_VALCLASS EMAKEHR(0x1863) -#define VER_E_STACK_P_VALCLASS EMAKEHR(0x1864) -#define VER_E_STACK_NO_VALCLASS EMAKEHR(0x1865) -#define VER_E_LOC_DEAD EMAKEHR(0x1866) -#define VER_E_LOC_NUM EMAKEHR(0x1867) -#define VER_E_ARG_NUM EMAKEHR(0x1868) -#define VER_E_TOKEN_RESOLVE EMAKEHR(0x1869) -#define VER_E_TOKEN_TYPE EMAKEHR(0x186a) -#define VER_E_TOKEN_TYPE_MEMBER EMAKEHR(0x186b) -#define VER_E_TOKEN_TYPE_FIELD EMAKEHR(0x186c) -#define VER_E_TOKEN_TYPE_SIG EMAKEHR(0x186d) -#define VER_E_UNVERIFIABLE EMAKEHR(0x186e) -#define VER_E_LDSTR_OPERAND EMAKEHR(0x186f) -#define VER_E_RET_PTR_TO_STACK EMAKEHR(0x1870) -#define VER_E_RET_VOID EMAKEHR(0x1871) -#define VER_E_RET_MISSING EMAKEHR(0x1872) -#define VER_E_RET_EMPTY EMAKEHR(0x1873) -#define VER_E_RET_UNINIT EMAKEHR(0x1874) -#define VER_E_ARRAY_ACCESS EMAKEHR(0x1875) -#define VER_E_ARRAY_V_STORE EMAKEHR(0x1876) -#define VER_E_ARRAY_SD EMAKEHR(0x1877) -#define VER_E_ARRAY_SD_PTR EMAKEHR(0x1878) -#define VER_E_ARRAY_FIELD EMAKEHR(0x1879) -#define VER_E_ARGLIST EMAKEHR(0x187a) -#define VER_E_VALCLASS EMAKEHR(0x187b) -#define VER_E_METHOD_ACCESS EMAKEHR(0x187c) -#define VER_E_FIELD_ACCESS EMAKEHR(0x187d) -#define VER_E_DEAD EMAKEHR(0x187e) -#define VER_E_FIELD_STATIC EMAKEHR(0x187f) -#define VER_E_FIELD_NO_STATIC EMAKEHR(0x1880) -#define VER_E_ADDR EMAKEHR(0x1881) -#define VER_E_ADDR_BYREF EMAKEHR(0x1882) -#define VER_E_ADDR_LITERAL EMAKEHR(0x1883) -#define VER_E_INITONLY EMAKEHR(0x1884) -#define VER_E_THROW EMAKEHR(0x1885) -#define VER_E_CALLVIRT_VALCLASS EMAKEHR(0x1886) -#define VER_E_CALL_SIG EMAKEHR(0x1887) -#define VER_E_CALL_STATIC EMAKEHR(0x1888) -#define VER_E_CTOR EMAKEHR(0x1889) -#define VER_E_CTOR_VIRT EMAKEHR(0x188a) -#define VER_E_CTOR_OR_SUPER EMAKEHR(0x188b) -#define VER_E_CTOR_MUL_INIT EMAKEHR(0x188c) -#define VER_E_SIG EMAKEHR(0x188d) -#define VER_E_SIG_ARRAY EMAKEHR(0x188e) -#define VER_E_SIG_ARRAY_PTR EMAKEHR(0x188f) -#define VER_E_SIG_ARRAY_BYREF EMAKEHR(0x1890) -#define VER_E_SIG_ELEM_PTR EMAKEHR(0x1891) -#define VER_E_SIG_VARARG EMAKEHR(0x1892) -#define VER_E_SIG_VOID EMAKEHR(0x1893) -#define VER_E_SIG_BYREF_BYREF EMAKEHR(0x1894) -#define VER_E_CODE_SIZE_ZERO EMAKEHR(0x1896) -#define VER_E_BAD_VARARG EMAKEHR(0x1897) -#define VER_E_TAIL_CALL EMAKEHR(0x1898) -#define VER_E_TAIL_BYREF EMAKEHR(0x1899) -#define VER_E_TAIL_RET EMAKEHR(0x189a) -#define VER_E_TAIL_RET_VOID EMAKEHR(0x189b) -#define VER_E_TAIL_RET_TYPE EMAKEHR(0x189c) -#define VER_E_TAIL_STACK_EMPTY EMAKEHR(0x189d) -#define VER_E_METHOD_END EMAKEHR(0x189e) -#define VER_E_BAD_BRANCH EMAKEHR(0x189f) -#define VER_E_FIN_OVERLAP EMAKEHR(0x18a0) -#define VER_E_LEXICAL_NESTING EMAKEHR(0x18a1) -#define VER_E_VOLATILE EMAKEHR(0x18a2) -#define VER_E_UNALIGNED EMAKEHR(0x18a3) -#define VER_E_INNERMOST_FIRST EMAKEHR(0x18a4) -#define VER_E_CALLI_VIRTUAL EMAKEHR(0x18a5) -#define VER_E_CALL_ABSTRACT EMAKEHR(0x18a6) -#define VER_E_STACK_UNEXP_ARRAY EMAKEHR(0x18a7) -#define VER_E_NOT_IN_GC_HEAP EMAKEHR(0x18a8) -#define VER_E_TRY_N_EMPTY_STACK EMAKEHR(0x18a9) -#define VER_E_DLGT_CTOR EMAKEHR(0x18aa) -#define VER_E_DLGT_BB EMAKEHR(0x18ab) -#define VER_E_DLGT_PATTERN EMAKEHR(0x18ac) -#define VER_E_DLGT_LDFTN EMAKEHR(0x18ad) -#define VER_E_FTN_ABSTRACT EMAKEHR(0x18ae) -#define VER_E_SIG_C_VC EMAKEHR(0x18af) -#define VER_E_SIG_VC_C EMAKEHR(0x18b0) -#define VER_E_BOX_PTR_TO_STACK EMAKEHR(0x18b1) -#define VER_E_SIG_BYREF_TB_AH EMAKEHR(0x18b2) -#define VER_E_SIG_ARRAY_TB_AH EMAKEHR(0x18b3) -#define VER_E_ENDFILTER_STACK EMAKEHR(0x18b4) -#define VER_E_DLGT_SIG_I EMAKEHR(0x18b5) -#define VER_E_DLGT_SIG_O EMAKEHR(0x18b6) -#define VER_E_RA_PTR_TO_STACK EMAKEHR(0x18b7) -#define VER_E_CATCH_VALUE_TYPE EMAKEHR(0x18b8) -#define VER_E_CATCH_BYREF EMAKEHR(0x18b9) -#define VER_E_FIL_PRECEED_HND EMAKEHR(0x18ba) -#define VER_E_LDVIRTFTN_STATIC EMAKEHR(0x18bb) -#define VER_E_CALLVIRT_STATIC EMAKEHR(0x18bc) -#define VER_E_INITLOCALS EMAKEHR(0x18bd) -#define VER_E_BR_TO_EXCEPTION EMAKEHR(0x18be) -#define VER_E_CALL_CTOR EMAKEHR(0x18bf) -#define VER_E_VALCLASS_OBJREF_VAR EMAKEHR(0x18c0) -#define VER_E_STACK_P_VALCLASS_OBJREF_VAR EMAKEHR(0x18c1) -#define VER_E_SIG_VAR_PARAM EMAKEHR(0x18c2) -#define VER_E_SIG_MVAR_PARAM EMAKEHR(0x18c3) -#define VER_E_SIG_VAR_ARG EMAKEHR(0x18c4) -#define VER_E_SIG_MVAR_ARG EMAKEHR(0x18c5) -#define VER_E_SIG_GENERICINST EMAKEHR(0x18c6) -#define VER_E_SIG_METHOD_INST EMAKEHR(0x18c7) -#define VER_E_SIG_METHOD_PARENT_INST EMAKEHR(0x18c8) -#define VER_E_SIG_FIELD_PARENT_INST EMAKEHR(0x18c9) -#define VER_E_CALLCONV_NOT_GENERICINST EMAKEHR(0x18ca) -#define VER_E_TOKEN_BAD_METHOD_SPEC EMAKEHR(0x18cb) -#define VER_E_BAD_READONLY_PREFIX EMAKEHR(0x18cc) -#define VER_E_BAD_CONSTRAINED_PREFIX EMAKEHR(0x18cd) #define VER_E_CIRCULAR_VAR_CONSTRAINTS EMAKEHR(0x18ce) #define VER_E_CIRCULAR_MVAR_CONSTRAINTS EMAKEHR(0x18cf) -#define VER_E_UNSATISFIED_METHOD_INST EMAKEHR(0x18d0) -#define VER_E_UNSATISFIED_METHOD_PARENT_INST EMAKEHR(0x18d1) -#define VER_E_UNSATISFIED_FIELD_PARENT_INST EMAKEHR(0x18d2) -#define VER_E_UNSATISFIED_BOX_OPERAND EMAKEHR(0x18d3) -#define VER_E_CONSTRAINED_CALL_WITH_NON_BYREF_THIS EMAKEHR(0x18d4) -#define VER_E_CONSTRAINED_OF_NON_VARIABLE_TYPE EMAKEHR(0x18d5) -#define VER_E_READONLY_UNEXPECTED_CALLEE EMAKEHR(0x18d6) -#define VER_E_READONLY_ILLEGAL_WRITE EMAKEHR(0x18d7) -#define VER_E_READONLY_IN_MKREFANY EMAKEHR(0x18d8) -#define VER_E_UNALIGNED_ALIGNMENT EMAKEHR(0x18d9) -#define VER_E_TAILCALL_INSIDE_EH EMAKEHR(0x18da) -#define VER_E_BACKWARD_BRANCH EMAKEHR(0x18db) -#define VER_E_CALL_TO_VTYPE_BASE EMAKEHR(0x18dc) -#define VER_E_NEWOBJ_OF_ABSTRACT_CLASS EMAKEHR(0x18dd) -#define VER_E_UNMANAGED_POINTER EMAKEHR(0x18de) -#define VER_E_LDFTN_NON_FINAL_VIRTUAL EMAKEHR(0x18df) -#define VER_E_FIELD_OVERLAP EMAKEHR(0x18e0) -#define VER_E_THIS_MISMATCH EMAKEHR(0x18e1) -#define VER_E_STACK_I_I4 EMAKEHR(0x18e2) -#define VER_E_BAD_PE EMAKEHR(0x18f0) -#define VER_E_BAD_MD EMAKEHR(0x18f1) -#define VER_E_BAD_APPDOMAIN EMAKEHR(0x18f2) -#define VER_E_TYPELOAD EMAKEHR(0x18f3) -#define VER_E_PE_LOAD EMAKEHR(0x18f4) -#define VER_E_WRITE_RVA_STATIC EMAKEHR(0x18f5) -#define VER_E_INITIALIZE_ARRAY_MISSING_TOKEN EMAKEHR(0x18f6) -#define COR_E_SqlException EMAKEHR(0x1904) #define COR_E_Data EMAKEHR(0x1920) -#define COR_E_DataDeletedRowInaccessible EMAKEHR(0x1921) -#define COR_E_DataDuplicateName EMAKEHR(0x1922) -#define COR_E_DataInRowChangingEvent EMAKEHR(0x1923) -#define COR_E_DataInvalidConstraint EMAKEHR(0x1924) -#define COR_E_DataMissingPrimaryKey EMAKEHR(0x1925) -#define COR_E_DataNoNullAllowed EMAKEHR(0x1926) -#define COR_E_DataReadOnly EMAKEHR(0x1927) -#define COR_E_DataRowNotInTable EMAKEHR(0x1928) -#define COR_E_DataVersionNotFound EMAKEHR(0x1929) -#define COR_E_DataConstraint EMAKEHR(0x192a) -#define COR_E_StrongTyping EMAKEHR(0x192b) -#define COR_E_SqlType EMAKEHR(0x1930) -#define COR_E_SqlNullValue EMAKEHR(0x1931) -#define COR_E_SqlTruncate EMAKEHR(0x1932) -#define COR_E_AdapterMapping EMAKEHR(0x1933) -#define COR_E_DataAdapter EMAKEHR(0x1934) -#define COR_E_DBConcurrency EMAKEHR(0x1935) -#define COR_E_OperationAborted EMAKEHR(0x1936) -#define COR_E_InvalidUdt EMAKEHR(0x1937) -#define COR_E_OdbcException EMAKEHR(0x1937) -#define COR_E_OracleException EMAKEHR(0x1938) -#define COR_E_Xml EMAKEHR(0x1940) -#define COR_E_XmlSchema EMAKEHR(0x1941) -#define COR_E_XmlXslt EMAKEHR(0x1942) -#define COR_E_XmlXPath EMAKEHR(0x1943) -#define COR_E_XmlQuery EMAKEHR(0x1944) -#define VLDTR_E_IFACE_NOTIFACE EMAKEHR(0x1b00) -#define VLDTR_E_FD_RVAHASNORVA EMAKEHR(0x1b01) -#define VLDTR_E_FD_RVAHASZERORVA EMAKEHR(0x1b02) -#define VLDTR_E_MD_RVAANDIMPLMAP EMAKEHR(0x1b03) -#define VLDTR_E_TD_EXTRAFLAGS EMAKEHR(0x1b04) -#define VLDTR_E_TD_EXTENDSITSELF EMAKEHR(0x1b05) -#define VLDTR_E_TD_SYSVTNOTEXTOBJ EMAKEHR(0x1b06) -#define VLDTR_E_TD_EXTTYPESPEC EMAKEHR(0x1b07) -#define VLDTR_E_TD_VTNOSIZE EMAKEHR(0x1b09) -#define VLDTR_E_TD_IFACESEALED EMAKEHR(0x1b0a) -#define VLDTR_E_NC_BADNESTED EMAKEHR(0x1b0b) -#define VLDTR_E_NC_BADENCLOSER EMAKEHR(0x1b0c) -#define VLDTR_E_NC_DUP EMAKEHR(0x1b0d) -#define VLDTR_E_NC_DUPENCLOSER EMAKEHR(0x1b0e) -#define VLDTR_E_FRVA_ZERORVA EMAKEHR(0x1b0f) -#define VLDTR_E_FRVA_BADFIELD EMAKEHR(0x1b10) -#define VLDTR_E_FRVA_DUPRVA EMAKEHR(0x1b11) -#define VLDTR_E_FRVA_DUPFIELD EMAKEHR(0x1b12) -#define VLDTR_E_EP_BADTOKEN EMAKEHR(0x1b13) -#define VLDTR_E_EP_INSTANCE EMAKEHR(0x1b14) -#define VLDTR_E_TD_ENUMFLDBADTYPE EMAKEHR(0x1b15) -#define VLDTR_E_MD_BADRVA EMAKEHR(0x1b16) -#define VLDTR_E_FD_LITERALNODEFAULT EMAKEHR(0x1b17) -#define VLDTR_E_IFACE_METHNOTIMPL EMAKEHR(0x1b18) -#define VLDTR_E_CA_BADPARENT EMAKEHR(0x1b19) -#define VLDTR_E_CA_BADTYPE EMAKEHR(0x1b1a) -#define VLDTR_E_CA_NOTCTOR EMAKEHR(0x1b1b) -#define VLDTR_E_CA_BADSIG EMAKEHR(0x1b1c) -#define VLDTR_E_CA_NOSIG EMAKEHR(0x1b1d) -#define VLDTR_E_CA_BADPROLOG EMAKEHR(0x1b1e) -#define VLDTR_E_MD_BADLOCALSIGTOK EMAKEHR(0x1b1f) -#define VLDTR_E_MD_BADHEADER EMAKEHR(0x1b20) -#define VLDTR_E_EP_TOOMANYARGS EMAKEHR(0x1b21) -#define VLDTR_E_EP_BADRET EMAKEHR(0x1b22) -#define VLDTR_E_EP_BADARG EMAKEHR(0x1b23) #define VLDTR_E_SIG_BADVOID EMAKEHR(0x1b24) -#define VLDTR_E_IFACE_METHMULTIMPL EMAKEHR(0x1b25) -#define VLDTR_E_GP_NAMENULL EMAKEHR(0x1b26) -#define VLDTR_E_GP_OWNERNIL EMAKEHR(0x1b27) -#define VLDTR_E_GP_DUPNAME EMAKEHR(0x1b28) -#define VLDTR_E_GP_DUPNUMBER EMAKEHR(0x1b29) -#define VLDTR_E_GP_NONSEQ_BY_OWNER EMAKEHR(0x1b2a) -#define VLDTR_E_GP_NONSEQ_BY_NUMBER EMAKEHR(0x1b2b) -#define VLDTR_E_GP_UNEXPECTED_OWNER_FOR_VARIANT_VAR EMAKEHR(0x1b2c) #define VLDTR_E_GP_ILLEGAL_VARIANT_MVAR EMAKEHR(0x1b2d) -#define VLDTR_E_GP_ILLEGAL_VARIANCE_FLAGS EMAKEHR(0x1b2e) -#define VLDTR_E_GP_REFANDVALUETYPE EMAKEHR(0x1b2f) -#define VLDTR_E_GPC_OWNERNIL EMAKEHR(0x1b30) -#define VLDTR_E_GPC_DUP EMAKEHR(0x1b31) -#define VLDTR_E_GPC_NONCONTIGUOUS EMAKEHR(0x1b32) -#define VLDTR_E_MS_METHODNIL EMAKEHR(0x1b33) -#define VLDTR_E_MS_DUP EMAKEHR(0x1b34) -#define VLDTR_E_MS_BADCALLINGCONV EMAKEHR(0x1b35) -#define VLDTR_E_MS_MISSARITY EMAKEHR(0x1b36) -#define VLDTR_E_MS_MISSARG EMAKEHR(0x1b37) -#define VLDTR_E_MS_ARITYMISMATCH EMAKEHR(0x1b38) -#define VLDTR_E_MS_METHODNOTGENERIC EMAKEHR(0x1b39) -#define VLDTR_E_SIG_MISSARITY EMAKEHR(0x1b3a) -#define VLDTR_E_SIG_ARITYMISMATCH EMAKEHR(0x1b3b) -#define VLDTR_E_MD_GENERIC_CCTOR EMAKEHR(0x1b3c) -#define VLDTR_E_MD_GENERIC_CTOR EMAKEHR(0x1b3d) -#define VLDTR_E_MD_GENERIC_IMPORT EMAKEHR(0x1b3e) -#define VLDTR_E_MD_GENERIC_BADCALLCONV EMAKEHR(0x1b3f) -#define VLDTR_E_EP_GENERIC_METHOD EMAKEHR(0x1b40) -#define VLDTR_E_MD_MISSARITY EMAKEHR(0x1b41) -#define VLDTR_E_MD_ARITYZERO EMAKEHR(0x1b42) -#define VLDTR_E_SIG_ARITYZERO EMAKEHR(0x1b43) -#define VLDTR_E_MS_ARITYZERO EMAKEHR(0x1b44) -#define VLDTR_E_MD_GPMISMATCH EMAKEHR(0x1b45) -#define VLDTR_E_EP_GENERIC_TYPE EMAKEHR(0x1b46) -#define VLDTR_E_MI_DECLNOTGENERIC EMAKEHR(0x1b47) -#define VLDTR_E_MI_IMPLNOTGENERIC EMAKEHR(0x1b48) -#define VLDTR_E_MI_ARITYMISMATCH EMAKEHR(0x1b49) -#define VLDTR_E_TD_EXTBADTYPESPEC EMAKEHR(0x1b4a) -#define VLDTR_E_SIG_BYREFINST EMAKEHR(0x1b4b) -#define VLDTR_E_MS_BYREFINST EMAKEHR(0x1b4c) -#define VLDTR_E_TS_EMPTY EMAKEHR(0x1b4d) -#define VLDTR_E_TS_HASSENTINALS EMAKEHR(0x1b4e) -#define VLDTR_E_TD_GENERICHASEXPLAYOUT EMAKEHR(0x1b4f) -#define VLDTR_E_SIG_BADTOKTYPE EMAKEHR(0x1b50) -#define VLDTR_E_IFACE_METHNOTIMPLTHISMOD EMAKEHR(0x1b51) -#define TLBX_E_CIRCULAR_EXPORT2 EMAKEHR(0x1b52) #define CORDBG_E_THREAD_NOT_SCHEDULED EMAKEHR(0x1c00) #define CORDBG_E_HANDLE_HAS_BEEN_DISPOSED EMAKEHR(0x1c01) #define CORDBG_E_NONINTERCEPTABLE_EXCEPTION EMAKEHR(0x1c02) -#define CORDBG_E_CANT_UNWIND_ABOVE_CALLBACK EMAKEHR(0x1c03) #define CORDBG_E_INTERCEPT_FRAME_ALREADY_SET EMAKEHR(0x1c04) #define CORDBG_E_NO_NATIVE_PATCH_AT_ADDR EMAKEHR(0x1c05) #define CORDBG_E_MUST_BE_INTEROP_DEBUGGING EMAKEHR(0x1c06) @@ -1129,11 +334,8 @@ #define CORDBG_E_TIMEOUT EMAKEHR(0x1c08) #define CORDBG_E_CANT_CALL_ON_THIS_THREAD EMAKEHR(0x1c09) #define CORDBG_E_ENC_INFOLESS_METHOD EMAKEHR(0x1c0a) -#define CORDBG_E_ENC_NESTED_HANLDERS EMAKEHR(0x1c0b) #define CORDBG_E_ENC_IN_FUNCLET EMAKEHR(0x1c0c) -#define CORDBG_E_ENC_LOCALLOC EMAKEHR(0x1c0d) #define CORDBG_E_ENC_EDIT_NOT_SUPPORTED EMAKEHR(0x1c0e) -#define CORDBG_E_FEABORT_DELAYED_UNTIL_THREAD_RESUMED EMAKEHR(0x1c0f) #define CORDBG_E_NOTREADY EMAKEHR(0x1c10) #define CORDBG_E_CANNOT_RESOLVE_ASSEMBLY EMAKEHR(0x1c11) #define CORDBG_E_MUST_BE_IN_LOAD_MODULE EMAKEHR(0x1c12) @@ -1151,7 +353,6 @@ #define CORDBG_E_ILLEGAL_IN_PROLOG EMAKEHR(0x1c24) #define CORDBG_E_ILLEGAL_IN_NATIVE_CODE EMAKEHR(0x1c25) #define CORDBG_E_ILLEGAL_IN_OPTIMIZED_CODE EMAKEHR(0x1c26) -#define CORDBG_E_MINIDUMP_UNSUPPORTED EMAKEHR(0x1c27) #define CORDBG_E_APPDOMAIN_MISMATCH EMAKEHR(0x1c28) #define CORDBG_E_CONTEXT_UNVAILABLE EMAKEHR(0x1c29) #define CORDBG_E_UNCOMPATIBLE_PLATFORMS EMAKEHR(0x1c30) @@ -1167,12 +368,6 @@ #define CORDBG_E_MODULE_LOADED_FROM_DISK EMAKEHR(0x1c3a) #define CORDBG_E_SYMBOLS_NOT_AVAILABLE EMAKEHR(0x1c3b) #define CORDBG_E_DEBUG_COMPONENT_MISSING EMAKEHR(0x1c3c) -#define CORDBG_E_REMOTE_MISMATCHED_CERTS EMAKEHR(0x1c3d) -#define CORDBG_E_REMOTE_NETWORK_FAILURE EMAKEHR(0x1c3e) -#define CORDBG_E_REMOTE_NO_LISTENER EMAKEHR(0x1c3f) -#define CORDBG_E_REMOTE_UNKNOWN_TARGET EMAKEHR(0x1c40) -#define CORDBG_E_REMOTE_INVALID_CONFIG EMAKEHR(0x1c41) -#define CORDBG_E_REMOTE_MISMATCHED_PROTOCOLS EMAKEHR(0x1c42) #define CORDBG_E_LIBRARY_PROVIDER_ERROR EMAKEHR(0x1c43) #define CORDBG_E_NOT_CLR EMAKEHR(0x1c44) #define CORDBG_E_MISSING_DATA_TARGET_INTERFACE EMAKEHR(0x1c45) @@ -1187,37 +382,11 @@ #define CORDBG_E_UNSUPPORTED EMAKEHR(0x1c4e) #define CORDBG_E_MISSING_DEBUGGER_EXPORTS EMAKEHR(0x1c4f) #define CORDBG_E_DATA_TARGET_ERROR EMAKEHR(0x1c61) -#define CORDBG_E_CODE_HAS_NO_METADATA EMAKEHR(0x1c62) -#define CORDBG_E_CODE_UNRECOGNIZED EMAKEHR(0x1c63) #define CORDBG_E_NO_IMAGE_AVAILABLE EMAKEHR(0x1c64) -#define CORDBG_E_TYPE_NOT_FOUND EMAKEHR(0x1c65) -#define CORDBG_E_VTABLE_HAS_NO_METADATA EMAKEHR(0x1c66) -#define CORDBG_E_NO_GENERIC_INFO EMAKEHR(0x1c67) -#define PEFMT_E_NO_CONTENTS EMAKEHR(0x1d00) -#define PEFMT_E_NO_NTHEADERS EMAKEHR(0x1d01) +#define CORDBG_E_UNSUPPORTED_DELEGATE EMAKEHR(0x1c68) #define PEFMT_E_64BIT EMAKEHR(0x1d02) -#define PEFMT_E_NO_CORHEADER EMAKEHR(0x1d03) -#define PEFMT_E_NOT_ILONLY EMAKEHR(0x1d04) -#define PEFMT_E_IMPORT_DLLS EMAKEHR(0x1d05) -#define PEFMT_E_EXE_NOENTRYPOINT EMAKEHR(0x1d06) -#define PEFMT_E_BASE_RELOCS EMAKEHR(0x1d07) -#define PEFMT_E_ENTRYPOINT EMAKEHR(0x1d08) -#define PEFMT_E_ZERO_SIZEOFCODE EMAKEHR(0x1d09) -#define PEFMT_E_BAD_CORHEADER EMAKEHR(0x1d0a) #define PEFMT_E_32BIT EMAKEHR(0x1d0b) -#define CLR_OPTSVC_E_CONTROLLER_INTERRUPT EMAKEHR(0x1e00) -#define NGEN_FAILED_GET_DEPENDENCIES EMAKEHR(0x1f00) -#define NGEN_FAILED_NATIVE_IMAGE_DELETE EMAKEHR(0x1f01) -#define NGEN_E_TOO_MANY_INTERFACES EMAKEHR(0x1f02) -#define NGEN_E_OLDER_RUNTIME EMAKEHR(0x1f03) -#define NGEN_E_WORKER_UNEXPECTED_EXIT EMAKEHR(0x1f04) -#define NGEN_E_WORKER_UNEXPECTED_SYNC EMAKEHR(0x1f05) #define NGEN_E_SYS_ASM_NI_MISSING EMAKEHR(0x1f06) -#define NGEN_E_EXE_MACHINE_TYPE_MISMATCH EMAKEHR(0x1f07) -#define NGEN_E_ASSEMBLY_EXCLUSION_FILE_PARSE_ERROR EMAKEHR(0x1f08) -#define NGEN_E_HARDBOUND_DEPENDENCY_MISSING EMAKEHR(0x1f09) -#define NGEN_E_NOT_RUNNING_IN_EXPECTED_PACKAGE EMAKEHR(0x1f0a) -#define NGEN_E_FILE_NOT_ASSEMBLY EMAKEHR(0x1f0b) #define CLDB_E_INTERNALERROR EMAKEHR(0x1fff) #define CLR_E_BIND_ASSEMBLY_VERSION_TOO_LOW EMAKEHR(0x2000) #define CLR_E_BIND_ASSEMBLY_PUBLIC_KEY_MISMATCH EMAKEHR(0x2001) @@ -1229,13 +398,15 @@ #define CLR_E_BIND_NI_SECURITY_FAILURE EMAKEHR(0x2007) #define CLR_E_BIND_NI_DEP_IDENTITY_MISMATCH EMAKEHR(0x2008) #define CLR_E_GC_OOM EMAKEHR(0x2009) +#define CLR_E_GC_BAD_AFFINITY_CONFIG EMAKEHR(0x200a) +#define CLR_E_GC_BAD_AFFINITY_CONFIG_FORMAT EMAKEHR(0x200b) +#define CLR_E_CROSSGEN_NO_IBC_DATA_FOUND EMAKEHR(0x200c) #define COR_E_UNAUTHORIZEDACCESS E_ACCESSDENIED #define COR_E_ARGUMENT E_INVALIDARG #define COR_E_INVALIDCAST E_NOINTERFACE #define COR_E_OUTOFMEMORY E_OUTOFMEMORY #define COR_E_NULLREFERENCE E_POINTER #define COR_E_ARITHMETIC __HRESULT_FROM_WIN32(ERROR_ARITHMETIC_OVERFLOW) -#define COR_E_BAD_PATHNAME __HRESULT_FROM_WIN32(ERROR_BAD_PATHNAME) #define COR_E_PATHTOOLONG __HRESULT_FROM_WIN32(ERROR_FILENAME_EXCED_RANGE) #define COR_E_FILENOTFOUND __HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) #define COR_E_ENDOFSTREAM __HRESULT_FROM_WIN32(ERROR_HANDLE_EOF) diff --git a/lib/coreclr/src/pal/prebuilt/inc/corprof.h b/lib/coreclr/src/pal/prebuilt/inc/corprof.h index 5a4f8c37d663..2717067ed30f 100644 --- a/lib/coreclr/src/pal/prebuilt/inc/corprof.h +++ b/lib/coreclr/src/pal/prebuilt/inc/corprof.h @@ -1,11 +1,19 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. + /* this ALWAYS GENERATED file contains the definitions for the interfaces */ /* File created by MIDL compiler version 8.01.0622 */ +/* at Mon Jan 18 19:14:07 2038 + */ +/* Compiler settings for C:/git/coreclr/src/inc/corprof.idl: + Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ /* @@MIDL_FILE_HEADING( ) */ #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -41,154 +49,154 @@ #define __ICorProfilerCallback_FWD_DEFINED__ typedef interface ICorProfilerCallback ICorProfilerCallback; -#endif /* __ICorProfilerCallback_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback2_FWD_DEFINED__ #define __ICorProfilerCallback2_FWD_DEFINED__ typedef interface ICorProfilerCallback2 ICorProfilerCallback2; -#endif /* __ICorProfilerCallback2_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback2_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback3_FWD_DEFINED__ #define __ICorProfilerCallback3_FWD_DEFINED__ typedef interface ICorProfilerCallback3 ICorProfilerCallback3; -#endif /* __ICorProfilerCallback3_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback3_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback4_FWD_DEFINED__ #define __ICorProfilerCallback4_FWD_DEFINED__ typedef interface ICorProfilerCallback4 ICorProfilerCallback4; -#endif /* __ICorProfilerCallback4_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback4_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback5_FWD_DEFINED__ #define __ICorProfilerCallback5_FWD_DEFINED__ typedef interface ICorProfilerCallback5 ICorProfilerCallback5; -#endif /* __ICorProfilerCallback5_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback5_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback6_FWD_DEFINED__ #define __ICorProfilerCallback6_FWD_DEFINED__ typedef interface ICorProfilerCallback6 ICorProfilerCallback6; -#endif /* __ICorProfilerCallback6_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback6_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback7_FWD_DEFINED__ #define __ICorProfilerCallback7_FWD_DEFINED__ typedef interface ICorProfilerCallback7 ICorProfilerCallback7; -#endif /* __ICorProfilerCallback7_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback7_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback8_FWD_DEFINED__ #define __ICorProfilerCallback8_FWD_DEFINED__ typedef interface ICorProfilerCallback8 ICorProfilerCallback8; -#endif /* __ICorProfilerCallback8_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback8_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback9_FWD_DEFINED__ #define __ICorProfilerCallback9_FWD_DEFINED__ typedef interface ICorProfilerCallback9 ICorProfilerCallback9; -#endif /* __ICorProfilerCallback9_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback9_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo_FWD_DEFINED__ #define __ICorProfilerInfo_FWD_DEFINED__ typedef interface ICorProfilerInfo ICorProfilerInfo; -#endif /* __ICorProfilerInfo_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo2_FWD_DEFINED__ #define __ICorProfilerInfo2_FWD_DEFINED__ typedef interface ICorProfilerInfo2 ICorProfilerInfo2; -#endif /* __ICorProfilerInfo2_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo2_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo3_FWD_DEFINED__ #define __ICorProfilerInfo3_FWD_DEFINED__ typedef interface ICorProfilerInfo3 ICorProfilerInfo3; -#endif /* __ICorProfilerInfo3_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo3_FWD_DEFINED__ */ #ifndef __ICorProfilerObjectEnum_FWD_DEFINED__ #define __ICorProfilerObjectEnum_FWD_DEFINED__ typedef interface ICorProfilerObjectEnum ICorProfilerObjectEnum; -#endif /* __ICorProfilerObjectEnum_FWD_DEFINED__ */ +#endif /* __ICorProfilerObjectEnum_FWD_DEFINED__ */ #ifndef __ICorProfilerFunctionEnum_FWD_DEFINED__ #define __ICorProfilerFunctionEnum_FWD_DEFINED__ typedef interface ICorProfilerFunctionEnum ICorProfilerFunctionEnum; -#endif /* __ICorProfilerFunctionEnum_FWD_DEFINED__ */ +#endif /* __ICorProfilerFunctionEnum_FWD_DEFINED__ */ #ifndef __ICorProfilerModuleEnum_FWD_DEFINED__ #define __ICorProfilerModuleEnum_FWD_DEFINED__ typedef interface ICorProfilerModuleEnum ICorProfilerModuleEnum; -#endif /* __ICorProfilerModuleEnum_FWD_DEFINED__ */ +#endif /* __ICorProfilerModuleEnum_FWD_DEFINED__ */ #ifndef __IMethodMalloc_FWD_DEFINED__ #define __IMethodMalloc_FWD_DEFINED__ typedef interface IMethodMalloc IMethodMalloc; -#endif /* __IMethodMalloc_FWD_DEFINED__ */ +#endif /* __IMethodMalloc_FWD_DEFINED__ */ #ifndef __ICorProfilerFunctionControl_FWD_DEFINED__ #define __ICorProfilerFunctionControl_FWD_DEFINED__ typedef interface ICorProfilerFunctionControl ICorProfilerFunctionControl; -#endif /* __ICorProfilerFunctionControl_FWD_DEFINED__ */ +#endif /* __ICorProfilerFunctionControl_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo4_FWD_DEFINED__ #define __ICorProfilerInfo4_FWD_DEFINED__ typedef interface ICorProfilerInfo4 ICorProfilerInfo4; -#endif /* __ICorProfilerInfo4_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo4_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo5_FWD_DEFINED__ #define __ICorProfilerInfo5_FWD_DEFINED__ typedef interface ICorProfilerInfo5 ICorProfilerInfo5; -#endif /* __ICorProfilerInfo5_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo5_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo6_FWD_DEFINED__ #define __ICorProfilerInfo6_FWD_DEFINED__ typedef interface ICorProfilerInfo6 ICorProfilerInfo6; -#endif /* __ICorProfilerInfo6_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo6_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo7_FWD_DEFINED__ #define __ICorProfilerInfo7_FWD_DEFINED__ typedef interface ICorProfilerInfo7 ICorProfilerInfo7; -#endif /* __ICorProfilerInfo7_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo7_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo8_FWD_DEFINED__ #define __ICorProfilerInfo8_FWD_DEFINED__ typedef interface ICorProfilerInfo8 ICorProfilerInfo8; -#endif /* __ICorProfilerInfo8_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo8_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo9_FWD_DEFINED__ @@ -198,25 +206,32 @@ typedef interface ICorProfilerInfo9 ICorProfilerInfo9; #endif /* __ICorProfilerInfo9_FWD_DEFINED__ */ +#ifndef __ICorProfilerInfo10_FWD_DEFINED__ +#define __ICorProfilerInfo10_FWD_DEFINED__ +typedef interface ICorProfilerInfo10 ICorProfilerInfo10; + +#endif /* __ICorProfilerInfo10_FWD_DEFINED__ */ + + #ifndef __ICorProfilerMethodEnum_FWD_DEFINED__ #define __ICorProfilerMethodEnum_FWD_DEFINED__ typedef interface ICorProfilerMethodEnum ICorProfilerMethodEnum; -#endif /* __ICorProfilerMethodEnum_FWD_DEFINED__ */ +#endif /* __ICorProfilerMethodEnum_FWD_DEFINED__ */ #ifndef __ICorProfilerThreadEnum_FWD_DEFINED__ #define __ICorProfilerThreadEnum_FWD_DEFINED__ typedef interface ICorProfilerThreadEnum ICorProfilerThreadEnum; -#endif /* __ICorProfilerThreadEnum_FWD_DEFINED__ */ +#endif /* __ICorProfilerThreadEnum_FWD_DEFINED__ */ #ifndef __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__ #define __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__ typedef interface ICorProfilerAssemblyReferenceProvider ICorProfilerAssemblyReferenceProvider; -#endif /* __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__ */ +#endif /* __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__ */ /* header files for imported files */ @@ -251,7 +266,7 @@ typedef /* [public][public][public][public] */ struct __MIDL___MIDL_itf_corprof_ DWORD dwOSPlatformId; DWORD dwOSMajorVersion; DWORD dwOSMinorVersion; - } OSINFO; + } OSINFO; typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_corprof_0000_0000_0002 { @@ -265,7 +280,7 @@ typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_corprof_0000_000 ULONG ulProcessor; OSINFO *rOS; ULONG ulOS; - } ASSEMBLYMETADATA; + } ASSEMBLYMETADATA; #endif typedef const BYTE *LPCBYTE; @@ -285,7 +300,7 @@ typedef struct _COR_IL_MAP ULONG32 oldOffset; ULONG32 newOffset; BOOL fAccurate; - } COR_IL_MAP; + } COR_IL_MAP; #endif //_COR_IL_MAP #ifndef _COR_DEBUG_IL_TO_NATIVE_MAP_ @@ -293,17 +308,17 @@ typedef struct _COR_IL_MAP typedef enum CorDebugIlToNativeMappingTypes { - NO_MAPPING = -1, - PROLOG = -2, - EPILOG = -3 - } CorDebugIlToNativeMappingTypes; + NO_MAPPING = -1, + PROLOG = -2, + EPILOG = -3 + } CorDebugIlToNativeMappingTypes; typedef struct COR_DEBUG_IL_TO_NATIVE_MAP { ULONG32 ilOffset; ULONG32 nativeStartOffset; ULONG32 nativeEndOffset; - } COR_DEBUG_IL_TO_NATIVE_MAP; + } COR_DEBUG_IL_TO_NATIVE_MAP; #endif // _COR_DEBUG_IL_TO_NATIVE_MAP_ #ifndef _COR_FIELD_OFFSET_ @@ -312,7 +327,7 @@ typedef struct _COR_FIELD_OFFSET { mdFieldDef ridOfField; ULONG ulOffset; - } COR_FIELD_OFFSET; + } COR_FIELD_OFFSET; #endif // _COR_FIELD_OFFSET_ typedef UINT_PTR ProcessID; @@ -343,7 +358,7 @@ typedef /* [public][public][public][public][public][public][public][public][publ { FunctionID functionID; UINT_PTR clientID; - } FunctionIDOrClientID; + } FunctionIDOrClientID; typedef UINT_PTR __stdcall __stdcall FunctionIDMapper( FunctionID funcId, @@ -357,10 +372,10 @@ typedef UINT_PTR __stdcall __stdcall FunctionIDMapper2( typedef enum _COR_PRF_SNAPSHOT_INFO { - COR_PRF_SNAPSHOT_DEFAULT = 0, - COR_PRF_SNAPSHOT_REGISTER_CONTEXT = 0x1, - COR_PRF_SNAPSHOT_X86_OPTIMIZED = 0x2 - } COR_PRF_SNAPSHOT_INFO; + COR_PRF_SNAPSHOT_DEFAULT = 0, + COR_PRF_SNAPSHOT_REGISTER_CONTEXT = 0x1, + COR_PRF_SNAPSHOT_X86_OPTIMIZED = 0x2 + } COR_PRF_SNAPSHOT_INFO; typedef UINT_PTR COR_PRF_FRAME_INFO; @@ -368,36 +383,36 @@ typedef struct _COR_PRF_FUNCTION_ARGUMENT_RANGE { UINT_PTR startAddress; ULONG length; - } COR_PRF_FUNCTION_ARGUMENT_RANGE; + } COR_PRF_FUNCTION_ARGUMENT_RANGE; typedef struct _COR_PRF_FUNCTION_ARGUMENT_INFO { ULONG numRanges; ULONG totalArgumentSize; COR_PRF_FUNCTION_ARGUMENT_RANGE ranges[ 1 ]; - } COR_PRF_FUNCTION_ARGUMENT_INFO; + } COR_PRF_FUNCTION_ARGUMENT_INFO; typedef struct _COR_PRF_CODE_INFO { UINT_PTR startAddress; SIZE_T size; - } COR_PRF_CODE_INFO; + } COR_PRF_CODE_INFO; typedef /* [public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0004 { - COR_PRF_FIELD_NOT_A_STATIC = 0, - COR_PRF_FIELD_APP_DOMAIN_STATIC = 0x1, - COR_PRF_FIELD_THREAD_STATIC = 0x2, - COR_PRF_FIELD_CONTEXT_STATIC = 0x4, - COR_PRF_FIELD_RVA_STATIC = 0x8 - } COR_PRF_STATIC_TYPE; + COR_PRF_FIELD_NOT_A_STATIC = 0, + COR_PRF_FIELD_APP_DOMAIN_STATIC = 0x1, + COR_PRF_FIELD_THREAD_STATIC = 0x2, + COR_PRF_FIELD_CONTEXT_STATIC = 0x4, + COR_PRF_FIELD_RVA_STATIC = 0x8 + } COR_PRF_STATIC_TYPE; typedef struct _COR_PRF_FUNCTION { FunctionID functionId; ReJITID reJitId; - } COR_PRF_FUNCTION; + } COR_PRF_FUNCTION; typedef struct _COR_PRF_ASSEMBLY_REFERENCE_INFO { @@ -408,58 +423,58 @@ typedef struct _COR_PRF_ASSEMBLY_REFERENCE_INFO void *pbHashValue; ULONG cbHashValue; DWORD dwAssemblyRefFlags; - } COR_PRF_ASSEMBLY_REFERENCE_INFO; + } COR_PRF_ASSEMBLY_REFERENCE_INFO; typedef struct _COR_PRF_METHOD { ModuleID moduleId; mdMethodDef methodId; - } COR_PRF_METHOD; + } COR_PRF_METHOD; -typedef void __stdcall __stdcall FunctionEnter( +typedef void FunctionEnter( FunctionID funcID); -typedef void __stdcall __stdcall FunctionLeave( +typedef void FunctionLeave( FunctionID funcID); -typedef void __stdcall __stdcall FunctionTailcall( +typedef void FunctionTailcall( FunctionID funcID); -typedef void __stdcall __stdcall FunctionEnter2( +typedef void FunctionEnter2( FunctionID funcId, UINT_PTR clientData, COR_PRF_FRAME_INFO func, COR_PRF_FUNCTION_ARGUMENT_INFO *argumentInfo); -typedef void __stdcall __stdcall FunctionLeave2( +typedef void FunctionLeave2( FunctionID funcId, UINT_PTR clientData, COR_PRF_FRAME_INFO func, COR_PRF_FUNCTION_ARGUMENT_RANGE *retvalRange); -typedef void __stdcall __stdcall FunctionTailcall2( +typedef void FunctionTailcall2( FunctionID funcId, UINT_PTR clientData, COR_PRF_FRAME_INFO func); -typedef void __stdcall __stdcall FunctionEnter3( +typedef void FunctionEnter3( FunctionIDOrClientID functionIDOrClientID); -typedef void __stdcall __stdcall FunctionLeave3( +typedef void FunctionLeave3( FunctionIDOrClientID functionIDOrClientID); -typedef void __stdcall __stdcall FunctionTailcall3( +typedef void FunctionTailcall3( FunctionIDOrClientID functionIDOrClientID); -typedef void __stdcall __stdcall FunctionEnter3WithInfo( +typedef void FunctionEnter3WithInfo( FunctionIDOrClientID functionIDOrClientID, COR_PRF_ELT_INFO eltInfo); -typedef void __stdcall __stdcall FunctionLeave3WithInfo( +typedef void FunctionLeave3WithInfo( FunctionIDOrClientID functionIDOrClientID, COR_PRF_ELT_INFO eltInfo); -typedef void __stdcall __stdcall FunctionTailcall3WithInfo( +typedef void FunctionTailcall3WithInfo( FunctionIDOrClientID functionIDOrClientID, COR_PRF_ELT_INFO eltInfo); @@ -471,103 +486,118 @@ typedef HRESULT __stdcall __stdcall StackSnapshotCallback( BYTE context[ ], void *clientData); +typedef BOOL ObjectReferenceCallback( + ObjectID root, + ObjectID *reference, + void *clientData); + typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0005 { - COR_PRF_MONITOR_NONE = 0, - COR_PRF_MONITOR_FUNCTION_UNLOADS = 0x1, - COR_PRF_MONITOR_CLASS_LOADS = 0x2, - COR_PRF_MONITOR_MODULE_LOADS = 0x4, - COR_PRF_MONITOR_ASSEMBLY_LOADS = 0x8, - COR_PRF_MONITOR_APPDOMAIN_LOADS = 0x10, - COR_PRF_MONITOR_JIT_COMPILATION = 0x20, - COR_PRF_MONITOR_EXCEPTIONS = 0x40, - COR_PRF_MONITOR_GC = 0x80, - COR_PRF_MONITOR_OBJECT_ALLOCATED = 0x100, - COR_PRF_MONITOR_THREADS = 0x200, - COR_PRF_MONITOR_REMOTING = 0x400, - COR_PRF_MONITOR_CODE_TRANSITIONS = 0x800, - COR_PRF_MONITOR_ENTERLEAVE = 0x1000, - COR_PRF_MONITOR_CCW = 0x2000, - COR_PRF_MONITOR_REMOTING_COOKIE = ( 0x4000 | COR_PRF_MONITOR_REMOTING ) , - COR_PRF_MONITOR_REMOTING_ASYNC = ( 0x8000 | COR_PRF_MONITOR_REMOTING ) , - COR_PRF_MONITOR_SUSPENDS = 0x10000, - COR_PRF_MONITOR_CACHE_SEARCHES = 0x20000, - COR_PRF_ENABLE_REJIT = 0x40000, - COR_PRF_ENABLE_INPROC_DEBUGGING = 0x80000, - COR_PRF_ENABLE_JIT_MAPS = 0x100000, - COR_PRF_DISABLE_INLINING = 0x200000, - COR_PRF_DISABLE_OPTIMIZATIONS = 0x400000, - COR_PRF_ENABLE_OBJECT_ALLOCATED = 0x800000, - COR_PRF_MONITOR_CLR_EXCEPTIONS = 0x1000000, - COR_PRF_MONITOR_ALL = 0x107ffff, - COR_PRF_ENABLE_FUNCTION_ARGS = 0x2000000, - COR_PRF_ENABLE_FUNCTION_RETVAL = 0x4000000, - COR_PRF_ENABLE_FRAME_INFO = 0x8000000, - COR_PRF_ENABLE_STACK_SNAPSHOT = 0x10000000, - COR_PRF_USE_PROFILE_IMAGES = 0x20000000, - COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST = 0x40000000, - COR_PRF_DISABLE_ALL_NGEN_IMAGES = 0x80000000, - COR_PRF_ALL = 0x8fffffff, - COR_PRF_REQUIRE_PROFILE_IMAGE = ( ( COR_PRF_USE_PROFILE_IMAGES | COR_PRF_MONITOR_CODE_TRANSITIONS ) | COR_PRF_MONITOR_ENTERLEAVE ) , - COR_PRF_ALLOWABLE_AFTER_ATTACH = ( ( ( ( ( ( ( ( ( COR_PRF_MONITOR_THREADS | COR_PRF_MONITOR_MODULE_LOADS ) | COR_PRF_MONITOR_ASSEMBLY_LOADS ) | COR_PRF_MONITOR_APPDOMAIN_LOADS ) | COR_PRF_ENABLE_STACK_SNAPSHOT ) | COR_PRF_MONITOR_GC ) | COR_PRF_MONITOR_SUSPENDS ) | COR_PRF_MONITOR_CLASS_LOADS ) | COR_PRF_MONITOR_EXCEPTIONS ) | COR_PRF_MONITOR_JIT_COMPILATION ) , - COR_PRF_MONITOR_IMMUTABLE = ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( COR_PRF_MONITOR_CODE_TRANSITIONS | COR_PRF_MONITOR_REMOTING ) | COR_PRF_MONITOR_REMOTING_COOKIE ) | COR_PRF_MONITOR_REMOTING_ASYNC ) | COR_PRF_ENABLE_REJIT ) | COR_PRF_ENABLE_INPROC_DEBUGGING ) | COR_PRF_ENABLE_JIT_MAPS ) | COR_PRF_DISABLE_OPTIMIZATIONS ) | COR_PRF_DISABLE_INLINING ) | COR_PRF_ENABLE_OBJECT_ALLOCATED ) | COR_PRF_ENABLE_FUNCTION_ARGS ) | COR_PRF_ENABLE_FUNCTION_RETVAL ) | COR_PRF_ENABLE_FRAME_INFO ) | COR_PRF_USE_PROFILE_IMAGES ) | COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST ) | COR_PRF_DISABLE_ALL_NGEN_IMAGES ) - } COR_PRF_MONITOR; + COR_PRF_MONITOR_NONE = 0, + COR_PRF_MONITOR_FUNCTION_UNLOADS = 0x1, + COR_PRF_MONITOR_CLASS_LOADS = 0x2, + COR_PRF_MONITOR_MODULE_LOADS = 0x4, + COR_PRF_MONITOR_ASSEMBLY_LOADS = 0x8, + COR_PRF_MONITOR_APPDOMAIN_LOADS = 0x10, + COR_PRF_MONITOR_JIT_COMPILATION = 0x20, + COR_PRF_MONITOR_EXCEPTIONS = 0x40, + COR_PRF_MONITOR_GC = 0x80, + COR_PRF_MONITOR_OBJECT_ALLOCATED = 0x100, + COR_PRF_MONITOR_THREADS = 0x200, + COR_PRF_MONITOR_REMOTING = 0x400, + COR_PRF_MONITOR_CODE_TRANSITIONS = 0x800, + COR_PRF_MONITOR_ENTERLEAVE = 0x1000, + COR_PRF_MONITOR_CCW = 0x2000, + COR_PRF_MONITOR_REMOTING_COOKIE = ( 0x4000 | COR_PRF_MONITOR_REMOTING ) , + COR_PRF_MONITOR_REMOTING_ASYNC = ( 0x8000 | COR_PRF_MONITOR_REMOTING ) , + COR_PRF_MONITOR_SUSPENDS = 0x10000, + COR_PRF_MONITOR_CACHE_SEARCHES = 0x20000, + COR_PRF_ENABLE_REJIT = 0x40000, + COR_PRF_ENABLE_INPROC_DEBUGGING = 0x80000, + COR_PRF_ENABLE_JIT_MAPS = 0x100000, + COR_PRF_DISABLE_INLINING = 0x200000, + COR_PRF_DISABLE_OPTIMIZATIONS = 0x400000, + COR_PRF_ENABLE_OBJECT_ALLOCATED = 0x800000, + COR_PRF_MONITOR_CLR_EXCEPTIONS = 0x1000000, + COR_PRF_MONITOR_ALL = 0x107ffff, + COR_PRF_ENABLE_FUNCTION_ARGS = 0x2000000, + COR_PRF_ENABLE_FUNCTION_RETVAL = 0x4000000, + COR_PRF_ENABLE_FRAME_INFO = 0x8000000, + COR_PRF_ENABLE_STACK_SNAPSHOT = 0x10000000, + COR_PRF_USE_PROFILE_IMAGES = 0x20000000, + COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST = 0x40000000, + COR_PRF_DISABLE_ALL_NGEN_IMAGES = 0x80000000, + COR_PRF_ALL = 0x8fffffff, + COR_PRF_REQUIRE_PROFILE_IMAGE = ( ( COR_PRF_USE_PROFILE_IMAGES | COR_PRF_MONITOR_CODE_TRANSITIONS ) | COR_PRF_MONITOR_ENTERLEAVE ) , + COR_PRF_ALLOWABLE_AFTER_ATTACH = ( ( ( ( ( ( ( ( ( ( COR_PRF_MONITOR_THREADS | COR_PRF_MONITOR_MODULE_LOADS ) | COR_PRF_MONITOR_ASSEMBLY_LOADS ) | COR_PRF_MONITOR_APPDOMAIN_LOADS ) | COR_PRF_ENABLE_STACK_SNAPSHOT ) | COR_PRF_MONITOR_GC ) | COR_PRF_MONITOR_SUSPENDS ) | COR_PRF_MONITOR_CLASS_LOADS ) | COR_PRF_MONITOR_EXCEPTIONS ) | COR_PRF_MONITOR_JIT_COMPILATION ) | COR_PRF_ENABLE_REJIT ) , + COR_PRF_MONITOR_IMMUTABLE = ( ( ( ( ( ( ( ( ( ( ( ( ( ( COR_PRF_MONITOR_CODE_TRANSITIONS | COR_PRF_MONITOR_REMOTING ) | COR_PRF_MONITOR_REMOTING_COOKIE ) | COR_PRF_MONITOR_REMOTING_ASYNC ) | COR_PRF_ENABLE_INPROC_DEBUGGING ) | COR_PRF_ENABLE_JIT_MAPS ) | COR_PRF_DISABLE_OPTIMIZATIONS ) | COR_PRF_DISABLE_INLINING ) | COR_PRF_ENABLE_OBJECT_ALLOCATED ) | COR_PRF_ENABLE_FUNCTION_ARGS ) | COR_PRF_ENABLE_FUNCTION_RETVAL ) | COR_PRF_ENABLE_FRAME_INFO ) | COR_PRF_USE_PROFILE_IMAGES ) | COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST ) | COR_PRF_DISABLE_ALL_NGEN_IMAGES ) + } COR_PRF_MONITOR; typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0006 { - COR_PRF_HIGH_MONITOR_NONE = 0, - COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES = 0x1, - COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED = 0x2, - COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS = 0x4, + COR_PRF_HIGH_MONITOR_NONE = 0, + COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES = 0x1, + COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED = 0x2, + COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS = 0x4, COR_PRF_HIGH_DISABLE_TIERED_COMPILATION = 0x8, - COR_PRF_HIGH_REQUIRE_PROFILE_IMAGE = 0, - COR_PRF_HIGH_ALLOWABLE_AFTER_ATTACH = ( COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED | COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS ) , - COR_PRF_HIGH_MONITOR_IMMUTABLE = ( COR_PRF_HIGH_DISABLE_TIERED_COMPILATION ) - } COR_PRF_HIGH_MONITOR; + COR_PRF_HIGH_BASIC_GC = 0x10, + COR_PRF_HIGH_MONITOR_GC_MOVED_OBJECTS = 0x20, + COR_PRF_HIGH_REQUIRE_PROFILE_IMAGE = 0, + COR_PRF_HIGH_MONITOR_LARGEOBJECT_ALLOCATED = 0x40, + COR_PRF_HIGH_ALLOWABLE_AFTER_ATTACH = ( ( ( ( COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED | COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS ) | COR_PRF_HIGH_BASIC_GC ) | COR_PRF_HIGH_MONITOR_GC_MOVED_OBJECTS ) | COR_PRF_HIGH_MONITOR_LARGEOBJECT_ALLOCATED ) , + COR_PRF_HIGH_MONITOR_IMMUTABLE = COR_PRF_HIGH_DISABLE_TIERED_COMPILATION + } COR_PRF_HIGH_MONITOR; typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0007 { - PROFILER_PARENT_UNKNOWN = 0xfffffffd, - PROFILER_GLOBAL_CLASS = 0xfffffffe, - PROFILER_GLOBAL_MODULE = 0xffffffff - } COR_PRF_MISC; + PROFILER_PARENT_UNKNOWN = 0xfffffffd, + PROFILER_GLOBAL_CLASS = 0xfffffffe, + PROFILER_GLOBAL_MODULE = 0xffffffff + } COR_PRF_MISC; typedef /* [public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0008 { - COR_PRF_CACHED_FUNCTION_FOUND = 0, - COR_PRF_CACHED_FUNCTION_NOT_FOUND = ( COR_PRF_CACHED_FUNCTION_FOUND + 1 ) - } COR_PRF_JIT_CACHE; + COR_PRF_CACHED_FUNCTION_FOUND = 0, + COR_PRF_CACHED_FUNCTION_NOT_FOUND = ( COR_PRF_CACHED_FUNCTION_FOUND + 1 ) + } COR_PRF_JIT_CACHE; typedef /* [public][public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0009 { - COR_PRF_TRANSITION_CALL = 0, - COR_PRF_TRANSITION_RETURN = ( COR_PRF_TRANSITION_CALL + 1 ) - } COR_PRF_TRANSITION_REASON; + COR_PRF_TRANSITION_CALL = 0, + COR_PRF_TRANSITION_RETURN = ( COR_PRF_TRANSITION_CALL + 1 ) + } COR_PRF_TRANSITION_REASON; typedef /* [public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0010 { - COR_PRF_SUSPEND_OTHER = 0, - COR_PRF_SUSPEND_FOR_GC = 1, - COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN = 2, - COR_PRF_SUSPEND_FOR_CODE_PITCHING = 3, - COR_PRF_SUSPEND_FOR_SHUTDOWN = 4, - COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER = 6, - COR_PRF_SUSPEND_FOR_GC_PREP = 7, - COR_PRF_SUSPEND_FOR_REJIT = 8 - } COR_PRF_SUSPEND_REASON; + COR_PRF_SUSPEND_OTHER = 0, + COR_PRF_SUSPEND_FOR_GC = 1, + COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN = 2, + COR_PRF_SUSPEND_FOR_CODE_PITCHING = 3, + COR_PRF_SUSPEND_FOR_SHUTDOWN = 4, + COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER = 6, + COR_PRF_SUSPEND_FOR_GC_PREP = 7, + COR_PRF_SUSPEND_FOR_REJIT = 8 + } COR_PRF_SUSPEND_REASON; typedef /* [public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0011 { - COR_PRF_DESKTOP_CLR = 0x1, - COR_PRF_CORE_CLR = 0x2 - } COR_PRF_RUNTIME_TYPE; + COR_PRF_DESKTOP_CLR = 0x1, + COR_PRF_CORE_CLR = 0x2 + } COR_PRF_RUNTIME_TYPE; + +typedef /* [public] */ +enum __MIDL___MIDL_itf_corprof_0000_0000_0012 + { + COR_PRF_REJIT_BLOCK_INLINING = 0x1, + COR_PRF_REJIT_INLINING_CALLBACKS = 0x2 + } COR_PRF_REJIT_FLAGS; @@ -838,7 +868,7 @@ EXTERN_C const IID IID_ICorProfilerCallback; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallbackVtbl { @@ -1168,232 +1198,232 @@ EXTERN_C const IID IID_ICorProfilerCallback; #ifdef COBJMACROS -#define ICorProfilerCallback_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback_AddRef(This) \ +#define ICorProfilerCallback_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback_Release(This) \ +#define ICorProfilerCallback_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback_Shutdown(This) \ +#define ICorProfilerCallback_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_corprof_0000_0001 */ @@ -1402,35 +1432,35 @@ EXTERN_C const IID IID_ICorProfilerCallback; typedef /* [public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0001_0001 { - COR_PRF_GC_ROOT_STACK = 1, - COR_PRF_GC_ROOT_FINALIZER = 2, - COR_PRF_GC_ROOT_HANDLE = 3, - COR_PRF_GC_ROOT_OTHER = 0 - } COR_PRF_GC_ROOT_KIND; + COR_PRF_GC_ROOT_STACK = 1, + COR_PRF_GC_ROOT_FINALIZER = 2, + COR_PRF_GC_ROOT_HANDLE = 3, + COR_PRF_GC_ROOT_OTHER = 0 + } COR_PRF_GC_ROOT_KIND; typedef /* [public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0001_0002 { - COR_PRF_GC_ROOT_PINNING = 0x1, - COR_PRF_GC_ROOT_WEAKREF = 0x2, - COR_PRF_GC_ROOT_INTERIOR = 0x4, - COR_PRF_GC_ROOT_REFCOUNTED = 0x8 - } COR_PRF_GC_ROOT_FLAGS; + COR_PRF_GC_ROOT_PINNING = 0x1, + COR_PRF_GC_ROOT_WEAKREF = 0x2, + COR_PRF_GC_ROOT_INTERIOR = 0x4, + COR_PRF_GC_ROOT_REFCOUNTED = 0x8 + } COR_PRF_GC_ROOT_FLAGS; typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0001_0003 { - COR_PRF_FINALIZER_CRITICAL = 0x1 - } COR_PRF_FINALIZER_FLAGS; + COR_PRF_FINALIZER_CRITICAL = 0x1 + } COR_PRF_FINALIZER_FLAGS; typedef /* [public][public][public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0001_0004 { - COR_PRF_GC_GEN_0 = 0, - COR_PRF_GC_GEN_1 = 1, - COR_PRF_GC_GEN_2 = 2, - COR_PRF_GC_LARGE_OBJECT_HEAP = 3 - } COR_PRF_GC_GENERATION; + COR_PRF_GC_GEN_0 = 0, + COR_PRF_GC_GEN_1 = 1, + COR_PRF_GC_GEN_2 = 2, + COR_PRF_GC_LARGE_OBJECT_HEAP = 3 + } COR_PRF_GC_GENERATION; typedef struct COR_PRF_GC_GENERATION_RANGE { @@ -1438,16 +1468,16 @@ typedef struct COR_PRF_GC_GENERATION_RANGE ObjectID rangeStart; UINT_PTR rangeLength; UINT_PTR rangeLengthReserved; - } COR_PRF_GC_GENERATION_RANGE; + } COR_PRF_GC_GENERATION_RANGE; typedef /* [public][public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0001_0005 { - COR_PRF_CLAUSE_NONE = 0, - COR_PRF_CLAUSE_FILTER = 1, - COR_PRF_CLAUSE_CATCH = 2, - COR_PRF_CLAUSE_FINALLY = 3 - } COR_PRF_CLAUSE_TYPE; + COR_PRF_CLAUSE_NONE = 0, + COR_PRF_CLAUSE_FILTER = 1, + COR_PRF_CLAUSE_CATCH = 2, + COR_PRF_CLAUSE_FINALLY = 3 + } COR_PRF_CLAUSE_TYPE; typedef struct COR_PRF_EX_CLAUSE_INFO { @@ -1455,26 +1485,26 @@ typedef struct COR_PRF_EX_CLAUSE_INFO UINT_PTR programCounter; UINT_PTR framePointer; UINT_PTR shadowStackPointer; - } COR_PRF_EX_CLAUSE_INFO; + } COR_PRF_EX_CLAUSE_INFO; typedef /* [public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0001_0006 { - COR_PRF_GC_INDUCED = 1, - COR_PRF_GC_OTHER = 0 - } COR_PRF_GC_REASON; + COR_PRF_GC_INDUCED = 1, + COR_PRF_GC_OTHER = 0 + } COR_PRF_GC_REASON; typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0001_0007 { - COR_PRF_MODULE_DISK = 0x1, - COR_PRF_MODULE_NGEN = 0x2, - COR_PRF_MODULE_DYNAMIC = 0x4, - COR_PRF_MODULE_COLLECTIBLE = 0x8, - COR_PRF_MODULE_RESOURCE = 0x10, - COR_PRF_MODULE_FLAT_LAYOUT = 0x20, - COR_PRF_MODULE_WINDOWS_RUNTIME = 0x40 - } COR_PRF_MODULE_FLAGS; + COR_PRF_MODULE_DISK = 0x1, + COR_PRF_MODULE_NGEN = 0x2, + COR_PRF_MODULE_DYNAMIC = 0x4, + COR_PRF_MODULE_COLLECTIBLE = 0x8, + COR_PRF_MODULE_RESOURCE = 0x10, + COR_PRF_MODULE_FLAT_LAYOUT = 0x20, + COR_PRF_MODULE_WINDOWS_RUNTIME = 0x40 + } COR_PRF_MODULE_FLAGS; @@ -1535,7 +1565,7 @@ EXTERN_C const IID IID_ICorProfilerCallback2; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback2Vtbl { @@ -1909,257 +1939,257 @@ EXTERN_C const IID IID_ICorProfilerCallback2; #ifdef COBJMACROS -#define ICorProfilerCallback2_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback2_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback2_AddRef(This) \ +#define ICorProfilerCallback2_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback2_Release(This) \ +#define ICorProfilerCallback2_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback2_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback2_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback2_Shutdown(This) \ +#define ICorProfilerCallback2_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback2_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback2_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback2_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback2_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback2_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback2_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback2_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback2_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback2_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback2_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback2_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback2_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback2_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback2_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback2_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback2_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback2_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback2_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback2_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback2_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback2_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback2_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback2_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback2_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback2_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback2_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback2_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback2_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback2_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback2_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback2_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback2_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback2_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback2_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback2_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback2_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback2_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback2_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback2_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback2_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback2_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback2_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback2_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback2_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback2_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback2_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback2_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback2_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback2_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback2_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback2_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback2_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback2_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback2_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback2_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback2_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback2_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback2_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback2_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback2_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback2_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback2_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback2_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback2_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback2_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback2_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback2_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback2_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback2_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback2_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback2_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback2_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback2_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback2_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback2_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback2_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback2_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback2_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback2_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback2_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback2_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback2_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback2_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback2_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback2_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback2_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback2_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback2_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback2_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback2_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback2_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback2_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback2_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback2_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback2_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback2_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback2_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback2_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback2_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback2_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback2_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback2_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback2_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback2_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback2_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback2_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback2_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback2_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback2_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback2_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback2_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback2_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback2_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback2_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback2_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback2_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback2_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback2_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback2_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback2_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback2_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback2_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback2_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback2_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback2_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback2_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback2_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback2_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback2_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback2_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback2_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback2_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback2_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback2_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback2_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback2_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback2_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback2_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback2_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback2_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback2_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback2_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback2_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback2_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback2_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback2_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback2_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback2_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback2_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback2_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback2_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback2_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback3_INTERFACE_DEFINED__ @@ -2189,7 +2219,7 @@ EXTERN_C const IID IID_ICorProfilerCallback3; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback3Vtbl { @@ -2575,267 +2605,267 @@ EXTERN_C const IID IID_ICorProfilerCallback3; #ifdef COBJMACROS -#define ICorProfilerCallback3_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback3_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback3_AddRef(This) \ +#define ICorProfilerCallback3_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback3_Release(This) \ +#define ICorProfilerCallback3_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback3_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback3_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback3_Shutdown(This) \ +#define ICorProfilerCallback3_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback3_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback3_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback3_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback3_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback3_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback3_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback3_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback3_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback3_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback3_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback3_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback3_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback3_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback3_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback3_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback3_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback3_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback3_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback3_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback3_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback3_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback3_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback3_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback3_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback3_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback3_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback3_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback3_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback3_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback3_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback3_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback3_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback3_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback3_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback3_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback3_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback3_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback3_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback3_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback3_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback3_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback3_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback3_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback3_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback3_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback3_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback3_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback3_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback3_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback3_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback3_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback3_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback3_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback3_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback3_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback3_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback3_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback3_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback3_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback3_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback3_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback3_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback3_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback3_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback3_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback3_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback3_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback3_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback3_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback3_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback3_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback3_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback3_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback3_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback3_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback3_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback3_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback3_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback3_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback3_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback3_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback3_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback3_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback3_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback3_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback3_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback3_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback3_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback3_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback3_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback3_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback3_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback3_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback3_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback3_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback3_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback3_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback3_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback3_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback3_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback3_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback3_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback3_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback3_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback3_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback3_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback3_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback3_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback3_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback3_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback3_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback3_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback3_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback3_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback3_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback3_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback3_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback3_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback3_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback3_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback3_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback3_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback3_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback3_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback3_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback3_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback3_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback3_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback3_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback3_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback3_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback3_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback3_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback3_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback3_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback3_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback3_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback3_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback3_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback3_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback3_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback3_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback3_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback3_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback3_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback3_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback3_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback3_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback3_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback3_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback3_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback3_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback3_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback3_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback3_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback3_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback3_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback3_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback4_INTERFACE_DEFINED__ @@ -2889,7 +2919,7 @@ EXTERN_C const IID IID_ICorProfilerCallback4; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback4Vtbl { @@ -3314,286 +3344,286 @@ EXTERN_C const IID IID_ICorProfilerCallback4; #ifdef COBJMACROS -#define ICorProfilerCallback4_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback4_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback4_AddRef(This) \ +#define ICorProfilerCallback4_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback4_Release(This) \ +#define ICorProfilerCallback4_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback4_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback4_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback4_Shutdown(This) \ +#define ICorProfilerCallback4_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback4_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback4_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback4_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback4_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback4_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback4_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback4_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback4_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback4_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback4_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback4_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback4_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback4_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback4_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback4_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback4_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback4_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback4_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback4_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback4_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback4_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback4_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback4_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback4_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback4_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback4_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback4_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback4_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback4_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback4_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback4_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback4_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback4_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback4_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback4_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback4_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback4_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback4_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback4_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback4_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback4_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback4_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback4_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback4_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback4_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback4_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback4_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback4_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback4_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback4_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback4_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback4_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback4_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback4_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback4_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback4_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback4_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback4_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback4_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback4_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback4_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback4_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback4_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback4_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback4_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback4_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback4_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback4_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback4_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback4_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback4_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback4_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback4_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback4_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback4_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback4_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback4_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback4_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback4_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback4_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback4_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback4_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback4_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback4_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback4_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback4_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback4_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback4_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback4_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback4_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback4_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback4_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback4_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback4_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback4_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback4_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback4_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback4_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback4_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback4_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback4_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback4_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback4_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback4_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback4_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback4_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback4_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback4_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback4_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback4_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback4_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback4_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback4_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback4_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback4_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback4_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback4_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback4_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback4_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback4_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback4_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback4_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback4_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback4_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback4_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback4_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback4_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback4_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback4_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback4_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback4_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback4_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback4_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback4_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback4_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback4_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback4_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback4_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback4_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback4_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback4_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback4_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback4_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback4_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback4_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback4_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback4_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback4_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback4_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback4_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback4_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback4_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback4_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback4_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback4_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback4_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback4_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback4_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback4_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback4_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback4_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback4_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback4_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback4_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback4_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback4_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback4_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback4_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback4_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback4_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback5_INTERFACE_DEFINED__ @@ -3620,7 +3650,7 @@ EXTERN_C const IID IID_ICorProfilerCallback5; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback5Vtbl { @@ -4052,290 +4082,290 @@ EXTERN_C const IID IID_ICorProfilerCallback5; #ifdef COBJMACROS -#define ICorProfilerCallback5_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback5_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback5_AddRef(This) \ +#define ICorProfilerCallback5_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback5_Release(This) \ +#define ICorProfilerCallback5_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback5_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback5_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback5_Shutdown(This) \ +#define ICorProfilerCallback5_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback5_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback5_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback5_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback5_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback5_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback5_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback5_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback5_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback5_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback5_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback5_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback5_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback5_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback5_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback5_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback5_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback5_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback5_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback5_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback5_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback5_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback5_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback5_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback5_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback5_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback5_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback5_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback5_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback5_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback5_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback5_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback5_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback5_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback5_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback5_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback5_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback5_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback5_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback5_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback5_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback5_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback5_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback5_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback5_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback5_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback5_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback5_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback5_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback5_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback5_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback5_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback5_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback5_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback5_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback5_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback5_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback5_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback5_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback5_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback5_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback5_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback5_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback5_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback5_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback5_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback5_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback5_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback5_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback5_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback5_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback5_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback5_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback5_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback5_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback5_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback5_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback5_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback5_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback5_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback5_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback5_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback5_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback5_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback5_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback5_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback5_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback5_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback5_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback5_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback5_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback5_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback5_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback5_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback5_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback5_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback5_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback5_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback5_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback5_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback5_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback5_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback5_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback5_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback5_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback5_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback5_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback5_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback5_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback5_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback5_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback5_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback5_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback5_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback5_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback5_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback5_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback5_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback5_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback5_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback5_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback5_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback5_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback5_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback5_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback5_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback5_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback5_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback5_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback5_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback5_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback5_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback5_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback5_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback5_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback5_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback5_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback5_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback5_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback5_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback5_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback5_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback5_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback5_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback5_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback5_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback5_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback5_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback5_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback5_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback5_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback5_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback5_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback5_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback5_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback5_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback5_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback5_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback5_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback5_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback5_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback5_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback5_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback5_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback5_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback5_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback5_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback5_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback5_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback5_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ +#define ICorProfilerCallback5_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback5_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback5_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback6_INTERFACE_DEFINED__ @@ -4360,7 +4390,7 @@ EXTERN_C const IID IID_ICorProfilerCallback6; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback6Vtbl { @@ -4797,294 +4827,294 @@ EXTERN_C const IID IID_ICorProfilerCallback6; #ifdef COBJMACROS -#define ICorProfilerCallback6_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback6_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback6_AddRef(This) \ +#define ICorProfilerCallback6_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback6_Release(This) \ +#define ICorProfilerCallback6_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback6_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback6_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback6_Shutdown(This) \ +#define ICorProfilerCallback6_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback6_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback6_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback6_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback6_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback6_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback6_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback6_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback6_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback6_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback6_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback6_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback6_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback6_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback6_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback6_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback6_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback6_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback6_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback6_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback6_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback6_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback6_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback6_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback6_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback6_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback6_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback6_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback6_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback6_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback6_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback6_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback6_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback6_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback6_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback6_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback6_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback6_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback6_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback6_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback6_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback6_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback6_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback6_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback6_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback6_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback6_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback6_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback6_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback6_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback6_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback6_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback6_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback6_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback6_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback6_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback6_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback6_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback6_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback6_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback6_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback6_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback6_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback6_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback6_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback6_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback6_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback6_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback6_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback6_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback6_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback6_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback6_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback6_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback6_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback6_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback6_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback6_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback6_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback6_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback6_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback6_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback6_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback6_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback6_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback6_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback6_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback6_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback6_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback6_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback6_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback6_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback6_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback6_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback6_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback6_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback6_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback6_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback6_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback6_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback6_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback6_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback6_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback6_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback6_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback6_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback6_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback6_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback6_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback6_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback6_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback6_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback6_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback6_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback6_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback6_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback6_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback6_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback6_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback6_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback6_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback6_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback6_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback6_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback6_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback6_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback6_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback6_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback6_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback6_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback6_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback6_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback6_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback6_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback6_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback6_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback6_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback6_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback6_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback6_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback6_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback6_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback6_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback6_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback6_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback6_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback6_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback6_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback6_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback6_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback6_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback6_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback6_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback6_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback6_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback6_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback6_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback6_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback6_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback6_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback6_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback6_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback6_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback6_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback6_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback6_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback6_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback6_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback6_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback6_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ +#define ICorProfilerCallback6_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) -#define ICorProfilerCallback6_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ +#define ICorProfilerCallback6_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback6_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback6_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback7_INTERFACE_DEFINED__ @@ -5108,7 +5138,7 @@ EXTERN_C const IID IID_ICorProfilerCallback7; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback7Vtbl { @@ -5549,298 +5579,298 @@ EXTERN_C const IID IID_ICorProfilerCallback7; #ifdef COBJMACROS -#define ICorProfilerCallback7_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback7_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback7_AddRef(This) \ +#define ICorProfilerCallback7_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback7_Release(This) \ +#define ICorProfilerCallback7_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback7_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback7_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback7_Shutdown(This) \ +#define ICorProfilerCallback7_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback7_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback7_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback7_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback7_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback7_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback7_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback7_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback7_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback7_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback7_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback7_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback7_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback7_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback7_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback7_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback7_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback7_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback7_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback7_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback7_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback7_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback7_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback7_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback7_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback7_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback7_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback7_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback7_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback7_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback7_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback7_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback7_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback7_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback7_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback7_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback7_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback7_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback7_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback7_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback7_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback7_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback7_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback7_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback7_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback7_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback7_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback7_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback7_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback7_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback7_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback7_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback7_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback7_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback7_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback7_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback7_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback7_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback7_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback7_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback7_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback7_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback7_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback7_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback7_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback7_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback7_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback7_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback7_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback7_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback7_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback7_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback7_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback7_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback7_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback7_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback7_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback7_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback7_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback7_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback7_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback7_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback7_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback7_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback7_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback7_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback7_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback7_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback7_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback7_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback7_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback7_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback7_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback7_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback7_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback7_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback7_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback7_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback7_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback7_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback7_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback7_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback7_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback7_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback7_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback7_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback7_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback7_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback7_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback7_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback7_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback7_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback7_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback7_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback7_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback7_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback7_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback7_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback7_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback7_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback7_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback7_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback7_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback7_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback7_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback7_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback7_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback7_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback7_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback7_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback7_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback7_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback7_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback7_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback7_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback7_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback7_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback7_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback7_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback7_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback7_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback7_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback7_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback7_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback7_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback7_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback7_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback7_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback7_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback7_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback7_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback7_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback7_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback7_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback7_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback7_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback7_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback7_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback7_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback7_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback7_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback7_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback7_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback7_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback7_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback7_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback7_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback7_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback7_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback7_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ +#define ICorProfilerCallback7_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) -#define ICorProfilerCallback7_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ +#define ICorProfilerCallback7_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) -#define ICorProfilerCallback7_ModuleInMemorySymbolsUpdated(This,moduleId) \ +#define ICorProfilerCallback7_ModuleInMemorySymbolsUpdated(This,moduleId) \ ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback7_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback7_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback8_INTERFACE_DEFINED__ @@ -5872,7 +5902,7 @@ EXTERN_C const IID IID_ICorProfilerCallback8; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback8Vtbl { @@ -6326,305 +6356,305 @@ EXTERN_C const IID IID_ICorProfilerCallback8; #ifdef COBJMACROS -#define ICorProfilerCallback8_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback8_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback8_AddRef(This) \ +#define ICorProfilerCallback8_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback8_Release(This) \ +#define ICorProfilerCallback8_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback8_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback8_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback8_Shutdown(This) \ +#define ICorProfilerCallback8_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback8_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback8_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback8_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback8_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback8_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback8_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback8_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback8_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback8_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback8_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback8_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback8_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback8_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback8_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback8_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback8_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback8_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback8_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback8_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback8_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback8_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback8_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback8_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback8_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback8_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback8_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback8_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback8_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback8_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback8_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback8_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback8_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback8_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback8_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback8_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback8_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback8_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback8_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback8_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback8_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback8_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback8_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback8_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback8_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback8_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback8_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback8_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback8_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback8_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback8_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback8_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback8_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback8_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback8_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback8_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback8_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback8_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback8_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback8_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback8_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback8_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback8_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback8_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback8_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback8_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback8_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback8_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback8_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback8_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback8_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback8_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback8_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback8_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback8_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback8_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback8_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback8_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback8_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback8_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback8_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback8_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback8_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback8_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback8_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback8_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback8_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback8_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback8_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback8_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback8_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback8_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback8_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback8_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback8_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback8_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback8_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback8_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback8_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback8_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback8_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback8_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback8_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback8_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback8_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback8_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback8_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback8_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback8_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback8_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback8_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback8_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback8_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback8_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback8_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback8_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback8_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback8_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback8_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback8_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback8_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback8_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback8_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback8_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback8_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback8_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback8_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback8_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback8_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback8_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback8_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback8_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback8_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback8_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback8_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback8_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback8_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback8_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback8_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback8_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback8_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback8_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback8_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback8_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback8_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback8_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback8_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback8_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback8_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback8_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback8_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback8_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback8_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback8_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback8_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback8_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback8_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback8_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback8_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback8_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback8_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback8_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback8_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback8_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback8_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback8_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback8_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback8_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback8_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback8_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ +#define ICorProfilerCallback8_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) -#define ICorProfilerCallback8_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ +#define ICorProfilerCallback8_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) -#define ICorProfilerCallback8_ModuleInMemorySymbolsUpdated(This,moduleId) \ +#define ICorProfilerCallback8_ModuleInMemorySymbolsUpdated(This,moduleId) \ ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) ) -#define ICorProfilerCallback8_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \ +#define ICorProfilerCallback8_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \ ( (This)->lpVtbl -> DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) ) -#define ICorProfilerCallback8_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback8_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback8_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback8_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback9_INTERFACE_DEFINED__ @@ -6648,7 +6678,7 @@ EXTERN_C const IID IID_ICorProfilerCallback9; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback9Vtbl { @@ -7106,309 +7136,309 @@ EXTERN_C const IID IID_ICorProfilerCallback9; #ifdef COBJMACROS -#define ICorProfilerCallback9_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback9_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback9_AddRef(This) \ +#define ICorProfilerCallback9_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback9_Release(This) \ +#define ICorProfilerCallback9_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback9_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback9_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback9_Shutdown(This) \ +#define ICorProfilerCallback9_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback9_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback9_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback9_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback9_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback9_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback9_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback9_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback9_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback9_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback9_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback9_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback9_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback9_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback9_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback9_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback9_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback9_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback9_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback9_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback9_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback9_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback9_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback9_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback9_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback9_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback9_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback9_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback9_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback9_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback9_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback9_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback9_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback9_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback9_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback9_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback9_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback9_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback9_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback9_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback9_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback9_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback9_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback9_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback9_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback9_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback9_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback9_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback9_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback9_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback9_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback9_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback9_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback9_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback9_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback9_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback9_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback9_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback9_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback9_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback9_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback9_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback9_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback9_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback9_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback9_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback9_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback9_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback9_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback9_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback9_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback9_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback9_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback9_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback9_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback9_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback9_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback9_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback9_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback9_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback9_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback9_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback9_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback9_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback9_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback9_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback9_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback9_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback9_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback9_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback9_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback9_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback9_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback9_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback9_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback9_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback9_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback9_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback9_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback9_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback9_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback9_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback9_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback9_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback9_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback9_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback9_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback9_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback9_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback9_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback9_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback9_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback9_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback9_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback9_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback9_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback9_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback9_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback9_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback9_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback9_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback9_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback9_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback9_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback9_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback9_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback9_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback9_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback9_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback9_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback9_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback9_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback9_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback9_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback9_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback9_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback9_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback9_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback9_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback9_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback9_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback9_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback9_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback9_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback9_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback9_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback9_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback9_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback9_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback9_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback9_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback9_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback9_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback9_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback9_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback9_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback9_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback9_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback9_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback9_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback9_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback9_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback9_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback9_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback9_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback9_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback9_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback9_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback9_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback9_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ +#define ICorProfilerCallback9_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) -#define ICorProfilerCallback9_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ +#define ICorProfilerCallback9_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) -#define ICorProfilerCallback9_ModuleInMemorySymbolsUpdated(This,moduleId) \ +#define ICorProfilerCallback9_ModuleInMemorySymbolsUpdated(This,moduleId) \ ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) ) -#define ICorProfilerCallback9_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \ +#define ICorProfilerCallback9_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \ ( (This)->lpVtbl -> DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) ) -#define ICorProfilerCallback9_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback9_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback9_DynamicMethodUnloaded(This,functionId) \ +#define ICorProfilerCallback9_DynamicMethodUnloaded(This,functionId) \ ( (This)->lpVtbl -> DynamicMethodUnloaded(This,functionId) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback9_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback9_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_corprof_0000_0009 */ @@ -7417,9 +7447,9 @@ EXTERN_C const IID IID_ICorProfilerCallback9; typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0009_0001 { - COR_PRF_CODEGEN_DISABLE_INLINING = 0x1, - COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x2 - } COR_PRF_CODEGEN_FLAGS; + COR_PRF_CODEGEN_DISABLE_INLINING = 0x1, + COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x2 + } COR_PRF_CODEGEN_FLAGS; @@ -7600,7 +7630,7 @@ EXTERN_C const IID IID_ICorProfilerInfo; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfoVtbl { @@ -7820,124 +7850,124 @@ EXTERN_C const IID IID_ICorProfilerInfo; #ifdef COBJMACROS -#define ICorProfilerInfo_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo_AddRef(This) \ +#define ICorProfilerInfo_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo_Release(This) \ +#define ICorProfilerInfo_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo_ForceGC(This) \ +#define ICorProfilerInfo_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo2_INTERFACE_DEFINED__ @@ -8082,7 +8112,7 @@ EXTERN_C const IID IID_ICorProfilerInfo2; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo2Vtbl { @@ -8447,188 +8477,188 @@ EXTERN_C const IID IID_ICorProfilerInfo2; #ifdef COBJMACROS -#define ICorProfilerInfo2_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo2_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo2_AddRef(This) \ +#define ICorProfilerInfo2_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo2_Release(This) \ +#define ICorProfilerInfo2_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo2_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo2_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo2_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo2_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo2_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo2_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo2_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo2_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo2_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo2_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo2_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo2_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo2_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo2_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo2_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo2_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo2_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo2_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo2_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo2_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo2_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo2_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo2_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo2_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo2_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo2_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo2_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo2_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo2_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo2_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo2_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo2_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo2_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo2_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo2_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo2_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo2_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo2_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo2_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo2_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo2_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo2_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo2_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo2_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo2_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo2_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo2_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo2_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo2_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo2_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo2_ForceGC(This) \ +#define ICorProfilerInfo2_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo2_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo2_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo2_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo2_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo2_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo2_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo2_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo2_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo2_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo2_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo2_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo2_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo2_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo2_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo2_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo2_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo2_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo2_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo2_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo2_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo2_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo2_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo2_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo2_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo2_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo2_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo2_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo2_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo2_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo2_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo2_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo2_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo2_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo2_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo2_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo2_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo2_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo2_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo2_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo2_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo2_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo2_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo2_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo2_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo2_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo2_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo2_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo2_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo2_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo2_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo2_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo2_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo2_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo2_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo2_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo2_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo2_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo2_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo3_INTERFACE_DEFINED__ @@ -8729,7 +8759,7 @@ EXTERN_C const IID IID_ICorProfilerInfo3; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo3Vtbl { @@ -9188,231 +9218,231 @@ EXTERN_C const IID IID_ICorProfilerInfo3; #ifdef COBJMACROS -#define ICorProfilerInfo3_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo3_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo3_AddRef(This) \ +#define ICorProfilerInfo3_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo3_Release(This) \ +#define ICorProfilerInfo3_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo3_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo3_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo3_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo3_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo3_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo3_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo3_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo3_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo3_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo3_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo3_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo3_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo3_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo3_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo3_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo3_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo3_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo3_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo3_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo3_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo3_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo3_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo3_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo3_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo3_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo3_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo3_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo3_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo3_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo3_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo3_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo3_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo3_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo3_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo3_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo3_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo3_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo3_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo3_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo3_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo3_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo3_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo3_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo3_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo3_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo3_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo3_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo3_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo3_ForceGC(This) \ +#define ICorProfilerInfo3_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo3_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo3_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo3_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo3_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo3_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo3_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo3_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo3_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo3_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo3_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo3_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo3_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo3_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo3_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo3_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo3_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo3_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo3_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo3_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo3_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo3_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo3_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo3_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo3_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo3_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo3_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo3_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo3_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo3_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo3_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo3_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo3_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo3_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo3_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo3_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo3_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo3_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo3_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo3_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo3_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo3_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo3_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo3_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo3_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo3_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo3_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo3_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo3_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo3_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo3_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo3_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo3_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo3_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo3_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo3_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo3_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo3_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo3_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo3_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo3_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo3_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo3_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo3_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo3_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo3_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo3_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo3_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo3_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo3_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo3_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo3_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo3_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) -#define ICorProfilerInfo3_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo3_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo3_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo3_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo3_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo3_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo3_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo3_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerObjectEnum_INTERFACE_DEFINED__ @@ -9449,7 +9479,7 @@ EXTERN_C const IID IID_ICorProfilerObjectEnum; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerObjectEnumVtbl { @@ -9501,40 +9531,40 @@ EXTERN_C const IID IID_ICorProfilerObjectEnum; #ifdef COBJMACROS -#define ICorProfilerObjectEnum_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerObjectEnum_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerObjectEnum_AddRef(This) \ +#define ICorProfilerObjectEnum_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerObjectEnum_Release(This) \ +#define ICorProfilerObjectEnum_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerObjectEnum_Skip(This,celt) \ +#define ICorProfilerObjectEnum_Skip(This,celt) \ ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorProfilerObjectEnum_Reset(This) \ +#define ICorProfilerObjectEnum_Reset(This) \ ( (This)->lpVtbl -> Reset(This) ) -#define ICorProfilerObjectEnum_Clone(This,ppEnum) \ +#define ICorProfilerObjectEnum_Clone(This,ppEnum) \ ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorProfilerObjectEnum_GetCount(This,pcelt) \ +#define ICorProfilerObjectEnum_GetCount(This,pcelt) \ ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorProfilerObjectEnum_Next(This,celt,objects,pceltFetched) \ +#define ICorProfilerObjectEnum_Next(This,celt,objects,pceltFetched) \ ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerObjectEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerObjectEnum_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerFunctionEnum_INTERFACE_DEFINED__ @@ -9571,7 +9601,7 @@ EXTERN_C const IID IID_ICorProfilerFunctionEnum; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerFunctionEnumVtbl { @@ -9623,40 +9653,40 @@ EXTERN_C const IID IID_ICorProfilerFunctionEnum; #ifdef COBJMACROS -#define ICorProfilerFunctionEnum_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerFunctionEnum_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerFunctionEnum_AddRef(This) \ +#define ICorProfilerFunctionEnum_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerFunctionEnum_Release(This) \ +#define ICorProfilerFunctionEnum_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerFunctionEnum_Skip(This,celt) \ +#define ICorProfilerFunctionEnum_Skip(This,celt) \ ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorProfilerFunctionEnum_Reset(This) \ +#define ICorProfilerFunctionEnum_Reset(This) \ ( (This)->lpVtbl -> Reset(This) ) -#define ICorProfilerFunctionEnum_Clone(This,ppEnum) \ +#define ICorProfilerFunctionEnum_Clone(This,ppEnum) \ ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorProfilerFunctionEnum_GetCount(This,pcelt) \ +#define ICorProfilerFunctionEnum_GetCount(This,pcelt) \ ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorProfilerFunctionEnum_Next(This,celt,ids,pceltFetched) \ +#define ICorProfilerFunctionEnum_Next(This,celt,ids,pceltFetched) \ ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerFunctionEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerFunctionEnum_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerModuleEnum_INTERFACE_DEFINED__ @@ -9693,7 +9723,7 @@ EXTERN_C const IID IID_ICorProfilerModuleEnum; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerModuleEnumVtbl { @@ -9745,40 +9775,40 @@ EXTERN_C const IID IID_ICorProfilerModuleEnum; #ifdef COBJMACROS -#define ICorProfilerModuleEnum_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerModuleEnum_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerModuleEnum_AddRef(This) \ +#define ICorProfilerModuleEnum_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerModuleEnum_Release(This) \ +#define ICorProfilerModuleEnum_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerModuleEnum_Skip(This,celt) \ +#define ICorProfilerModuleEnum_Skip(This,celt) \ ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorProfilerModuleEnum_Reset(This) \ +#define ICorProfilerModuleEnum_Reset(This) \ ( (This)->lpVtbl -> Reset(This) ) -#define ICorProfilerModuleEnum_Clone(This,ppEnum) \ +#define ICorProfilerModuleEnum_Clone(This,ppEnum) \ ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorProfilerModuleEnum_GetCount(This,pcelt) \ +#define ICorProfilerModuleEnum_GetCount(This,pcelt) \ ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorProfilerModuleEnum_Next(This,celt,ids,pceltFetched) \ +#define ICorProfilerModuleEnum_Next(This,celt,ids,pceltFetched) \ ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerModuleEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerModuleEnum_INTERFACE_DEFINED__ */ #ifndef __IMethodMalloc_INTERFACE_DEFINED__ @@ -9802,7 +9832,7 @@ EXTERN_C const IID IID_IMethodMalloc; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct IMethodMallocVtbl { @@ -9837,28 +9867,28 @@ EXTERN_C const IID IID_IMethodMalloc; #ifdef COBJMACROS -#define IMethodMalloc_QueryInterface(This,riid,ppvObject) \ +#define IMethodMalloc_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define IMethodMalloc_AddRef(This) \ +#define IMethodMalloc_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define IMethodMalloc_Release(This) \ +#define IMethodMalloc_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define IMethodMalloc_Alloc(This,cb) \ +#define IMethodMalloc_Alloc(This,cb) \ ( (This)->lpVtbl -> Alloc(This,cb) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __IMethodMalloc_INTERFACE_DEFINED__ */ +#endif /* __IMethodMalloc_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerFunctionControl_INTERFACE_DEFINED__ @@ -9890,7 +9920,7 @@ EXTERN_C const IID IID_ICorProfilerFunctionControl; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerFunctionControlVtbl { @@ -9935,34 +9965,34 @@ EXTERN_C const IID IID_ICorProfilerFunctionControl; #ifdef COBJMACROS -#define ICorProfilerFunctionControl_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerFunctionControl_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerFunctionControl_AddRef(This) \ +#define ICorProfilerFunctionControl_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerFunctionControl_Release(This) \ +#define ICorProfilerFunctionControl_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerFunctionControl_SetCodegenFlags(This,flags) \ +#define ICorProfilerFunctionControl_SetCodegenFlags(This,flags) \ ( (This)->lpVtbl -> SetCodegenFlags(This,flags) ) -#define ICorProfilerFunctionControl_SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader) \ +#define ICorProfilerFunctionControl_SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader) ) -#define ICorProfilerFunctionControl_SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerFunctionControl_SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerFunctionControl_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerFunctionControl_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo4_INTERFACE_DEFINED__ @@ -10031,7 +10061,7 @@ EXTERN_C const IID IID_ICorProfilerInfo4; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo4Vtbl { @@ -10548,262 +10578,262 @@ EXTERN_C const IID IID_ICorProfilerInfo4; #ifdef COBJMACROS -#define ICorProfilerInfo4_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo4_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo4_AddRef(This) \ +#define ICorProfilerInfo4_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo4_Release(This) \ +#define ICorProfilerInfo4_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo4_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo4_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo4_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo4_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo4_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo4_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo4_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo4_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo4_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo4_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo4_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo4_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo4_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo4_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo4_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo4_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo4_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo4_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo4_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo4_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo4_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo4_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo4_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo4_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo4_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo4_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo4_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo4_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo4_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo4_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo4_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo4_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo4_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo4_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo4_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo4_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo4_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo4_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo4_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo4_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo4_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo4_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo4_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo4_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo4_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo4_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo4_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo4_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo4_ForceGC(This) \ +#define ICorProfilerInfo4_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo4_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo4_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo4_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo4_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo4_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo4_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo4_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo4_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo4_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo4_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo4_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo4_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo4_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo4_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo4_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo4_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo4_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo4_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo4_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo4_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo4_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo4_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo4_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo4_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo4_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo4_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo4_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo4_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo4_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo4_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo4_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo4_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo4_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo4_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo4_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo4_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo4_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo4_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo4_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo4_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo4_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo4_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo4_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo4_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo4_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo4_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo4_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo4_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo4_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo4_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo4_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo4_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo4_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo4_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo4_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo4_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo4_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo4_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo4_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo4_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo4_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo4_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo4_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo4_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo4_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo4_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo4_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo4_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo4_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo4_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo4_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo4_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) -#define ICorProfilerInfo4_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo4_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo4_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo4_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo4_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo4_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo4_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo4_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo4_InitializeCurrentThread(This) \ +#define ICorProfilerInfo4_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo4_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo4_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo4_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo4_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo4_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo4_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo4_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo4_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo4_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo4_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo4_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo4_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo4_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo4_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo4_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo4_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo4_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo4_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo5_INTERFACE_DEFINED__ @@ -10832,7 +10862,7 @@ EXTERN_C const IID IID_ICorProfilerInfo5; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo5Vtbl { @@ -11359,269 +11389,269 @@ EXTERN_C const IID IID_ICorProfilerInfo5; #ifdef COBJMACROS -#define ICorProfilerInfo5_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo5_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo5_AddRef(This) \ +#define ICorProfilerInfo5_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo5_Release(This) \ +#define ICorProfilerInfo5_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo5_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo5_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo5_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo5_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo5_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo5_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo5_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo5_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo5_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo5_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo5_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo5_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo5_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo5_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo5_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo5_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo5_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo5_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo5_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo5_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo5_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo5_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo5_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo5_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo5_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo5_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo5_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo5_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo5_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo5_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo5_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo5_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo5_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo5_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo5_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo5_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo5_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo5_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo5_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo5_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo5_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo5_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo5_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo5_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo5_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo5_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo5_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo5_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo5_ForceGC(This) \ +#define ICorProfilerInfo5_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo5_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo5_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo5_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo5_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo5_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo5_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo5_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo5_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo5_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo5_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo5_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo5_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo5_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo5_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo5_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo5_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo5_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo5_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo5_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo5_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo5_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo5_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo5_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo5_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo5_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo5_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo5_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo5_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo5_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo5_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo5_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo5_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo5_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo5_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo5_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo5_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo5_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo5_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo5_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo5_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo5_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo5_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo5_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo5_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo5_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo5_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo5_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo5_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo5_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo5_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo5_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo5_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo5_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo5_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo5_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo5_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo5_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo5_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo5_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo5_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo5_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo5_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo5_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo5_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo5_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo5_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo5_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo5_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo5_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo5_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo5_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo5_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) -#define ICorProfilerInfo5_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo5_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo5_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo5_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo5_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo5_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo5_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo5_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo5_InitializeCurrentThread(This) \ +#define ICorProfilerInfo5_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo5_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo5_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo5_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo5_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo5_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo5_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo5_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo5_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo5_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo5_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo5_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo5_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo5_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo5_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo5_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo5_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) -#define ICorProfilerInfo5_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ +#define ICorProfilerInfo5_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) -#define ICorProfilerInfo5_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ +#define ICorProfilerInfo5_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo5_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo5_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo6_INTERFACE_DEFINED__ @@ -11649,7 +11679,7 @@ EXTERN_C const IID IID_ICorProfilerInfo6; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo6Vtbl { @@ -12184,273 +12214,273 @@ EXTERN_C const IID IID_ICorProfilerInfo6; #ifdef COBJMACROS -#define ICorProfilerInfo6_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo6_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo6_AddRef(This) \ +#define ICorProfilerInfo6_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo6_Release(This) \ +#define ICorProfilerInfo6_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo6_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo6_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo6_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo6_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo6_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo6_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo6_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo6_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo6_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo6_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo6_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo6_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo6_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo6_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo6_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo6_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo6_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo6_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo6_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo6_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo6_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo6_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo6_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo6_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo6_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo6_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo6_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo6_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo6_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo6_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo6_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo6_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo6_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo6_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo6_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo6_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo6_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo6_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo6_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo6_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo6_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo6_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo6_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo6_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo6_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo6_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo6_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo6_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo6_ForceGC(This) \ +#define ICorProfilerInfo6_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo6_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo6_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo6_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo6_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo6_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo6_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo6_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo6_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo6_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo6_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo6_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo6_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo6_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo6_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo6_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo6_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo6_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo6_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo6_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo6_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo6_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo6_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo6_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo6_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo6_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo6_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo6_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo6_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo6_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo6_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo6_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo6_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo6_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo6_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo6_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo6_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo6_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo6_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo6_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo6_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo6_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo6_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo6_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo6_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo6_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo6_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo6_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo6_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo6_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo6_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo6_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo6_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo6_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo6_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo6_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo6_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo6_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo6_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo6_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo6_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo6_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo6_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo6_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo6_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo6_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo6_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo6_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo6_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo6_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo6_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo6_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo6_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) -#define ICorProfilerInfo6_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo6_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo6_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo6_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo6_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo6_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo6_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo6_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo6_InitializeCurrentThread(This) \ +#define ICorProfilerInfo6_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo6_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo6_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo6_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo6_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo6_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo6_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo6_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo6_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo6_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo6_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo6_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo6_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo6_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo6_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo6_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo6_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) -#define ICorProfilerInfo6_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ +#define ICorProfilerInfo6_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) -#define ICorProfilerInfo6_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ +#define ICorProfilerInfo6_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) -#define ICorProfilerInfo6_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ +#define ICorProfilerInfo6_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo6_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo6_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo7_INTERFACE_DEFINED__ @@ -12485,7 +12515,7 @@ EXTERN_C const IID IID_ICorProfilerInfo7; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo7Vtbl { @@ -13037,283 +13067,283 @@ EXTERN_C const IID IID_ICorProfilerInfo7; #ifdef COBJMACROS -#define ICorProfilerInfo7_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo7_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo7_AddRef(This) \ +#define ICorProfilerInfo7_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo7_Release(This) \ +#define ICorProfilerInfo7_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo7_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo7_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo7_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo7_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo7_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo7_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo7_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo7_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo7_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo7_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo7_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo7_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo7_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo7_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo7_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo7_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo7_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo7_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo7_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo7_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo7_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo7_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo7_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo7_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo7_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo7_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo7_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo7_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo7_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo7_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo7_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo7_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo7_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo7_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo7_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo7_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo7_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo7_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo7_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo7_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo7_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo7_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo7_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo7_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo7_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo7_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo7_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo7_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo7_ForceGC(This) \ +#define ICorProfilerInfo7_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo7_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo7_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo7_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo7_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo7_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo7_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo7_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo7_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo7_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo7_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo7_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo7_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo7_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo7_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo7_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo7_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo7_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo7_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo7_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo7_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo7_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo7_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo7_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo7_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo7_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo7_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo7_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo7_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo7_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo7_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo7_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo7_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo7_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo7_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo7_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo7_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo7_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo7_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo7_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo7_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo7_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo7_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo7_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo7_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo7_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo7_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo7_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo7_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo7_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo7_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo7_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo7_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo7_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo7_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo7_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo7_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo7_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo7_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo7_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo7_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo7_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo7_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo7_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo7_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo7_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo7_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo7_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo7_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo7_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo7_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo7_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo7_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) -#define ICorProfilerInfo7_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo7_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo7_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo7_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo7_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo7_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo7_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo7_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo7_InitializeCurrentThread(This) \ +#define ICorProfilerInfo7_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo7_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo7_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo7_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo7_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo7_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo7_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo7_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo7_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo7_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo7_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo7_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo7_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo7_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo7_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo7_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo7_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) -#define ICorProfilerInfo7_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ +#define ICorProfilerInfo7_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) -#define ICorProfilerInfo7_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ +#define ICorProfilerInfo7_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) -#define ICorProfilerInfo7_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ +#define ICorProfilerInfo7_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) -#define ICorProfilerInfo7_ApplyMetaData(This,moduleId) \ +#define ICorProfilerInfo7_ApplyMetaData(This,moduleId) \ ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) ) -#define ICorProfilerInfo7_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ +#define ICorProfilerInfo7_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) ) -#define ICorProfilerInfo7_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ +#define ICorProfilerInfo7_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo7_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo7_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo8_INTERFACE_DEFINED__ @@ -13352,7 +13382,7 @@ EXTERN_C const IID IID_ICorProfilerInfo8; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo8Vtbl { @@ -13925,293 +13955,293 @@ EXTERN_C const IID IID_ICorProfilerInfo8; #ifdef COBJMACROS -#define ICorProfilerInfo8_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo8_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo8_AddRef(This) \ +#define ICorProfilerInfo8_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo8_Release(This) \ +#define ICorProfilerInfo8_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo8_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo8_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo8_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo8_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo8_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo8_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo8_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo8_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo8_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo8_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo8_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo8_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo8_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo8_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo8_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo8_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo8_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo8_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo8_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo8_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo8_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo8_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo8_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo8_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo8_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo8_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo8_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo8_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo8_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo8_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo8_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo8_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo8_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo8_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo8_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo8_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo8_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo8_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo8_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo8_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo8_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo8_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo8_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo8_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo8_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo8_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo8_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo8_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo8_ForceGC(This) \ +#define ICorProfilerInfo8_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo8_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo8_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo8_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo8_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo8_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo8_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo8_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo8_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo8_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo8_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo8_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo8_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo8_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo8_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo8_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo8_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo8_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo8_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo8_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo8_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo8_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo8_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo8_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo8_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo8_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo8_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo8_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo8_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo8_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo8_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo8_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo8_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo8_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo8_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo8_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo8_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo8_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo8_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo8_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo8_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo8_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo8_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo8_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo8_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo8_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo8_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo8_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo8_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo8_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo8_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo8_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo8_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo8_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo8_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo8_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo8_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo8_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo8_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo8_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo8_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo8_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo8_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo8_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo8_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo8_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo8_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo8_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo8_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo8_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo8_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo8_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo8_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) -#define ICorProfilerInfo8_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo8_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo8_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo8_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo8_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo8_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo8_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo8_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo8_InitializeCurrentThread(This) \ +#define ICorProfilerInfo8_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo8_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo8_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo8_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo8_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo8_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo8_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo8_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo8_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo8_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo8_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo8_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo8_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo8_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo8_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo8_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo8_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) -#define ICorProfilerInfo8_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ +#define ICorProfilerInfo8_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) -#define ICorProfilerInfo8_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ +#define ICorProfilerInfo8_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) -#define ICorProfilerInfo8_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ +#define ICorProfilerInfo8_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) -#define ICorProfilerInfo8_ApplyMetaData(This,moduleId) \ +#define ICorProfilerInfo8_ApplyMetaData(This,moduleId) \ ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) ) -#define ICorProfilerInfo8_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ +#define ICorProfilerInfo8_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) ) -#define ICorProfilerInfo8_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ +#define ICorProfilerInfo8_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) ) -#define ICorProfilerInfo8_IsFunctionDynamic(This,functionId,isDynamic) \ +#define ICorProfilerInfo8_IsFunctionDynamic(This,functionId,isDynamic) \ ( (This)->lpVtbl -> IsFunctionDynamic(This,functionId,isDynamic) ) -#define ICorProfilerInfo8_GetFunctionFromIP3(This,ip,functionId,pReJitId) \ +#define ICorProfilerInfo8_GetFunctionFromIP3(This,ip,functionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP3(This,ip,functionId,pReJitId) ) -#define ICorProfilerInfo8_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \ +#define ICorProfilerInfo8_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \ ( (This)->lpVtbl -> GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo8_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo8_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo9_INTERFACE_DEFINED__ @@ -14225,7 +14255,7 @@ EXTERN_C const IID IID_ICorProfilerInfo9; #if defined(__cplusplus) && !defined(CINTERFACE) - MIDL_INTERFACE("008170db-f8cc-4796-9a51-dc8aa0b47012") + MIDL_INTERFACE("008170DB-F8CC-4796-9A51-DC8AA0B47012") ICorProfilerInfo9 : public ICorProfilerInfo8 { public: @@ -15145,198 +15175,1179 @@ EXTERN_C const IID IID_ICorProfilerInfo9; #endif /* __ICorProfilerInfo9_INTERFACE_DEFINED__ */ -#ifndef __ICorProfilerMethodEnum_INTERFACE_DEFINED__ -#define __ICorProfilerMethodEnum_INTERFACE_DEFINED__ +#ifndef __ICorProfilerInfo10_INTERFACE_DEFINED__ +#define __ICorProfilerInfo10_INTERFACE_DEFINED__ -/* interface ICorProfilerMethodEnum */ +/* interface ICorProfilerInfo10 */ /* [local][unique][uuid][object] */ -EXTERN_C const IID IID_ICorProfilerMethodEnum; +EXTERN_C const IID IID_ICorProfilerInfo10; #if defined(__cplusplus) && !defined(CINTERFACE) - MIDL_INTERFACE("FCCEE788-0088-454B-A811-C99F298D1942") - ICorProfilerMethodEnum : public IUnknown + MIDL_INTERFACE("2F1B5152-C869-40C9-AA5F-3ABE026BD720") + ICorProfilerInfo10 : public ICorProfilerInfo9 { public: - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; + virtual HRESULT STDMETHODCALLTYPE EnumerateObjectReferences( + ObjectID objectId, + ObjectReferenceCallback callback, + void *clientData) = 0; - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; + virtual HRESULT STDMETHODCALLTYPE IsFrozenObject( + ObjectID objectId, + BOOL *pbFrozen) = 0; - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ ICorProfilerMethodEnum **ppEnum) = 0; + virtual HRESULT STDMETHODCALLTYPE GetLOHObjectSizeThreshold( + DWORD *pThreshold) = 0; - virtual HRESULT STDMETHODCALLTYPE GetCount( - /* [out] */ ULONG *pcelt) = 0; + virtual HRESULT STDMETHODCALLTYPE RequestReJITWithInliners( + /* [in] */ DWORD dwRejitFlags, + /* [in] */ ULONG cFunctions, + /* [size_is][in] */ ModuleID moduleIds[ ], + /* [size_is][in] */ mdMethodDef methodIds[ ]) = 0; - virtual HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ COR_PRF_METHOD elements[ ], - /* [out] */ ULONG *pceltFetched) = 0; + virtual HRESULT STDMETHODCALLTYPE SuspendRuntime( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE ResumeRuntime( void) = 0; }; -#else /* C style interface */ +#else /* C style interface */ - typedef struct ICorProfilerMethodEnumVtbl + typedef struct ICorProfilerInfo10Vtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICorProfilerMethodEnum * This, + ICorProfilerInfo10 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( - ICorProfilerMethodEnum * This); + ICorProfilerInfo10 * This); ULONG ( STDMETHODCALLTYPE *Release )( - ICorProfilerMethodEnum * This); + ICorProfilerInfo10 * This); - HRESULT ( STDMETHODCALLTYPE *Skip )( - ICorProfilerMethodEnum * This, - /* [in] */ ULONG celt); + HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )( + ICorProfilerInfo10 * This, + /* [in] */ ObjectID objectId, + /* [out] */ ClassID *pClassId); - HRESULT ( STDMETHODCALLTYPE *Reset )( - ICorProfilerMethodEnum * This); + HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId, + /* [in] */ mdTypeDef typeDef, + /* [out] */ ClassID *pClassId); - HRESULT ( STDMETHODCALLTYPE *Clone )( - ICorProfilerMethodEnum * This, - /* [out] */ ICorProfilerMethodEnum **ppEnum); + HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [out] */ LPCBYTE *pStart, + /* [out] */ ULONG *pcSize); - HRESULT ( STDMETHODCALLTYPE *GetCount )( - ICorProfilerMethodEnum * This, - /* [out] */ ULONG *pcelt); + HRESULT ( STDMETHODCALLTYPE *GetEventMask )( + ICorProfilerInfo10 * This, + /* [out] */ DWORD *pdwEvents); - HRESULT ( STDMETHODCALLTYPE *Next )( - ICorProfilerMethodEnum * This, - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ COR_PRF_METHOD elements[ ], - /* [out] */ ULONG *pceltFetched); + HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )( + ICorProfilerInfo10 * This, + /* [in] */ LPCBYTE ip, + /* [out] */ FunctionID *pFunctionId); - END_INTERFACE - } ICorProfilerMethodEnumVtbl; - - interface ICorProfilerMethodEnum - { - CONST_VTBL struct ICorProfilerMethodEnumVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICorProfilerMethodEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICorProfilerMethodEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICorProfilerMethodEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICorProfilerMethodEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) - -#define ICorProfilerMethodEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) - -#define ICorProfilerMethodEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) - -#define ICorProfilerMethodEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) - -#define ICorProfilerMethodEnum_Next(This,celt,elements,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,elements,pceltFetched) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICorProfilerMethodEnum_INTERFACE_DEFINED__ */ - - -#ifndef __ICorProfilerThreadEnum_INTERFACE_DEFINED__ -#define __ICorProfilerThreadEnum_INTERFACE_DEFINED__ - -/* interface ICorProfilerThreadEnum */ -/* [local][unique][uuid][object] */ - - -EXTERN_C const IID IID_ICorProfilerThreadEnum; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("571194f7-25ed-419f-aa8b-7016b3159701") - ICorProfilerThreadEnum : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Skip( - /* [in] */ ULONG celt) = 0; + HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId, + /* [in] */ mdToken token, + /* [out] */ FunctionID *pFunctionId); - virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; + HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )( + ICorProfilerInfo10 * This, + /* [in] */ ThreadID threadId, + /* [out] */ HANDLE *phThread); - virtual HRESULT STDMETHODCALLTYPE Clone( - /* [out] */ ICorProfilerThreadEnum **ppEnum) = 0; + HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( + ICorProfilerInfo10 * This, + /* [in] */ ObjectID objectId, + /* [out] */ ULONG *pcSize); - virtual HRESULT STDMETHODCALLTYPE GetCount( - /* [out] */ ULONG *pcelt) = 0; + HRESULT ( STDMETHODCALLTYPE *IsArrayClass )( + ICorProfilerInfo10 * This, + /* [in] */ ClassID classId, + /* [out] */ CorElementType *pBaseElemType, + /* [out] */ ClassID *pBaseClassId, + /* [out] */ ULONG *pcRank); - virtual HRESULT STDMETHODCALLTYPE Next( - /* [in] */ ULONG celt, - /* [length_is][size_is][out] */ ThreadID ids[ ], - /* [out] */ ULONG *pceltFetched) = 0; + HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )( + ICorProfilerInfo10 * This, + /* [in] */ ThreadID threadId, + /* [out] */ DWORD *pdwWin32ThreadId); - }; - - -#else /* C style interface */ - - typedef struct ICorProfilerThreadEnumVtbl - { - BEGIN_INTERFACE + HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )( + ICorProfilerInfo10 * This, + /* [out] */ ThreadID *pThreadId); - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICorProfilerThreadEnum * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); + HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )( + ICorProfilerInfo10 * This, + /* [in] */ ClassID classId, + /* [out] */ ModuleID *pModuleId, + /* [out] */ mdTypeDef *pTypeDefToken); - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICorProfilerThreadEnum * This); + HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [out] */ ClassID *pClassId, + /* [out] */ ModuleID *pModuleId, + /* [out] */ mdToken *pToken); - ULONG ( STDMETHODCALLTYPE *Release )( - ICorProfilerThreadEnum * This); + HRESULT ( STDMETHODCALLTYPE *SetEventMask )( + ICorProfilerInfo10 * This, + /* [in] */ DWORD dwEvents); - HRESULT ( STDMETHODCALLTYPE *Skip )( - ICorProfilerThreadEnum * This, - /* [in] */ ULONG celt); + HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionEnter *pFuncEnter, + /* [in] */ FunctionLeave *pFuncLeave, + /* [in] */ FunctionTailcall *pFuncTailcall); - HRESULT ( STDMETHODCALLTYPE *Reset )( - ICorProfilerThreadEnum * This); + HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionIDMapper *pFunc); - HRESULT ( STDMETHODCALLTYPE *Clone )( - ICorProfilerThreadEnum * This, - /* [out] */ ICorProfilerThreadEnum **ppEnum); + HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [in] */ REFIID riid, + /* [out] */ IUnknown **ppImport, + /* [out] */ mdToken *pToken); - HRESULT ( STDMETHODCALLTYPE *GetCount )( - ICorProfilerThreadEnum * This, - /* [out] */ ULONG *pcelt); + HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId, + /* [out] */ LPCBYTE *ppBaseLoadAddress, + /* [in] */ ULONG cchName, + /* [out] */ ULONG *pcchName, + /* [annotation][out] */ + _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ], + /* [out] */ AssemblyID *pAssemblyId); - HRESULT ( STDMETHODCALLTYPE *Next )( - ICorProfilerThreadEnum * This, - /* [in] */ ULONG celt, + HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId, + /* [in] */ DWORD dwOpenFlags, + /* [in] */ REFIID riid, + /* [out] */ IUnknown **ppOut); + + HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId, + /* [in] */ mdMethodDef methodId, + /* [out] */ LPCBYTE *ppMethodHeader, + /* [out] */ ULONG *pcbMethodSize); + + HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId, + /* [out] */ IMethodMalloc **ppMalloc); + + HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId, + /* [in] */ mdMethodDef methodid, + /* [in] */ LPCBYTE pbNewILMethodHeader); + + HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )( + ICorProfilerInfo10 * This, + /* [in] */ AppDomainID appDomainId, + /* [in] */ ULONG cchName, + /* [out] */ ULONG *pcchName, + /* [annotation][out] */ + _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ], + /* [out] */ ProcessID *pProcessId); + + HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )( + ICorProfilerInfo10 * This, + /* [in] */ AssemblyID assemblyId, + /* [in] */ ULONG cchName, + /* [out] */ ULONG *pcchName, + /* [annotation][out] */ + _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ], + /* [out] */ AppDomainID *pAppDomainId, + /* [out] */ ModuleID *pModuleId); + + HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId); + + HRESULT ( STDMETHODCALLTYPE *ForceGC )( + ICorProfilerInfo10 * This); + + HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [in] */ BOOL fStartJit, + /* [in] */ ULONG cILMapEntries, + /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )( + ICorProfilerInfo10 * This, + /* [out] */ IUnknown **ppicd); + + HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )( + ICorProfilerInfo10 * This, + /* [out] */ IUnknown **ppicd); + + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + ICorProfilerInfo10 * This, + /* [in] */ ThreadID threadId, + /* [out] */ ContextID *pContextId); + + HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )( + ICorProfilerInfo10 * This, + /* [in] */ BOOL fThisThreadOnly, + /* [out] */ DWORD *pdwProfilerContext); + + HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )( + ICorProfilerInfo10 * This, + /* [in] */ DWORD dwProfilerContext); + + HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [in] */ ULONG32 cMap, + /* [out] */ ULONG32 *pcMap, + /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]); + + HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )( + ICorProfilerInfo10 * This, + /* [in] */ ThreadID thread, + /* [in] */ StackSnapshotCallback *callback, + /* [in] */ ULONG32 infoFlags, + /* [in] */ void *clientData, + /* [size_is][in] */ BYTE context[ ], + /* [in] */ ULONG32 contextSize); + + HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionEnter2 *pFuncEnter, + /* [in] */ FunctionLeave2 *pFuncLeave, + /* [in] */ FunctionTailcall2 *pFuncTailcall); + + HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID funcId, + /* [in] */ COR_PRF_FRAME_INFO frameInfo, + /* [out] */ ClassID *pClassId, + /* [out] */ ModuleID *pModuleId, + /* [out] */ mdToken *pToken, + /* [in] */ ULONG32 cTypeArgs, + /* [out] */ ULONG32 *pcTypeArgs, + /* [out] */ ClassID typeArgs[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetStringLayout )( + ICorProfilerInfo10 * This, + /* [out] */ ULONG *pBufferLengthOffset, + /* [out] */ ULONG *pStringLengthOffset, + /* [out] */ ULONG *pBufferOffset); + + HRESULT ( STDMETHODCALLTYPE *GetClassLayout )( + ICorProfilerInfo10 * This, + /* [in] */ ClassID classID, + /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ], + /* [in] */ ULONG cFieldOffset, + /* [out] */ ULONG *pcFieldOffset, + /* [out] */ ULONG *pulClassSize); + + HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )( + ICorProfilerInfo10 * This, + /* [in] */ ClassID classId, + /* [out] */ ModuleID *pModuleId, + /* [out] */ mdTypeDef *pTypeDefToken, + /* [out] */ ClassID *pParentClassId, + /* [in] */ ULONG32 cNumTypeArgs, + /* [out] */ ULONG32 *pcNumTypeArgs, + /* [out] */ ClassID typeArgs[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionID, + /* [in] */ ULONG32 cCodeInfos, + /* [out] */ ULONG32 *pcCodeInfos, + /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleID, + /* [in] */ mdTypeDef typeDef, + /* [in] */ ULONG32 cTypeArgs, + /* [size_is][in] */ ClassID typeArgs[ ], + /* [out] */ ClassID *pClassID); + + HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleID, + /* [in] */ mdMethodDef funcDef, + /* [in] */ ClassID classId, + /* [in] */ ULONG32 cTypeArgs, + /* [size_is][in] */ ClassID typeArgs[ ], + /* [out] */ FunctionID *pFunctionID); + + HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleID, + /* [out] */ ICorProfilerObjectEnum **ppEnum); + + HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )( + ICorProfilerInfo10 * This, + /* [in] */ ObjectID objectId, + /* [in] */ ULONG32 cDimensions, + /* [size_is][out] */ ULONG32 pDimensionSizes[ ], + /* [size_is][out] */ int pDimensionLowerBounds[ ], + /* [out] */ BYTE **ppData); + + HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )( + ICorProfilerInfo10 * This, + /* [in] */ ClassID classId, + /* [out] */ ULONG32 *pBufferOffset); + + HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )( + ICorProfilerInfo10 * This, + /* [in] */ ThreadID threadId, + /* [out] */ AppDomainID *pAppDomainId); + + HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )( + ICorProfilerInfo10 * This, + /* [in] */ ClassID classId, + /* [in] */ mdFieldDef fieldToken, + /* [out] */ void **ppAddress); + + HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )( + ICorProfilerInfo10 * This, + /* [in] */ ClassID classId, + /* [in] */ mdFieldDef fieldToken, + /* [in] */ AppDomainID appDomainId, + /* [out] */ void **ppAddress); + + HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )( + ICorProfilerInfo10 * This, + /* [in] */ ClassID classId, + /* [in] */ mdFieldDef fieldToken, + /* [in] */ ThreadID threadId, + /* [out] */ void **ppAddress); + + HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )( + ICorProfilerInfo10 * This, + /* [in] */ ClassID classId, + /* [in] */ mdFieldDef fieldToken, + /* [in] */ ContextID contextId, + /* [out] */ void **ppAddress); + + HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )( + ICorProfilerInfo10 * This, + /* [in] */ ClassID classId, + /* [in] */ mdFieldDef fieldToken, + /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo); + + HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )( + ICorProfilerInfo10 * This, + /* [in] */ ULONG cObjectRanges, + /* [out] */ ULONG *pcObjectRanges, + /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )( + ICorProfilerInfo10 * This, + /* [in] */ ObjectID objectId, + /* [out] */ COR_PRF_GC_GENERATION_RANGE *range); + + HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )( + ICorProfilerInfo10 * This, + /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo); + + HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )( + ICorProfilerInfo10 * This, + /* [out] */ ICorProfilerFunctionEnum **ppEnum); + + HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )( + ICorProfilerInfo10 * This, + /* [in] */ DWORD dwExpectedCompletionMilliseconds); + + HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionIDMapper2 *pFunc, + /* [in] */ void *clientData); + + HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )( + ICorProfilerInfo10 * This, + /* [out] */ ULONG *pStringLengthOffset, + /* [out] */ ULONG *pBufferOffset); + + HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionEnter3 *pFuncEnter3, + /* [in] */ FunctionLeave3 *pFuncLeave3, + /* [in] */ FunctionTailcall3 *pFuncTailcall3); + + HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo, + /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo, + /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo); + + HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [in] */ COR_PRF_ELT_INFO eltInfo, + /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo, + /* [out][in] */ ULONG *pcbArgumentInfo, + /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo); + + HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [in] */ COR_PRF_ELT_INFO eltInfo, + /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo, + /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange); + + HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [in] */ COR_PRF_ELT_INFO eltInfo, + /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo); + + HRESULT ( STDMETHODCALLTYPE *EnumModules )( + ICorProfilerInfo10 * This, + /* [out] */ ICorProfilerModuleEnum **ppEnum); + + HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )( + ICorProfilerInfo10 * This, + /* [out] */ USHORT *pClrInstanceId, + /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType, + /* [out] */ USHORT *pMajorVersion, + /* [out] */ USHORT *pMinorVersion, + /* [out] */ USHORT *pBuildNumber, + /* [out] */ USHORT *pQFEVersion, + /* [in] */ ULONG cchVersionString, + /* [out] */ ULONG *pcchVersionString, + /* [annotation][out] */ + _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )( + ICorProfilerInfo10 * This, + /* [in] */ ClassID classId, + /* [in] */ mdFieldDef fieldToken, + /* [in] */ AppDomainID appDomainId, + /* [in] */ ThreadID threadId, + /* [out] */ void **ppAddress); + + HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId, + /* [in] */ ULONG32 cAppDomainIds, + /* [out] */ ULONG32 *pcAppDomainIds, + /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId, + /* [out] */ LPCBYTE *ppBaseLoadAddress, + /* [in] */ ULONG cchName, + /* [out] */ ULONG *pcchName, + /* [annotation][out] */ + _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ], + /* [out] */ AssemblyID *pAssemblyId, + /* [out] */ DWORD *pdwModuleFlags); + + HRESULT ( STDMETHODCALLTYPE *EnumThreads )( + ICorProfilerInfo10 * This, + /* [out] */ ICorProfilerThreadEnum **ppEnum); + + HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )( + ICorProfilerInfo10 * This); + + HRESULT ( STDMETHODCALLTYPE *RequestReJIT )( + ICorProfilerInfo10 * This, + /* [in] */ ULONG cFunctions, + /* [size_is][in] */ ModuleID moduleIds[ ], + /* [size_is][in] */ mdMethodDef methodIds[ ]); + + HRESULT ( STDMETHODCALLTYPE *RequestRevert )( + ICorProfilerInfo10 * This, + /* [in] */ ULONG cFunctions, + /* [size_is][in] */ ModuleID moduleIds[ ], + /* [size_is][in] */ mdMethodDef methodIds[ ], + /* [size_is][out] */ HRESULT status[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionID, + /* [in] */ ReJITID reJitId, + /* [in] */ ULONG32 cCodeInfos, + /* [out] */ ULONG32 *pcCodeInfos, + /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )( + ICorProfilerInfo10 * This, + /* [in] */ LPCBYTE ip, + /* [out] */ FunctionID *pFunctionId, + /* [out] */ ReJITID *pReJitId); + + HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [in] */ ULONG cReJitIds, + /* [out] */ ULONG *pcReJitIds, + /* [length_is][size_is][out] */ ReJITID reJitIds[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [in] */ ReJITID reJitId, + /* [in] */ ULONG32 cMap, + /* [out] */ ULONG32 *pcMap, + /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]); + + HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )( + ICorProfilerInfo10 * This, + /* [out] */ ICorProfilerFunctionEnum **ppEnum); + + HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )( + ICorProfilerInfo10 * This, + /* [in] */ ObjectID objectId, + /* [out] */ SIZE_T *pcSize); + + HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )( + ICorProfilerInfo10 * This, + /* [out] */ DWORD *pdwEventsLow, + /* [out] */ DWORD *pdwEventsHigh); + + HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )( + ICorProfilerInfo10 * This, + /* [in] */ DWORD dwEventsLow, + /* [in] */ DWORD dwEventsHigh); + + HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID inlinersModuleId, + /* [in] */ ModuleID inlineeModuleId, + /* [in] */ mdMethodDef inlineeMethodId, + /* [out] */ BOOL *incompleteData, + /* [out] */ ICorProfilerMethodEnum **ppEnum); + + HRESULT ( STDMETHODCALLTYPE *ApplyMetaData )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId); + + HRESULT ( STDMETHODCALLTYPE *GetInMemorySymbolsLength )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId, + /* [out] */ DWORD *pCountSymbolBytes); + + HRESULT ( STDMETHODCALLTYPE *ReadInMemorySymbols )( + ICorProfilerInfo10 * This, + /* [in] */ ModuleID moduleId, + /* [in] */ DWORD symbolsReadOffset, + /* [out] */ BYTE *pSymbolBytes, + /* [in] */ DWORD countSymbolBytes, + /* [out] */ DWORD *pCountSymbolBytesRead); + + HRESULT ( STDMETHODCALLTYPE *IsFunctionDynamic )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [out] */ BOOL *isDynamic); + + HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP3 )( + ICorProfilerInfo10 * This, + /* [in] */ LPCBYTE ip, + /* [out] */ FunctionID *functionId, + /* [out] */ ReJITID *pReJitId); + + HRESULT ( STDMETHODCALLTYPE *GetDynamicFunctionInfo )( + ICorProfilerInfo10 * This, + /* [in] */ FunctionID functionId, + /* [out] */ ModuleID *moduleId, + /* [out] */ PCCOR_SIGNATURE *ppvSig, + /* [out] */ ULONG *pbSig, + /* [in] */ ULONG cchName, + /* [out] */ ULONG *pcchName, + /* [out] */ WCHAR wszName[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetNativeCodeStartAddresses )( + ICorProfilerInfo10 * This, + FunctionID functionID, + ReJITID reJitId, + ULONG32 cCodeStartAddresses, + ULONG32 *pcCodeStartAddresses, + UINT_PTR codeStartAddresses[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping3 )( + ICorProfilerInfo10 * This, + UINT_PTR pNativeCodeStartAddress, + ULONG32 cMap, + ULONG32 *pcMap, + COR_DEBUG_IL_TO_NATIVE_MAP map[ ]); + + HRESULT ( STDMETHODCALLTYPE *GetCodeInfo4 )( + ICorProfilerInfo10 * This, + UINT_PTR pNativeCodeStartAddress, + ULONG32 cCodeInfos, + ULONG32 *pcCodeInfos, + COR_PRF_CODE_INFO codeInfos[ ]); + + HRESULT ( STDMETHODCALLTYPE *EnumerateObjectReferences )( + ICorProfilerInfo10 * This, + ObjectID objectId, + ObjectReferenceCallback callback, + void *clientData); + + HRESULT ( STDMETHODCALLTYPE *IsFrozenObject )( + ICorProfilerInfo10 * This, + ObjectID objectId, + BOOL *pbFrozen); + + HRESULT ( STDMETHODCALLTYPE *GetLOHObjectSizeThreshold )( + ICorProfilerInfo10 * This, + DWORD *pThreshold); + + HRESULT ( STDMETHODCALLTYPE *RequestReJITWithInliners )( + ICorProfilerInfo10 * This, + /* [in] */ DWORD dwRejitFlags, + /* [in] */ ULONG cFunctions, + /* [size_is][in] */ ModuleID moduleIds[ ], + /* [size_is][in] */ mdMethodDef methodIds[ ]); + + HRESULT ( STDMETHODCALLTYPE *SuspendRuntime )( + ICorProfilerInfo10 * This); + + HRESULT ( STDMETHODCALLTYPE *ResumeRuntime )( + ICorProfilerInfo10 * This); + + END_INTERFACE + } ICorProfilerInfo10Vtbl; + + interface ICorProfilerInfo10 + { + CONST_VTBL struct ICorProfilerInfo10Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ICorProfilerInfo10_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ICorProfilerInfo10_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ICorProfilerInfo10_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ICorProfilerInfo10_GetClassFromObject(This,objectId,pClassId) \ + ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) + +#define ICorProfilerInfo10_GetClassFromToken(This,moduleId,typeDef,pClassId) \ + ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) + +#define ICorProfilerInfo10_GetCodeInfo(This,functionId,pStart,pcSize) \ + ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) + +#define ICorProfilerInfo10_GetEventMask(This,pdwEvents) \ + ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) + +#define ICorProfilerInfo10_GetFunctionFromIP(This,ip,pFunctionId) \ + ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) + +#define ICorProfilerInfo10_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ + ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) + +#define ICorProfilerInfo10_GetHandleFromThread(This,threadId,phThread) \ + ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) + +#define ICorProfilerInfo10_GetObjectSize(This,objectId,pcSize) \ + ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) + +#define ICorProfilerInfo10_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ + ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) + +#define ICorProfilerInfo10_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ + ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) + +#define ICorProfilerInfo10_GetCurrentThreadID(This,pThreadId) \ + ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) + +#define ICorProfilerInfo10_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ + ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) + +#define ICorProfilerInfo10_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ + ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) + +#define ICorProfilerInfo10_SetEventMask(This,dwEvents) \ + ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) + +#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ + ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) + +#define ICorProfilerInfo10_SetFunctionIDMapper(This,pFunc) \ + ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) + +#define ICorProfilerInfo10_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ + ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) + +#define ICorProfilerInfo10_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ + ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) + +#define ICorProfilerInfo10_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ + ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) + +#define ICorProfilerInfo10_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ + ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) + +#define ICorProfilerInfo10_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ + ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) + +#define ICorProfilerInfo10_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ + ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) + +#define ICorProfilerInfo10_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ + ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) + +#define ICorProfilerInfo10_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ + ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) + +#define ICorProfilerInfo10_SetFunctionReJIT(This,functionId) \ + ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) + +#define ICorProfilerInfo10_ForceGC(This) \ + ( (This)->lpVtbl -> ForceGC(This) ) + +#define ICorProfilerInfo10_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ + ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) + +#define ICorProfilerInfo10_GetInprocInspectionInterface(This,ppicd) \ + ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) + +#define ICorProfilerInfo10_GetInprocInspectionIThisThread(This,ppicd) \ + ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) + +#define ICorProfilerInfo10_GetThreadContext(This,threadId,pContextId) \ + ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) + +#define ICorProfilerInfo10_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ + ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) + +#define ICorProfilerInfo10_EndInprocDebugging(This,dwProfilerContext) \ + ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) + +#define ICorProfilerInfo10_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ + ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) + + +#define ICorProfilerInfo10_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ + ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) + +#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ + ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) + +#define ICorProfilerInfo10_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ + ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) + +#define ICorProfilerInfo10_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ + ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) + +#define ICorProfilerInfo10_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ + ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) + +#define ICorProfilerInfo10_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ + ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) + +#define ICorProfilerInfo10_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ + ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) + +#define ICorProfilerInfo10_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ + ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) + +#define ICorProfilerInfo10_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ + ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) + +#define ICorProfilerInfo10_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ + ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) + +#define ICorProfilerInfo10_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ + ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) + +#define ICorProfilerInfo10_GetBoxClassLayout(This,classId,pBufferOffset) \ + ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) + +#define ICorProfilerInfo10_GetThreadAppDomain(This,threadId,pAppDomainId) \ + ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) + +#define ICorProfilerInfo10_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ + ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) + +#define ICorProfilerInfo10_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ + ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) + +#define ICorProfilerInfo10_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ + ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) + +#define ICorProfilerInfo10_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ + ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) + +#define ICorProfilerInfo10_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ + ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) + +#define ICorProfilerInfo10_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ + ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) + +#define ICorProfilerInfo10_GetObjectGeneration(This,objectId,range) \ + ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) + +#define ICorProfilerInfo10_GetNotifiedExceptionClauseInfo(This,pinfo) \ + ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) + + +#define ICorProfilerInfo10_EnumJITedFunctions(This,ppEnum) \ + ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) + +#define ICorProfilerInfo10_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ + ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) + +#define ICorProfilerInfo10_SetFunctionIDMapper2(This,pFunc,clientData) \ + ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) + +#define ICorProfilerInfo10_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ + ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) + +#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ + ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) + +#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ + ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) + +#define ICorProfilerInfo10_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ + ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) + +#define ICorProfilerInfo10_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ + ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) + +#define ICorProfilerInfo10_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ + ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) + +#define ICorProfilerInfo10_EnumModules(This,ppEnum) \ + ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) + +#define ICorProfilerInfo10_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ + ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) + +#define ICorProfilerInfo10_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ + ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) + +#define ICorProfilerInfo10_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ + ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) + +#define ICorProfilerInfo10_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ + ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) + + +#define ICorProfilerInfo10_EnumThreads(This,ppEnum) \ + ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) + +#define ICorProfilerInfo10_InitializeCurrentThread(This) \ + ( (This)->lpVtbl -> InitializeCurrentThread(This) ) + +#define ICorProfilerInfo10_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ + ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) + +#define ICorProfilerInfo10_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ + ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) + +#define ICorProfilerInfo10_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ + ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) + +#define ICorProfilerInfo10_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ + ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) + +#define ICorProfilerInfo10_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ + ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) + +#define ICorProfilerInfo10_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ + ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) + +#define ICorProfilerInfo10_EnumJITedFunctions2(This,ppEnum) \ + ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) + +#define ICorProfilerInfo10_GetObjectSize2(This,objectId,pcSize) \ + ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) + + +#define ICorProfilerInfo10_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ + ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) + +#define ICorProfilerInfo10_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ + ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) + + +#define ICorProfilerInfo10_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ + ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) + + +#define ICorProfilerInfo10_ApplyMetaData(This,moduleId) \ + ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) ) + +#define ICorProfilerInfo10_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ + ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) ) + +#define ICorProfilerInfo10_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ + ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) ) + + +#define ICorProfilerInfo10_IsFunctionDynamic(This,functionId,isDynamic) \ + ( (This)->lpVtbl -> IsFunctionDynamic(This,functionId,isDynamic) ) + +#define ICorProfilerInfo10_GetFunctionFromIP3(This,ip,functionId,pReJitId) \ + ( (This)->lpVtbl -> GetFunctionFromIP3(This,ip,functionId,pReJitId) ) + +#define ICorProfilerInfo10_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \ + ( (This)->lpVtbl -> GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) ) + + +#define ICorProfilerInfo10_GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) \ + ( (This)->lpVtbl -> GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) ) + +#define ICorProfilerInfo10_GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) \ + ( (This)->lpVtbl -> GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) ) + +#define ICorProfilerInfo10_GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) \ + ( (This)->lpVtbl -> GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) ) + + +#define ICorProfilerInfo10_EnumerateObjectReferences(This,objectId,callback,clientData) \ + ( (This)->lpVtbl -> EnumerateObjectReferences(This,objectId,callback,clientData) ) + +#define ICorProfilerInfo10_IsFrozenObject(This,objectId,pbFrozen) \ + ( (This)->lpVtbl -> IsFrozenObject(This,objectId,pbFrozen) ) + +#define ICorProfilerInfo10_GetLOHObjectSizeThreshold(This,pThreshold) \ + ( (This)->lpVtbl -> GetLOHObjectSizeThreshold(This,pThreshold) ) + +#define ICorProfilerInfo10_RequestReJITWithInliners(This,dwRejitFlags,cFunctions,moduleIds,methodIds) \ + ( (This)->lpVtbl -> RequestReJITWithInliners(This,dwRejitFlags,cFunctions,moduleIds,methodIds) ) + +#define ICorProfilerInfo10_SuspendRuntime(This) \ + ( (This)->lpVtbl -> SuspendRuntime(This) ) + +#define ICorProfilerInfo10_ResumeRuntime(This) \ + ( (This)->lpVtbl -> ResumeRuntime(This) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ICorProfilerInfo10_INTERFACE_DEFINED__ */ + + +#ifndef __ICorProfilerMethodEnum_INTERFACE_DEFINED__ +#define __ICorProfilerMethodEnum_INTERFACE_DEFINED__ + +/* interface ICorProfilerMethodEnum */ +/* [local][unique][uuid][object] */ + + +EXTERN_C const IID IID_ICorProfilerMethodEnum; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("FCCEE788-0088-454B-A811-C99F298D1942") + ICorProfilerMethodEnum : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE Skip( + /* [in] */ ULONG celt) = 0; + + virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + /* [out] */ ICorProfilerMethodEnum **ppEnum) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCount( + /* [out] */ ULONG *pcelt) = 0; + + virtual HRESULT STDMETHODCALLTYPE Next( + /* [in] */ ULONG celt, + /* [length_is][size_is][out] */ COR_PRF_METHOD elements[ ], + /* [out] */ ULONG *pceltFetched) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ICorProfilerMethodEnumVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ICorProfilerMethodEnum * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ICorProfilerMethodEnum * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ICorProfilerMethodEnum * This); + + HRESULT ( STDMETHODCALLTYPE *Skip )( + ICorProfilerMethodEnum * This, + /* [in] */ ULONG celt); + + HRESULT ( STDMETHODCALLTYPE *Reset )( + ICorProfilerMethodEnum * This); + + HRESULT ( STDMETHODCALLTYPE *Clone )( + ICorProfilerMethodEnum * This, + /* [out] */ ICorProfilerMethodEnum **ppEnum); + + HRESULT ( STDMETHODCALLTYPE *GetCount )( + ICorProfilerMethodEnum * This, + /* [out] */ ULONG *pcelt); + + HRESULT ( STDMETHODCALLTYPE *Next )( + ICorProfilerMethodEnum * This, + /* [in] */ ULONG celt, + /* [length_is][size_is][out] */ COR_PRF_METHOD elements[ ], + /* [out] */ ULONG *pceltFetched); + + END_INTERFACE + } ICorProfilerMethodEnumVtbl; + + interface ICorProfilerMethodEnum + { + CONST_VTBL struct ICorProfilerMethodEnumVtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ICorProfilerMethodEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ICorProfilerMethodEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ICorProfilerMethodEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ICorProfilerMethodEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) + +#define ICorProfilerMethodEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) + +#define ICorProfilerMethodEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) + +#define ICorProfilerMethodEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) + +#define ICorProfilerMethodEnum_Next(This,celt,elements,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,elements,pceltFetched) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ICorProfilerMethodEnum_INTERFACE_DEFINED__ */ + + +#ifndef __ICorProfilerThreadEnum_INTERFACE_DEFINED__ +#define __ICorProfilerThreadEnum_INTERFACE_DEFINED__ + +/* interface ICorProfilerThreadEnum */ +/* [local][unique][uuid][object] */ + + +EXTERN_C const IID IID_ICorProfilerThreadEnum; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("571194f7-25ed-419f-aa8b-7016b3159701") + ICorProfilerThreadEnum : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE Skip( + /* [in] */ ULONG celt) = 0; + + virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE Clone( + /* [out] */ ICorProfilerThreadEnum **ppEnum) = 0; + + virtual HRESULT STDMETHODCALLTYPE GetCount( + /* [out] */ ULONG *pcelt) = 0; + + virtual HRESULT STDMETHODCALLTYPE Next( + /* [in] */ ULONG celt, + /* [length_is][size_is][out] */ ThreadID ids[ ], + /* [out] */ ULONG *pceltFetched) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ICorProfilerThreadEnumVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ICorProfilerThreadEnum * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG ( STDMETHODCALLTYPE *AddRef )( + ICorProfilerThreadEnum * This); + + ULONG ( STDMETHODCALLTYPE *Release )( + ICorProfilerThreadEnum * This); + + HRESULT ( STDMETHODCALLTYPE *Skip )( + ICorProfilerThreadEnum * This, + /* [in] */ ULONG celt); + + HRESULT ( STDMETHODCALLTYPE *Reset )( + ICorProfilerThreadEnum * This); + + HRESULT ( STDMETHODCALLTYPE *Clone )( + ICorProfilerThreadEnum * This, + /* [out] */ ICorProfilerThreadEnum **ppEnum); + + HRESULT ( STDMETHODCALLTYPE *GetCount )( + ICorProfilerThreadEnum * This, + /* [out] */ ULONG *pcelt); + + HRESULT ( STDMETHODCALLTYPE *Next )( + ICorProfilerThreadEnum * This, + /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ThreadID ids[ ], /* [out] */ ULONG *pceltFetched); @@ -15353,40 +16364,40 @@ EXTERN_C const IID IID_ICorProfilerThreadEnum; #ifdef COBJMACROS -#define ICorProfilerThreadEnum_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerThreadEnum_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerThreadEnum_AddRef(This) \ +#define ICorProfilerThreadEnum_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerThreadEnum_Release(This) \ +#define ICorProfilerThreadEnum_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerThreadEnum_Skip(This,celt) \ +#define ICorProfilerThreadEnum_Skip(This,celt) \ ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorProfilerThreadEnum_Reset(This) \ +#define ICorProfilerThreadEnum_Reset(This) \ ( (This)->lpVtbl -> Reset(This) ) -#define ICorProfilerThreadEnum_Clone(This,ppEnum) \ +#define ICorProfilerThreadEnum_Clone(This,ppEnum) \ ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorProfilerThreadEnum_GetCount(This,pcelt) \ +#define ICorProfilerThreadEnum_GetCount(This,pcelt) \ ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorProfilerThreadEnum_Next(This,celt,ids,pceltFetched) \ +#define ICorProfilerThreadEnum_Next(This,celt,ids,pceltFetched) \ ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerThreadEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerThreadEnum_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__ @@ -15410,7 +16421,7 @@ EXTERN_C const IID IID_ICorProfilerAssemblyReferenceProvider; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerAssemblyReferenceProviderVtbl { @@ -15445,28 +16456,28 @@ EXTERN_C const IID IID_ICorProfilerAssemblyReferenceProvider; #ifdef COBJMACROS -#define ICorProfilerAssemblyReferenceProvider_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerAssemblyReferenceProvider_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerAssemblyReferenceProvider_AddRef(This) \ +#define ICorProfilerAssemblyReferenceProvider_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerAssemblyReferenceProvider_Release(This) \ +#define ICorProfilerAssemblyReferenceProvider_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerAssemblyReferenceProvider_AddAssemblyReference(This,pAssemblyRefInfo) \ +#define ICorProfilerAssemblyReferenceProvider_AddAssemblyReference(This,pAssemblyRefInfo) \ ( (This)->lpVtbl -> AddAssemblyReference(This,pAssemblyRefInfo) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__ */ /* Additional Prototypes for ALL interfaces */ diff --git a/lib/coreclr/src/pal/prebuilt/inc/fxver.h b/lib/coreclr/src/pal/prebuilt/inc/fxver.h index 7cb0cae0f42f..95ccbc63352c 100644 --- a/lib/coreclr/src/pal/prebuilt/inc/fxver.h +++ b/lib/coreclr/src/pal/prebuilt/inc/fxver.h @@ -96,11 +96,13 @@ #define EXPORT_TAG -#if OFFICIAL_BUILD +// Not setting the private build flag until +// official builds can be detected from native projects +//#if OFFICIAL_BUILD #define VER_PRIVATE 0 -#else -#define VER_PRIVATE VS_FF_PRIVATEBUILD -#endif +//#else +//#define VER_PRIVATE VS_FF_PRIVATEBUILD +//#endif #define VER_SPECIALBUILD 0 @@ -126,8 +128,6 @@ #define VER_COMMENTS_STR "Flavor=" QUOTE_MACRO(URTBLDENV_FRIENDLY) #endif -#define VER_PRIVATEBUILD_STR QUOTE_MACRO(FX_VER_PRIVATEBUILD_STR) - #if defined(__BUILDMACHINE__) #if defined(__BUILDDATE__) #define B2(x,y) " (" #x "." #y ")" diff --git a/lib/coreclr/src/pal/prebuilt/inc/fxver.rc b/lib/coreclr/src/pal/prebuilt/inc/fxver.rc index a3410413094d..ab037e78de7d 100644 --- a/lib/coreclr/src/pal/prebuilt/inc/fxver.rc +++ b/lib/coreclr/src/pal/prebuilt/inc/fxver.rc @@ -62,9 +62,6 @@ BEGIN VALUE "OleSelfRegister", "\0" #endif VALUE "Comments", VER_COMMENTS_STR -#if VER_PRIVATE - VALUE "PrivateBuild", VER_PRIVATEBUILD_STR -#endif #ifdef VER_EXTRA_VALUES VER_EXTRA_VALUES #endif @@ -87,9 +84,6 @@ BEGIN VALUE "OleSelfRegister", "\0" #endif VALUE "Comments", VER_COMMENTS_STR -#if VER_PRIVATE - VALUE "PrivateBuild", VER_PRIVATEBUILD_STR -#endif #ifdef VER_EXTRA_VALUES VER_EXTRA_VALUES #endif diff --git a/lib/coreclr/src/pal/prebuilt/inc/gchost.h b/lib/coreclr/src/pal/prebuilt/inc/gchost.h deleted file mode 100644 index c9e4fffa18f2..000000000000 --- a/lib/coreclr/src/pal/prebuilt/inc/gchost.h +++ /dev/null @@ -1,166 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0603 */ -/* @@MIDL_FILE_HEADING( ) */ - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ - -#ifndef COM_NO_WINDOWS_H -#include "windows.h" -#include "ole2.h" -#endif /*COM_NO_WINDOWS_H*/ - -#ifndef __gchost_h__ -#define __gchost_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef __IDummyDoNotUse_FWD_DEFINED__ -#define __IDummyDoNotUse_FWD_DEFINED__ -typedef interface IDummyDoNotUse IDummyDoNotUse; - -#endif /* __IDummyDoNotUse_FWD_DEFINED__ */ - - -/* header files for imported files */ -#include "unknwn.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_gchost_0000_0000 */ -/* [local] */ - -typedef struct _COR_GC_STATS - { - ULONG Flags; - SIZE_T ExplicitGCCount; - SIZE_T GenCollectionsTaken[ 3 ]; - SIZE_T CommittedKBytes; - SIZE_T ReservedKBytes; - SIZE_T Gen0HeapSizeKBytes; - SIZE_T Gen1HeapSizeKBytes; - SIZE_T Gen2HeapSizeKBytes; - SIZE_T LargeObjectHeapSizeKBytes; - SIZE_T KBytesPromotedFromGen0; - SIZE_T KBytesPromotedFromGen1; - } COR_GC_STATS; - -/* - * WARNING - This is a dummy interface that should never be used. - * The code is written this way because Midl requires a CoClass, Interface, etc... that generates - * a guid. Removing the IGCHost interface removes the only guid - * This option was selected because ifdefs are not simple to implement for excluding files in SOURCES -*/ - - -extern RPC_IF_HANDLE __MIDL_itf_gchost_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_gchost_0000_0000_v0_0_s_ifspec; - -#ifndef __IDummyDoNotUse_INTERFACE_DEFINED__ -#define __IDummyDoNotUse_INTERFACE_DEFINED__ - -/* interface IDummyDoNotUse */ -/* [local][unique][uuid][object] */ - - -EXTERN_C const IID IID_IDummyDoNotUse; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F9423916-2A35-4f03-9EE9-DDAFA3C8AEE0") - IDummyDoNotUse : public IUnknown - { - public: - }; - - -#else /* C style interface */ - - typedef struct IDummyDoNotUseVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDummyDoNotUse * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDummyDoNotUse * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDummyDoNotUse * This); - - END_INTERFACE - } IDummyDoNotUseVtbl; - - interface IDummyDoNotUse - { - CONST_VTBL struct IDummyDoNotUseVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDummyDoNotUse_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDummyDoNotUse_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDummyDoNotUse_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDummyDoNotUse_INTERFACE_DEFINED__ */ - - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/lib/coreclr/src/pal/prebuilt/inc/metahost.h b/lib/coreclr/src/pal/prebuilt/inc/metahost.h index a8638683bc05..aae25d70db1b 100644 --- a/lib/coreclr/src/pal/prebuilt/inc/metahost.h +++ b/lib/coreclr/src/pal/prebuilt/inc/metahost.h @@ -6,7 +6,7 @@ /* File created by MIDL compiler version 8.01.0622 */ /* at Mon Jan 18 19:14:07 2038 */ -/* Compiler settings for C:/ssd/coreclr/src/inc/metahost.idl: +/* Compiler settings for metahost.idl: Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data @@ -52,20 +52,6 @@ typedef interface ICLRMetaHost ICLRMetaHost; #endif /* __ICLRMetaHost_FWD_DEFINED__ */ -#ifndef __ICLRMetaHostPolicy_FWD_DEFINED__ -#define __ICLRMetaHostPolicy_FWD_DEFINED__ -typedef interface ICLRMetaHostPolicy ICLRMetaHostPolicy; - -#endif /* __ICLRMetaHostPolicy_FWD_DEFINED__ */ - - -#ifndef __ICLRProfiling_FWD_DEFINED__ -#define __ICLRProfiling_FWD_DEFINED__ -typedef interface ICLRProfiling ICLRProfiling; - -#endif /* __ICLRProfiling_FWD_DEFINED__ */ - - #ifndef __ICLRDebuggingLibraryProvider_FWD_DEFINED__ #define __ICLRDebuggingLibraryProvider_FWD_DEFINED__ typedef interface ICLRDebuggingLibraryProvider ICLRDebuggingLibraryProvider; @@ -94,76 +80,6 @@ typedef interface ICLRRuntimeInfo ICLRRuntimeInfo; #endif /* __ICLRRuntimeInfo_FWD_DEFINED__ */ -#ifndef __ICLRStrongName_FWD_DEFINED__ -#define __ICLRStrongName_FWD_DEFINED__ -typedef interface ICLRStrongName ICLRStrongName; - -#endif /* __ICLRStrongName_FWD_DEFINED__ */ - - -#ifndef __ICLRStrongName2_FWD_DEFINED__ -#define __ICLRStrongName2_FWD_DEFINED__ -typedef interface ICLRStrongName2 ICLRStrongName2; - -#endif /* __ICLRStrongName2_FWD_DEFINED__ */ - - -#ifndef __ICLRStrongName3_FWD_DEFINED__ -#define __ICLRStrongName3_FWD_DEFINED__ -typedef interface ICLRStrongName3 ICLRStrongName3; - -#endif /* __ICLRStrongName3_FWD_DEFINED__ */ - - -#ifndef __ICLRMetaHost_FWD_DEFINED__ -#define __ICLRMetaHost_FWD_DEFINED__ -typedef interface ICLRMetaHost ICLRMetaHost; - -#endif /* __ICLRMetaHost_FWD_DEFINED__ */ - - -#ifndef __ICLRMetaHostPolicy_FWD_DEFINED__ -#define __ICLRMetaHostPolicy_FWD_DEFINED__ -typedef interface ICLRMetaHostPolicy ICLRMetaHostPolicy; - -#endif /* __ICLRMetaHostPolicy_FWD_DEFINED__ */ - - -#ifndef __ICLRProfiling_FWD_DEFINED__ -#define __ICLRProfiling_FWD_DEFINED__ -typedef interface ICLRProfiling ICLRProfiling; - -#endif /* __ICLRProfiling_FWD_DEFINED__ */ - - -#ifndef __ICLRDebuggingLibraryProvider_FWD_DEFINED__ -#define __ICLRDebuggingLibraryProvider_FWD_DEFINED__ -typedef interface ICLRDebuggingLibraryProvider ICLRDebuggingLibraryProvider; - -#endif /* __ICLRDebuggingLibraryProvider_FWD_DEFINED__ */ - - -#ifndef __ICLRDebugging_FWD_DEFINED__ -#define __ICLRDebugging_FWD_DEFINED__ -typedef interface ICLRDebugging ICLRDebugging; - -#endif /* __ICLRDebugging_FWD_DEFINED__ */ - - -#ifndef __ICLRRuntimeInfo_FWD_DEFINED__ -#define __ICLRRuntimeInfo_FWD_DEFINED__ -typedef interface ICLRRuntimeInfo ICLRRuntimeInfo; - -#endif /* __ICLRRuntimeInfo_FWD_DEFINED__ */ - - -#ifndef __ICLRStrongName_FWD_DEFINED__ -#define __ICLRStrongName_FWD_DEFINED__ -typedef interface ICLRStrongName ICLRStrongName; - -#endif /* __ICLRStrongName_FWD_DEFINED__ */ - - /* header files for imported files */ #include "unknwn.h" #include "oaidl.h" @@ -179,34 +95,14 @@ extern "C"{ /* [local] */ #include -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) STDAPI CLRCreateInstance(REFCLSID clsid, REFIID riid, /*iid_is(riid)*/ LPVOID *ppInterface); -EXTERN_GUID(CLSID_CLRStrongName, 0xB79B0ACD, 0xF5CD, 0x409b, 0xB5, 0xA5, 0xA1, 0x62, 0x44, 0x61, 0x0B, 0x92); EXTERN_GUID(IID_ICLRMetaHost, 0xD332DB9E, 0xB9B3, 0x4125, 0x82, 0x07, 0xA1, 0x48, 0x84, 0xF5, 0x32, 0x16); EXTERN_GUID(CLSID_CLRMetaHost, 0x9280188d, 0xe8e, 0x4867, 0xb3, 0xc, 0x7f, 0xa8, 0x38, 0x84, 0xe8, 0xde); -EXTERN_GUID(IID_ICLRMetaHostPolicy, 0xE2190695, 0x77B2, 0x492e, 0x8E, 0x14, 0xC4, 0xB3, 0xA7, 0xFD, 0xD5, 0x93); -EXTERN_GUID(CLSID_CLRMetaHostPolicy, 0x2ebcd49a, 0x1b47, 0x4a61, 0xb1, 0x3a, 0x4a, 0x3, 0x70, 0x1e, 0x59, 0x4b); EXTERN_GUID(IID_ICLRDebugging, 0xd28f3c5a, 0x9634, 0x4206, 0xa5, 0x9, 0x47, 0x75, 0x52, 0xee, 0xfb, 0x10); EXTERN_GUID(CLSID_CLRDebugging, 0xbacc578d, 0xfbdd, 0x48a4, 0x96, 0x9f, 0x2, 0xd9, 0x32, 0xb7, 0x46, 0x34); EXTERN_GUID(IID_ICLRRuntimeInfo, 0xBD39D1D2, 0xBA2F, 0x486a, 0x89, 0xB0, 0xB4, 0xB0, 0xCB, 0x46, 0x68, 0x91); -EXTERN_GUID(IID_ICLRStrongName, 0x9FD93CCF, 0x3280, 0x4391, 0xB3, 0xA9, 0x96, 0xE1, 0xCD, 0xE7, 0x7C, 0x8D); -EXTERN_GUID(IID_ICLRStrongName2, 0xC22ED5C5, 0x4B59, 0x4975, 0x90, 0xEB, 0x85, 0xEA, 0x55, 0xC0, 0x06, 0x9B); -EXTERN_GUID(IID_ICLRStrongName3, 0x22c7089b, 0xbbd3, 0x414a, 0xb6, 0x98, 0x21, 0x0f, 0x26, 0x3f, 0x1f, 0xed); -EXTERN_GUID(CLSID_CLRDebuggingLegacy, 0xDF8395B5, 0xA4BA, 0x450b, 0xA7, 0x7C, 0xA9, 0xA4, 0x77, 0x62, 0xC5, 0x20); -EXTERN_GUID(CLSID_CLRProfiling, 0xbd097ed8, 0x733e, 0x43fe, 0x8e, 0xd7, 0xa9, 0x5f, 0xf9, 0xa8, 0x44, 0x8c); -EXTERN_GUID(IID_ICLRProfiling, 0xb349abe3, 0xb56f, 0x4689, 0xbf, 0xcd, 0x76, 0xbf, 0x39, 0xd8, 0x88, 0xea); EXTERN_GUID(IID_ICLRDebuggingLibraryProvider, 0x3151c08d, 0x4d09, 0x4f9b, 0x88, 0x38, 0x28, 0x80, 0xbf, 0x18, 0xfe, 0x51); EXTERN_GUID(IID_ICLRDebuggingLibraryProvider2, 0xE04E2FF1, 0xDCFD, 0x45D5, 0xBC, 0xD1, 0x16, 0xFF, 0xF2, 0xFA, 0xF7, 0xBA); -typedef HRESULT ( __stdcall *CLRCreateInstanceFnPtr )( - REFCLSID clsid, - REFIID riid, - LPVOID *ppInterface); - -typedef HRESULT ( __stdcall *CreateInterfaceFnPtr )( - REFCLSID clsid, - REFIID riid, - LPVOID *ppInterface); - typedef HRESULT ( __stdcall *CallbackThreadSetFnPtr )( void); @@ -379,227 +275,6 @@ EXTERN_C const IID IID_ICLRMetaHost; /* interface __MIDL_itf_metahost_0000_0001 */ /* [local] */ -typedef /* [public][public] */ -enum __MIDL___MIDL_itf_metahost_0000_0001_0001 - { - METAHOST_POLICY_HIGHCOMPAT = 0, - METAHOST_POLICY_APPLY_UPGRADE_POLICY = 0x8, - METAHOST_POLICY_EMULATE_EXE_LAUNCH = 0x10, - METAHOST_POLICY_SHOW_ERROR_DIALOG = 0x20, - METAHOST_POLICY_USE_PROCESS_IMAGE_PATH = 0x40, - METAHOST_POLICY_ENSURE_SKU_SUPPORTED = 0x80, - METAHOST_POLICY_IGNORE_ERROR_MODE = 0x1000 - } METAHOST_POLICY_FLAGS; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_metahost_0000_0001_0002 - { - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_UNSET = 0, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_TRUE = 0x1, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_FALSE = 0x2, - METAHOST_CONFIG_FLAGS_LEGACY_V2_ACTIVATION_POLICY_MASK = 0x3 - } METAHOST_CONFIG_FLAGS; - - - -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0001_v0_0_s_ifspec; - -#ifndef __ICLRMetaHostPolicy_INTERFACE_DEFINED__ -#define __ICLRMetaHostPolicy_INTERFACE_DEFINED__ - -/* interface ICLRMetaHostPolicy */ -/* [object][local][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRMetaHostPolicy; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("E2190695-77B2-492e-8E14-C4B3A7FDD593") - ICLRMetaHostPolicy : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetRequestedRuntime( - /* [in] */ METAHOST_POLICY_FLAGS dwPolicyFlags, - /* [in] */ LPCWSTR pwzBinary, - /* [in] */ IStream *pCfgStream, - /* [annotation][size_is][out][in] */ - _Inout_updates_all_opt_(*pcchVersion) LPWSTR pwzVersion, - /* [out][in] */ DWORD *pcchVersion, - /* [annotation][size_is][out] */ - _Out_writes_all_opt_(*pcchImageVersion) LPWSTR pwzImageVersion, - /* [out][in] */ DWORD *pcchImageVersion, - /* [out] */ DWORD *pdwConfigFlags, - /* [in] */ REFIID riid, - /* [retval][iid_is][out] */ LPVOID *ppRuntime) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRMetaHostPolicyVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRMetaHostPolicy * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRMetaHostPolicy * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRMetaHostPolicy * This); - - HRESULT ( STDMETHODCALLTYPE *GetRequestedRuntime )( - ICLRMetaHostPolicy * This, - /* [in] */ METAHOST_POLICY_FLAGS dwPolicyFlags, - /* [in] */ LPCWSTR pwzBinary, - /* [in] */ IStream *pCfgStream, - /* [annotation][size_is][out][in] */ - _Inout_updates_all_opt_(*pcchVersion) LPWSTR pwzVersion, - /* [out][in] */ DWORD *pcchVersion, - /* [annotation][size_is][out] */ - _Out_writes_all_opt_(*pcchImageVersion) LPWSTR pwzImageVersion, - /* [out][in] */ DWORD *pcchImageVersion, - /* [out] */ DWORD *pdwConfigFlags, - /* [in] */ REFIID riid, - /* [retval][iid_is][out] */ LPVOID *ppRuntime); - - END_INTERFACE - } ICLRMetaHostPolicyVtbl; - - interface ICLRMetaHostPolicy - { - CONST_VTBL struct ICLRMetaHostPolicyVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRMetaHostPolicy_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRMetaHostPolicy_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRMetaHostPolicy_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRMetaHostPolicy_GetRequestedRuntime(This,dwPolicyFlags,pwzBinary,pCfgStream,pwzVersion,pcchVersion,pwzImageVersion,pcchImageVersion,pdwConfigFlags,riid,ppRuntime) \ - ( (This)->lpVtbl -> GetRequestedRuntime(This,dwPolicyFlags,pwzBinary,pCfgStream,pwzVersion,pcchVersion,pwzImageVersion,pcchImageVersion,pdwConfigFlags,riid,ppRuntime) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRMetaHostPolicy_INTERFACE_DEFINED__ */ - - -#ifndef __ICLRProfiling_INTERFACE_DEFINED__ -#define __ICLRProfiling_INTERFACE_DEFINED__ - -/* interface ICLRProfiling */ -/* [object][local][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRProfiling; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("B349ABE3-B56F-4689-BFCD-76BF39D888EA") - ICLRProfiling : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE AttachProfiler( - /* [in] */ DWORD dwProfileeProcessID, - /* [in] */ DWORD dwMillisecondsMax, - /* [in] */ const CLSID *pClsidProfiler, - /* [in] */ LPCWSTR wszProfilerPath, - /* [size_is][in] */ void *pvClientData, - /* [in] */ UINT cbClientData) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRProfilingVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRProfiling * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRProfiling * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRProfiling * This); - - HRESULT ( STDMETHODCALLTYPE *AttachProfiler )( - ICLRProfiling * This, - /* [in] */ DWORD dwProfileeProcessID, - /* [in] */ DWORD dwMillisecondsMax, - /* [in] */ const CLSID *pClsidProfiler, - /* [in] */ LPCWSTR wszProfilerPath, - /* [size_is][in] */ void *pvClientData, - /* [in] */ UINT cbClientData); - - END_INTERFACE - } ICLRProfilingVtbl; - - interface ICLRProfiling - { - CONST_VTBL struct ICLRProfilingVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRProfiling_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRProfiling_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRProfiling_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRProfiling_AttachProfiler(This,dwProfileeProcessID,dwMillisecondsMax,pClsidProfiler,wszProfilerPath,pvClientData,cbClientData) \ - ( (This)->lpVtbl -> AttachProfiler(This,dwProfileeProcessID,dwMillisecondsMax,pClsidProfiler,wszProfilerPath,pvClientData,cbClientData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRProfiling_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_metahost_0000_0003 */ -/* [local] */ - typedef struct _CLR_DEBUGGING_VERSION { WORD wStructVersion; @@ -610,7 +285,7 @@ typedef struct _CLR_DEBUGGING_VERSION } CLR_DEBUGGING_VERSION; typedef /* [public][public] */ -enum __MIDL___MIDL_itf_metahost_0000_0003_0001 +enum __MIDL___MIDL_itf_metahost_0000_0001_0001 { CLR_DEBUGGING_MANAGED_EVENT_PENDING = 1, CLR_DEBUGGING_MANAGED_EVENT_DEBUGGER_LAUNCH = 2 @@ -618,8 +293,8 @@ enum __MIDL___MIDL_itf_metahost_0000_0003_0001 -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0003_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0001_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0001_v0_0_s_ifspec; #ifndef __ICLRDebuggingLibraryProvider_INTERFACE_DEFINED__ #define __ICLRDebuggingLibraryProvider_INTERFACE_DEFINED__ @@ -1121,739 +796,6 @@ EXTERN_C const IID IID_ICLRRuntimeInfo; #endif /* __ICLRRuntimeInfo_INTERFACE_DEFINED__ */ -#ifndef __ICLRStrongName_INTERFACE_DEFINED__ -#define __ICLRStrongName_INTERFACE_DEFINED__ - -/* interface ICLRStrongName */ -/* [object][local][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRStrongName; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9FD93CCF-3280-4391-B3A9-96E1CDE77C8D") - ICLRStrongName : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetHashFromAssemblyFile( - /* [in] */ LPCSTR pszFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHashFromAssemblyFileW( - /* [in] */ LPCWSTR pwzFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHashFromBlob( - /* [in] */ BYTE *pbBlob, - /* [in] */ DWORD cchBlob, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHashFromFile( - /* [in] */ LPCSTR pszFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHashFromFileW( - /* [in] */ LPCWSTR pwzFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHashFromHandle( - /* [in] */ HANDLE hFile, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameCompareAssemblies( - /* [in] */ LPCWSTR pwzAssembly1, - /* [in] */ LPCWSTR pwzAssembly2, - /* [retval][out] */ DWORD *pdwResult) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameFreeBuffer( - /* [in] */ BYTE *pbMemory) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameGetBlob( - /* [in] */ LPCWSTR pwzFilePath, - /* [length_is][size_is][out][in] */ BYTE *pbBlob, - /* [out][in] */ DWORD *pcbBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameGetBlobFromImage( - /* [size_is][in] */ BYTE *pbBase, - /* [in] */ DWORD dwLength, - /* [length_is][size_is][out] */ BYTE *pbBlob, - /* [out][in] */ DWORD *pcbBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameGetPublicKey( - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameHashSize( - /* [in] */ ULONG ulHashAlg, - /* [retval][out] */ DWORD *pcbSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameKeyDelete( - /* [in] */ LPCWSTR pwzKeyContainer) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameKeyGen( - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ DWORD dwFlags, - /* [out] */ BYTE **ppbKeyBlob, - /* [out] */ ULONG *pcbKeyBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameKeyGenEx( - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwKeySize, - /* [out] */ BYTE **ppbKeyBlob, - /* [out] */ ULONG *pcbKeyBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameKeyInstall( - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureGeneration( - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureGenerationEx( - /* [in] */ LPCWSTR wszFilePath, - /* [in] */ LPCWSTR wszKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureSize( - /* [in] */ BYTE *pbPublicKeyBlob, - /* [in] */ ULONG cbPublicKeyBlob, - /* [in] */ DWORD *pcbSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureVerification( - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ DWORD dwInFlags, - /* [retval][out] */ DWORD *pdwOutFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureVerificationEx( - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ BOOLEAN fForceVerification, - /* [retval][out] */ BOOLEAN *pfWasVerified) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureVerificationFromImage( - /* [in] */ BYTE *pbBase, - /* [in] */ DWORD dwLength, - /* [in] */ DWORD dwInFlags, - /* [retval][out] */ DWORD *pdwOutFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameTokenFromAssembly( - /* [in] */ LPCWSTR pwzFilePath, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameTokenFromAssemblyEx( - /* [in] */ LPCWSTR pwzFilePath, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameTokenFromPublicKey( - /* [in] */ BYTE *pbPublicKeyBlob, - /* [in] */ ULONG cbPublicKeyBlob, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRStrongNameVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRStrongName * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRStrongName * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRStrongName * This); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromAssemblyFile )( - ICLRStrongName * This, - /* [in] */ LPCSTR pszFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromAssemblyFileW )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromBlob )( - ICLRStrongName * This, - /* [in] */ BYTE *pbBlob, - /* [in] */ DWORD cchBlob, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromFile )( - ICLRStrongName * This, - /* [in] */ LPCSTR pszFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromFileW )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *GetHashFromHandle )( - ICLRStrongName * This, - /* [in] */ HANDLE hFile, - /* [out][in] */ unsigned int *piHashAlg, - /* [length_is][size_is][out] */ BYTE *pbHash, - /* [in] */ DWORD cchHash, - /* [out] */ DWORD *pchHash); - - HRESULT ( STDMETHODCALLTYPE *StrongNameCompareAssemblies )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzAssembly1, - /* [in] */ LPCWSTR pwzAssembly2, - /* [retval][out] */ DWORD *pdwResult); - - HRESULT ( STDMETHODCALLTYPE *StrongNameFreeBuffer )( - ICLRStrongName * This, - /* [in] */ BYTE *pbMemory); - - HRESULT ( STDMETHODCALLTYPE *StrongNameGetBlob )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [length_is][size_is][out][in] */ BYTE *pbBlob, - /* [out][in] */ DWORD *pcbBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameGetBlobFromImage )( - ICLRStrongName * This, - /* [size_is][in] */ BYTE *pbBase, - /* [in] */ DWORD dwLength, - /* [length_is][size_is][out] */ BYTE *pbBlob, - /* [out][in] */ DWORD *pcbBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameGetPublicKey )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameHashSize )( - ICLRStrongName * This, - /* [in] */ ULONG ulHashAlg, - /* [retval][out] */ DWORD *pcbSize); - - HRESULT ( STDMETHODCALLTYPE *StrongNameKeyDelete )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzKeyContainer); - - HRESULT ( STDMETHODCALLTYPE *StrongNameKeyGen )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ DWORD dwFlags, - /* [out] */ BYTE **ppbKeyBlob, - /* [out] */ ULONG *pcbKeyBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameKeyGenEx )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ DWORD dwFlags, - /* [in] */ DWORD dwKeySize, - /* [out] */ BYTE **ppbKeyBlob, - /* [out] */ ULONG *pcbKeyBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameKeyInstall )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureGeneration )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureGenerationEx )( - ICLRStrongName * This, - /* [in] */ LPCWSTR wszFilePath, - /* [in] */ LPCWSTR wszKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureSize )( - ICLRStrongName * This, - /* [in] */ BYTE *pbPublicKeyBlob, - /* [in] */ ULONG cbPublicKeyBlob, - /* [in] */ DWORD *pcbSize); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureVerification )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ DWORD dwInFlags, - /* [retval][out] */ DWORD *pdwOutFlags); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureVerificationEx )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [in] */ BOOLEAN fForceVerification, - /* [retval][out] */ BOOLEAN *pfWasVerified); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureVerificationFromImage )( - ICLRStrongName * This, - /* [in] */ BYTE *pbBase, - /* [in] */ DWORD dwLength, - /* [in] */ DWORD dwInFlags, - /* [retval][out] */ DWORD *pdwOutFlags); - - HRESULT ( STDMETHODCALLTYPE *StrongNameTokenFromAssembly )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken); - - HRESULT ( STDMETHODCALLTYPE *StrongNameTokenFromAssemblyEx )( - ICLRStrongName * This, - /* [in] */ LPCWSTR pwzFilePath, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob); - - HRESULT ( STDMETHODCALLTYPE *StrongNameTokenFromPublicKey )( - ICLRStrongName * This, - /* [in] */ BYTE *pbPublicKeyBlob, - /* [in] */ ULONG cbPublicKeyBlob, - /* [out] */ BYTE **ppbStrongNameToken, - /* [out] */ ULONG *pcbStrongNameToken); - - END_INTERFACE - } ICLRStrongNameVtbl; - - interface ICLRStrongName - { - CONST_VTBL struct ICLRStrongNameVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRStrongName_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRStrongName_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRStrongName_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRStrongName_GetHashFromAssemblyFile(This,pszFilePath,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromAssemblyFile(This,pszFilePath,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_GetHashFromAssemblyFileW(This,pwzFilePath,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromAssemblyFileW(This,pwzFilePath,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_GetHashFromBlob(This,pbBlob,cchBlob,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromBlob(This,pbBlob,cchBlob,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_GetHashFromFile(This,pszFilePath,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromFile(This,pszFilePath,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_GetHashFromFileW(This,pwzFilePath,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromFileW(This,pwzFilePath,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_GetHashFromHandle(This,hFile,piHashAlg,pbHash,cchHash,pchHash) \ - ( (This)->lpVtbl -> GetHashFromHandle(This,hFile,piHashAlg,pbHash,cchHash,pchHash) ) - -#define ICLRStrongName_StrongNameCompareAssemblies(This,pwzAssembly1,pwzAssembly2,pdwResult) \ - ( (This)->lpVtbl -> StrongNameCompareAssemblies(This,pwzAssembly1,pwzAssembly2,pdwResult) ) - -#define ICLRStrongName_StrongNameFreeBuffer(This,pbMemory) \ - ( (This)->lpVtbl -> StrongNameFreeBuffer(This,pbMemory) ) - -#define ICLRStrongName_StrongNameGetBlob(This,pwzFilePath,pbBlob,pcbBlob) \ - ( (This)->lpVtbl -> StrongNameGetBlob(This,pwzFilePath,pbBlob,pcbBlob) ) - -#define ICLRStrongName_StrongNameGetBlobFromImage(This,pbBase,dwLength,pbBlob,pcbBlob) \ - ( (This)->lpVtbl -> StrongNameGetBlobFromImage(This,pbBase,dwLength,pbBlob,pcbBlob) ) - -#define ICLRStrongName_StrongNameGetPublicKey(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbPublicKeyBlob,pcbPublicKeyBlob) \ - ( (This)->lpVtbl -> StrongNameGetPublicKey(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbPublicKeyBlob,pcbPublicKeyBlob) ) - -#define ICLRStrongName_StrongNameHashSize(This,ulHashAlg,pcbSize) \ - ( (This)->lpVtbl -> StrongNameHashSize(This,ulHashAlg,pcbSize) ) - -#define ICLRStrongName_StrongNameKeyDelete(This,pwzKeyContainer) \ - ( (This)->lpVtbl -> StrongNameKeyDelete(This,pwzKeyContainer) ) - -#define ICLRStrongName_StrongNameKeyGen(This,pwzKeyContainer,dwFlags,ppbKeyBlob,pcbKeyBlob) \ - ( (This)->lpVtbl -> StrongNameKeyGen(This,pwzKeyContainer,dwFlags,ppbKeyBlob,pcbKeyBlob) ) - -#define ICLRStrongName_StrongNameKeyGenEx(This,pwzKeyContainer,dwFlags,dwKeySize,ppbKeyBlob,pcbKeyBlob) \ - ( (This)->lpVtbl -> StrongNameKeyGenEx(This,pwzKeyContainer,dwFlags,dwKeySize,ppbKeyBlob,pcbKeyBlob) ) - -#define ICLRStrongName_StrongNameKeyInstall(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob) \ - ( (This)->lpVtbl -> StrongNameKeyInstall(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob) ) - -#define ICLRStrongName_StrongNameSignatureGeneration(This,pwzFilePath,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbSignatureBlob,pcbSignatureBlob) \ - ( (This)->lpVtbl -> StrongNameSignatureGeneration(This,pwzFilePath,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbSignatureBlob,pcbSignatureBlob) ) - -#define ICLRStrongName_StrongNameSignatureGenerationEx(This,wszFilePath,wszKeyContainer,pbKeyBlob,cbKeyBlob,ppbSignatureBlob,pcbSignatureBlob,dwFlags) \ - ( (This)->lpVtbl -> StrongNameSignatureGenerationEx(This,wszFilePath,wszKeyContainer,pbKeyBlob,cbKeyBlob,ppbSignatureBlob,pcbSignatureBlob,dwFlags) ) - -#define ICLRStrongName_StrongNameSignatureSize(This,pbPublicKeyBlob,cbPublicKeyBlob,pcbSize) \ - ( (This)->lpVtbl -> StrongNameSignatureSize(This,pbPublicKeyBlob,cbPublicKeyBlob,pcbSize) ) - -#define ICLRStrongName_StrongNameSignatureVerification(This,pwzFilePath,dwInFlags,pdwOutFlags) \ - ( (This)->lpVtbl -> StrongNameSignatureVerification(This,pwzFilePath,dwInFlags,pdwOutFlags) ) - -#define ICLRStrongName_StrongNameSignatureVerificationEx(This,pwzFilePath,fForceVerification,pfWasVerified) \ - ( (This)->lpVtbl -> StrongNameSignatureVerificationEx(This,pwzFilePath,fForceVerification,pfWasVerified) ) - -#define ICLRStrongName_StrongNameSignatureVerificationFromImage(This,pbBase,dwLength,dwInFlags,pdwOutFlags) \ - ( (This)->lpVtbl -> StrongNameSignatureVerificationFromImage(This,pbBase,dwLength,dwInFlags,pdwOutFlags) ) - -#define ICLRStrongName_StrongNameTokenFromAssembly(This,pwzFilePath,ppbStrongNameToken,pcbStrongNameToken) \ - ( (This)->lpVtbl -> StrongNameTokenFromAssembly(This,pwzFilePath,ppbStrongNameToken,pcbStrongNameToken) ) - -#define ICLRStrongName_StrongNameTokenFromAssemblyEx(This,pwzFilePath,ppbStrongNameToken,pcbStrongNameToken,ppbPublicKeyBlob,pcbPublicKeyBlob) \ - ( (This)->lpVtbl -> StrongNameTokenFromAssemblyEx(This,pwzFilePath,ppbStrongNameToken,pcbStrongNameToken,ppbPublicKeyBlob,pcbPublicKeyBlob) ) - -#define ICLRStrongName_StrongNameTokenFromPublicKey(This,pbPublicKeyBlob,cbPublicKeyBlob,ppbStrongNameToken,pcbStrongNameToken) \ - ( (This)->lpVtbl -> StrongNameTokenFromPublicKey(This,pbPublicKeyBlob,cbPublicKeyBlob,ppbStrongNameToken,pcbStrongNameToken) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRStrongName_INTERFACE_DEFINED__ */ - - -#ifndef __ICLRStrongName2_INTERFACE_DEFINED__ -#define __ICLRStrongName2_INTERFACE_DEFINED__ - -/* interface ICLRStrongName2 */ -/* [object][local][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRStrongName2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C22ED5C5-4B59-4975-90EB-85EA55C0069B") - ICLRStrongName2 : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE StrongNameGetPublicKeyEx( - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob, - /* [in] */ ULONG uHashAlgId, - /* [in] */ ULONG uReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameSignatureVerificationEx2( - /* [in] */ LPCWSTR wszFilePath, - /* [in] */ BOOLEAN fForceVerification, - /* [in] */ BYTE *pbEcmaPublicKey, - /* [in] */ DWORD cbEcmaPublicKey, - /* [out] */ BOOLEAN *pfWasVerified) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRStrongName2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRStrongName2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRStrongName2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRStrongName2 * This); - - HRESULT ( STDMETHODCALLTYPE *StrongNameGetPublicKeyEx )( - ICLRStrongName2 * This, - /* [in] */ LPCWSTR pwzKeyContainer, - /* [in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [out] */ BYTE **ppbPublicKeyBlob, - /* [out] */ ULONG *pcbPublicKeyBlob, - /* [in] */ ULONG uHashAlgId, - /* [in] */ ULONG uReserved); - - HRESULT ( STDMETHODCALLTYPE *StrongNameSignatureVerificationEx2 )( - ICLRStrongName2 * This, - /* [in] */ LPCWSTR wszFilePath, - /* [in] */ BOOLEAN fForceVerification, - /* [in] */ BYTE *pbEcmaPublicKey, - /* [in] */ DWORD cbEcmaPublicKey, - /* [out] */ BOOLEAN *pfWasVerified); - - END_INTERFACE - } ICLRStrongName2Vtbl; - - interface ICLRStrongName2 - { - CONST_VTBL struct ICLRStrongName2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRStrongName2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRStrongName2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRStrongName2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRStrongName2_StrongNameGetPublicKeyEx(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbPublicKeyBlob,pcbPublicKeyBlob,uHashAlgId,uReserved) \ - ( (This)->lpVtbl -> StrongNameGetPublicKeyEx(This,pwzKeyContainer,pbKeyBlob,cbKeyBlob,ppbPublicKeyBlob,pcbPublicKeyBlob,uHashAlgId,uReserved) ) - -#define ICLRStrongName2_StrongNameSignatureVerificationEx2(This,wszFilePath,fForceVerification,pbEcmaPublicKey,cbEcmaPublicKey,pfWasVerified) \ - ( (This)->lpVtbl -> StrongNameSignatureVerificationEx2(This,wszFilePath,fForceVerification,pbEcmaPublicKey,cbEcmaPublicKey,pfWasVerified) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRStrongName2_INTERFACE_DEFINED__ */ - - -#ifndef __ICLRStrongName3_INTERFACE_DEFINED__ -#define __ICLRStrongName3_INTERFACE_DEFINED__ - -/* interface ICLRStrongName3 */ -/* [object][local][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRStrongName3; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("22c7089b-bbd3-414a-b698-210f263f1fed") - ICLRStrongName3 : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE StrongNameDigestGenerate( - /* [in] */ LPCWSTR wszFilePath, - /* [out] */ BYTE **ppbDigestBlob, - /* [out] */ ULONG *pcbDigestBlob, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameDigestSign( - /* [in] */ LPCWSTR wszKeyContainer, - /* [size_is][in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [size_is][in] */ BYTE *pbDigestBlob, - /* [in] */ ULONG cbDigestBlob, - /* [in] */ DWORD hashAlgId, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE StrongNameDigestEmbed( - /* [in] */ LPCWSTR wszFilePath, - /* [size_is][in] */ BYTE *pbSignatureBlob, - /* [in] */ ULONG cbSignatureBlob) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRStrongName3Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRStrongName3 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRStrongName3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRStrongName3 * This); - - HRESULT ( STDMETHODCALLTYPE *StrongNameDigestGenerate )( - ICLRStrongName3 * This, - /* [in] */ LPCWSTR wszFilePath, - /* [out] */ BYTE **ppbDigestBlob, - /* [out] */ ULONG *pcbDigestBlob, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *StrongNameDigestSign )( - ICLRStrongName3 * This, - /* [in] */ LPCWSTR wszKeyContainer, - /* [size_is][in] */ BYTE *pbKeyBlob, - /* [in] */ ULONG cbKeyBlob, - /* [size_is][in] */ BYTE *pbDigestBlob, - /* [in] */ ULONG cbDigestBlob, - /* [in] */ DWORD hashAlgId, - /* [out] */ BYTE **ppbSignatureBlob, - /* [out] */ ULONG *pcbSignatureBlob, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *StrongNameDigestEmbed )( - ICLRStrongName3 * This, - /* [in] */ LPCWSTR wszFilePath, - /* [size_is][in] */ BYTE *pbSignatureBlob, - /* [in] */ ULONG cbSignatureBlob); - - END_INTERFACE - } ICLRStrongName3Vtbl; - - interface ICLRStrongName3 - { - CONST_VTBL struct ICLRStrongName3Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRStrongName3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRStrongName3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRStrongName3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRStrongName3_StrongNameDigestGenerate(This,wszFilePath,ppbDigestBlob,pcbDigestBlob,dwFlags) \ - ( (This)->lpVtbl -> StrongNameDigestGenerate(This,wszFilePath,ppbDigestBlob,pcbDigestBlob,dwFlags) ) - -#define ICLRStrongName3_StrongNameDigestSign(This,wszKeyContainer,pbKeyBlob,cbKeyBlob,pbDigestBlob,cbDigestBlob,hashAlgId,ppbSignatureBlob,pcbSignatureBlob,dwFlags) \ - ( (This)->lpVtbl -> StrongNameDigestSign(This,wszKeyContainer,pbKeyBlob,cbKeyBlob,pbDigestBlob,cbDigestBlob,hashAlgId,ppbSignatureBlob,pcbSignatureBlob,dwFlags) ) - -#define ICLRStrongName3_StrongNameDigestEmbed(This,wszFilePath,pbSignatureBlob,cbSignatureBlob) \ - ( (This)->lpVtbl -> StrongNameDigestEmbed(This,wszFilePath,pbSignatureBlob,cbSignatureBlob) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRStrongName3_INTERFACE_DEFINED__ */ - - - -#ifndef __CLRMetaHost_LIBRARY_DEFINED__ -#define __CLRMetaHost_LIBRARY_DEFINED__ - -/* library CLRMetaHost */ -/* [version][uuid] */ - - - - - - - - - -EXTERN_C const IID LIBID_CLRMetaHost; -#endif /* __CLRMetaHost_LIBRARY_DEFINED__ */ - -/* interface __MIDL_itf_metahost_0000_0011 */ -/* [local] */ - -#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) - - -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0011_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_metahost_0000_0011_v0_0_s_ifspec; - /* Additional Prototypes for ALL interfaces */ /* end of Additional Prototypes */ diff --git a/lib/coreclr/src/pal/prebuilt/inc/mscoree.h b/lib/coreclr/src/pal/prebuilt/inc/mscoree.h index a03058564e0c..ab7bbb0d0c71 100644 --- a/lib/coreclr/src/pal/prebuilt/inc/mscoree.h +++ b/lib/coreclr/src/pal/prebuilt/inc/mscoree.h @@ -22,7 +22,7 @@ #ifndef __RPCNDR_H_VERSION__ #error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ +#endif /* __RPCNDR_H_VERSION__ */ #ifndef COM_NO_WINDOWS_H #include "windows.h" @@ -38,69 +38,6 @@ /* Forward Declarations */ -#ifndef __IDebuggerThreadControl_FWD_DEFINED__ -#define __IDebuggerThreadControl_FWD_DEFINED__ -typedef interface IDebuggerThreadControl IDebuggerThreadControl; - -#endif /* __IDebuggerThreadControl_FWD_DEFINED__ */ - - -#ifndef __IDebuggerInfo_FWD_DEFINED__ -#define __IDebuggerInfo_FWD_DEFINED__ -typedef interface IDebuggerInfo IDebuggerInfo; - -#endif /* __IDebuggerInfo_FWD_DEFINED__ */ - - -#ifndef __ICLRErrorReportingManager_FWD_DEFINED__ -#define __ICLRErrorReportingManager_FWD_DEFINED__ -typedef interface ICLRErrorReportingManager ICLRErrorReportingManager; - -#endif /* __ICLRErrorReportingManager_FWD_DEFINED__ */ - - -#ifndef __ICLRErrorReportingManager2_FWD_DEFINED__ -#define __ICLRErrorReportingManager2_FWD_DEFINED__ -typedef interface ICLRErrorReportingManager2 ICLRErrorReportingManager2; - -#endif /* __ICLRErrorReportingManager2_FWD_DEFINED__ */ - - -#ifndef __ICLRPolicyManager_FWD_DEFINED__ -#define __ICLRPolicyManager_FWD_DEFINED__ -typedef interface ICLRPolicyManager ICLRPolicyManager; - -#endif /* __ICLRPolicyManager_FWD_DEFINED__ */ - - -#ifndef __ICLRGCManager_FWD_DEFINED__ -#define __ICLRGCManager_FWD_DEFINED__ -typedef interface ICLRGCManager ICLRGCManager; - -#endif /* __ICLRGCManager_FWD_DEFINED__ */ - - -#ifndef __ICLRGCManager2_FWD_DEFINED__ -#define __ICLRGCManager2_FWD_DEFINED__ -typedef interface ICLRGCManager2 ICLRGCManager2; - -#endif /* __ICLRGCManager2_FWD_DEFINED__ */ - - -#ifndef __IHostControl_FWD_DEFINED__ -#define __IHostControl_FWD_DEFINED__ -typedef interface IHostControl IHostControl; - -#endif /* __IHostControl_FWD_DEFINED__ */ - - -#ifndef __ICLRControl_FWD_DEFINED__ -#define __ICLRControl_FWD_DEFINED__ -typedef interface ICLRControl ICLRControl; - -#endif /* __ICLRControl_FWD_DEFINED__ */ - - #ifndef __ICLRRuntimeHost_FWD_DEFINED__ #define __ICLRRuntimeHost_FWD_DEFINED__ typedef interface ICLRRuntimeHost ICLRRuntimeHost; @@ -112,114 +49,18 @@ typedef interface ICLRRuntimeHost ICLRRuntimeHost; #define __ICLRRuntimeHost2_FWD_DEFINED__ typedef interface ICLRRuntimeHost2 ICLRRuntimeHost2; -#endif /* __ICLRRuntimeHost4_FWD_DEFINED__ */ +#endif /* __ICLRRuntimeHost2_FWD_DEFINED__ */ + #ifndef __ICLRRuntimeHost4_FWD_DEFINED__ #define __ICLRRuntimeHost4_FWD_DEFINED__ typedef interface ICLRRuntimeHost4 ICLRRuntimeHost4; -#endif /* __ICLRRuntimeHost4_FWD_DEFINED__ */ - -#ifndef __ICLRExecutionManager_FWD_DEFINED__ -#define __ICLRExecutionManager_FWD_DEFINED__ -typedef interface ICLRExecutionManager ICLRExecutionManager; - -#endif /* __ICLRExecutionManager_FWD_DEFINED__ */ - - -#ifndef __IHostNetCFDebugControlManager_FWD_DEFINED__ -#define __IHostNetCFDebugControlManager_FWD_DEFINED__ -typedef interface IHostNetCFDebugControlManager IHostNetCFDebugControlManager; - -#endif /* __IHostNetCFDebugControlManager_FWD_DEFINED__ */ - - -#ifndef __ITypeName_FWD_DEFINED__ -#define __ITypeName_FWD_DEFINED__ -typedef interface ITypeName ITypeName; - -#endif /* __ITypeName_FWD_DEFINED__ */ - - -#ifndef __ITypeNameBuilder_FWD_DEFINED__ -#define __ITypeNameBuilder_FWD_DEFINED__ -typedef interface ITypeNameBuilder ITypeNameBuilder; - -#endif /* __ITypeNameBuilder_FWD_DEFINED__ */ - - -#ifndef __ITypeNameFactory_FWD_DEFINED__ -#define __ITypeNameFactory_FWD_DEFINED__ -typedef interface ITypeNameFactory ITypeNameFactory; - -#endif /* __ITypeNameFactory_FWD_DEFINED__ */ - - -#ifndef __IManagedObject_FWD_DEFINED__ -#define __IManagedObject_FWD_DEFINED__ -typedef interface IManagedObject IManagedObject; - -#endif /* __IManagedObject_FWD_DEFINED__ */ - - -#ifndef __ComCallUnmarshal_FWD_DEFINED__ -#define __ComCallUnmarshal_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class ComCallUnmarshal ComCallUnmarshal; -#else -typedef struct ComCallUnmarshal ComCallUnmarshal; -#endif /* __cplusplus */ - -#endif /* __ComCallUnmarshal_FWD_DEFINED__ */ - - -#ifndef __ComCallUnmarshalV4_FWD_DEFINED__ -#define __ComCallUnmarshalV4_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class ComCallUnmarshalV4 ComCallUnmarshalV4; -#else -typedef struct ComCallUnmarshalV4 ComCallUnmarshalV4; -#endif /* __cplusplus */ - -#endif /* __ComCallUnmarshalV4_FWD_DEFINED__ */ - - -#ifndef __CLRRuntimeHost_FWD_DEFINED__ -#define __CLRRuntimeHost_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class CLRRuntimeHost CLRRuntimeHost; -#else -typedef struct CLRRuntimeHost CLRRuntimeHost; -#endif /* __cplusplus */ - -#endif /* __CLRRuntimeHost_FWD_DEFINED__ */ - - -#ifndef __TypeNameFactory_FWD_DEFINED__ -#define __TypeNameFactory_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class TypeNameFactory TypeNameFactory; -#else -typedef struct TypeNameFactory TypeNameFactory; -#endif /* __cplusplus */ - -#endif /* __TypeNameFactory_FWD_DEFINED__ */ - - -#ifndef __ICLRAppDomainResourceMonitor_FWD_DEFINED__ -#define __ICLRAppDomainResourceMonitor_FWD_DEFINED__ -typedef interface ICLRAppDomainResourceMonitor ICLRAppDomainResourceMonitor; - -#endif /* __ICLRAppDomainResourceMonitor_FWD_DEFINED__ */ +#endif /* __ICLRRuntimeHost4_FWD_DEFINED__ */ /* header files for imported files */ #include "unknwn.h" -#include "gchost.h" #ifdef __cplusplus extern "C"{ @@ -234,57 +75,20 @@ extern "C"{ struct IActivationFactory; -EXTERN_GUID(CLSID_TypeNameFactory, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x25); -EXTERN_GUID(CLSID_ComCallUnmarshal, 0x3F281000,0xE95A,0x11d2,0x88,0x6B,0x00,0xC0,0x4F,0x86,0x9F,0x04); +struct IHostControl; + +struct ICLRControl; + EXTERN_GUID(CLSID_ComCallUnmarshalV4, 0x45fb4600,0xe6e8,0x4928,0xb2,0x5e,0x50,0x47,0x6f,0xf7,0x94,0x25); -EXTERN_GUID(IID_IManagedObject, 0xc3fcc19e, 0xa970, 0x11d2, 0x8b, 0x5a, 0x00, 0xa0, 0xc9, 0xb7, 0xc9, 0xc4); -EXTERN_GUID(IID_ICLRAppDomainResourceMonitor, 0XC62DE18C, 0X2E23, 0X4AEA, 0X84, 0X23, 0XB4, 0X0C, 0X1F, 0XC5, 0X9E, 0XAE); -EXTERN_GUID(IID_ICLRPolicyManager, 0x7D290010, 0xD781, 0x45da, 0xA6, 0xF8, 0xAA, 0x5D, 0x71, 0x1A, 0x73, 0x0E); -EXTERN_GUID(IID_ICLRGCManager, 0x54D9007E, 0xA8E2, 0x4885, 0xB7, 0xBF, 0xF9, 0x98, 0xDE, 0xEE, 0x4F, 0x2A); -EXTERN_GUID(IID_ICLRGCManager2, 0x0603B793, 0xA97A, 0x4712, 0x9C, 0xB4, 0x0C, 0xD1, 0xC7, 0x4C, 0x0F, 0x7C); -EXTERN_GUID(IID_ICLRErrorReportingManager, 0x980d2f1a, 0xbf79, 0x4c08, 0x81, 0x2a, 0xbb, 0x97, 0x78, 0x92, 0x8f, 0x78); -EXTERN_GUID(IID_ICLRErrorReportingManager2, 0xc68f63b1, 0x4d8b, 0x4e0b, 0x95, 0x64, 0x9d, 0x2e, 0xfe, 0x2f, 0xa1, 0x8c); EXTERN_GUID(IID_ICLRRuntimeHost, 0x90F1A06C, 0x7712, 0x4762, 0x86, 0xB5, 0x7A, 0x5E, 0xBA, 0x6B, 0xDB, 0x02); EXTERN_GUID(IID_ICLRRuntimeHost2, 0x712AB73F, 0x2C22, 0x4807, 0xAD, 0x7E, 0xF5, 0x01, 0xD7, 0xb7, 0x2C, 0x2D); EXTERN_GUID(IID_ICLRRuntimeHost4, 0x64F6D366, 0xD7C2, 0x4F1F, 0xB4, 0xB2, 0xE8, 0x16, 0x0C, 0xAC, 0x43, 0xAF); -EXTERN_GUID(IID_ICLRExecutionManager, 0x1000A3E7, 0xB420, 0x4620, 0xAE, 0x30, 0xFB, 0x19, 0xB5, 0x87, 0xAD, 0x1D); -EXTERN_GUID(IID_ITypeName, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x22); -EXTERN_GUID(IID_ITypeNameBuilder, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x23); -EXTERN_GUID(IID_ITypeNameFactory, 0xB81FF171, 0x20F3, 0x11d2, 0x8d, 0xcc, 0x00, 0xa0, 0xc9, 0xb0, 0x05, 0x21); -DEPRECATED_CLR_STDAPI GetCORSystemDirectory(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbuffer, DWORD cchBuffer, DWORD* dwLength); -DEPRECATED_CLR_STDAPI GetCORVersion(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbBuffer, DWORD cchBuffer, DWORD* dwLength); -DEPRECATED_CLR_STDAPI GetFileVersion(LPCWSTR szFilename, _Out_writes_to_opt_(cchBuffer, *dwLength) LPWSTR szBuffer, DWORD cchBuffer, DWORD* dwLength); -DEPRECATED_CLR_STDAPI GetCORRequiredVersion(_Out_writes_to_(cchBuffer, *dwLength) LPWSTR pbuffer, DWORD cchBuffer, DWORD* dwLength); -DEPRECATED_CLR_STDAPI GetRequestedRuntimeInfo(LPCWSTR pExe, LPCWSTR pwszVersion, LPCWSTR pConfigurationFile, DWORD startupFlags, DWORD runtimeInfoFlags, _Out_writes_opt_(dwDirectory) LPWSTR pDirectory, DWORD dwDirectory, _Out_opt_ DWORD *dwDirectoryLength, _Out_writes_opt_(cchBuffer) LPWSTR pVersion, DWORD cchBuffer, _Out_opt_ DWORD* dwlength); -DEPRECATED_CLR_STDAPI GetRequestedRuntimeVersion(_In_ LPWSTR pExe, _Out_writes_to_(cchBuffer, *dwLength) LPWSTR pVersion, DWORD cchBuffer, _Out_ DWORD* dwLength); -DEPRECATED_CLR_STDAPI CorBindToRuntimeHost(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, LPCWSTR pwszHostConfigFile, VOID* pReserved, DWORD startupFlags, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv); -DEPRECATED_CLR_STDAPI CorBindToRuntimeEx(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, DWORD startupFlags, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv); -DEPRECATED_CLR_STDAPI CorBindToRuntimeByCfg(IStream* pCfgStream, DWORD reserved, DWORD startupFlags, REFCLSID rclsid,REFIID riid, LPVOID FAR* ppv); -DEPRECATED_CLR_STDAPI CorBindToRuntime(LPCWSTR pwszVersion, LPCWSTR pwszBuildFlavor, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv); -DEPRECATED_CLR_STDAPI CorBindToCurrentRuntime(LPCWSTR pwszFileName, REFCLSID rclsid, REFIID riid, LPVOID FAR *ppv); -DEPRECATED_CLR_STDAPI ClrCreateManagedInstance(LPCWSTR pTypeName, REFIID riid, void **ppObject); -DECLARE_DEPRECATED void STDMETHODCALLTYPE CorMarkThreadInThreadPool(); -DEPRECATED_CLR_STDAPI RunDll32ShimW(HWND hwnd, HINSTANCE hinst, LPCWSTR lpszCmdLine, int nCmdShow); -DEPRECATED_CLR_STDAPI LoadLibraryShim(LPCWSTR szDllName, LPCWSTR szVersion, LPVOID pvReserved, HMODULE *phModDll); -DEPRECATED_CLR_STDAPI CallFunctionShim(LPCWSTR szDllName, LPCSTR szFunctionName, LPVOID lpvArgument1, LPVOID lpvArgument2, LPCWSTR szVersion, LPVOID pvReserved); -DEPRECATED_CLR_STDAPI GetRealProcAddress(LPCSTR pwszProcName, VOID** ppv); -DECLARE_DEPRECATED void STDMETHODCALLTYPE CorExitProcess(int exitCode); -DEPRECATED_CLR_STDAPI LoadStringRC(UINT iResouceID, _Out_writes_z_(iMax) LPWSTR szBuffer, int iMax, int bQuiet); typedef HRESULT (STDAPICALLTYPE *FnGetCLRRuntimeHost)(REFIID riid, IUnknown **pUnk); -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0000_0001 - { - HOST_TYPE_DEFAULT = 0, - HOST_TYPE_APPLAUNCH = 0x1, - HOST_TYPE_CORFLAG = 0x2 - } HOST_TYPE; - -STDAPI CorLaunchApplication(HOST_TYPE dwClickOnceHost, LPCWSTR pwzAppFullName, DWORD dwManifestPaths, LPCWSTR* ppwzManifestPaths, DWORD dwActivationData, LPCWSTR* ppwzActivationData, LPPROCESS_INFORMATION lpProcessInformation); typedef HRESULT ( __stdcall *FExecuteInAppDomainCallback )( void *cookie); typedef /* [public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0000_0002 +enum __MIDL___MIDL_itf_mscoree_0000_0000_0001 { STARTUP_CONCURRENT_GC = 0x1, STARTUP_LOADER_OPTIMIZATION_MASK = ( 0x3 << 1 ) , @@ -304,31 +108,11 @@ enum __MIDL___MIDL_itf_mscoree_0000_0000_0002 STARTUP_ARM = 0x400000, STARTUP_SINGLE_APPDOMAIN = 0x800000, STARTUP_APPX_APP_MODEL = 0x1000000, - STARTUP_DISABLE_RANDOMIZED_STRING_HASHING = 0x2000000 // not supported + STARTUP_DISABLE_RANDOMIZED_STRING_HASHING = 0x2000000 } STARTUP_FLAGS; typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0000_0003 - { - CLSID_RESOLUTION_DEFAULT = 0, - CLSID_RESOLUTION_REGISTERED = 0x1 - } CLSID_RESOLUTION_FLAGS; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0000_0004 - { - RUNTIME_INFO_UPGRADE_VERSION = 0x1, - RUNTIME_INFO_REQUEST_IA64 = 0x2, - RUNTIME_INFO_REQUEST_AMD64 = 0x4, - RUNTIME_INFO_REQUEST_X86 = 0x8, - RUNTIME_INFO_DONT_RETURN_DIRECTORY = 0x10, - RUNTIME_INFO_DONT_RETURN_VERSION = 0x20, - RUNTIME_INFO_DONT_SHOW_ERROR_DIALOG = 0x40, - RUNTIME_INFO_IGNORE_ERROR_MODE = 0x1000 - } RUNTIME_INFO_FLAGS; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0000_0005 +enum __MIDL___MIDL_itf_mscoree_0000_0000_0002 { APPDOMAIN_SECURITY_DEFAULT = 0, APPDOMAIN_SECURITY_SANDBOXED = 0x1, @@ -336,237 +120,19 @@ enum __MIDL___MIDL_itf_mscoree_0000_0000_0005 APPDOMAIN_IGNORE_UNHANDLED_EXCEPTIONS = 0x4, APPDOMAIN_FORCE_TRIVIAL_WAIT_OPERATIONS = 0x8, APPDOMAIN_ENABLE_PINVOKE_AND_CLASSIC_COMINTEROP = 0x10, - APPDOMAIN_SET_TEST_KEY = 0x20, APPDOMAIN_ENABLE_PLATFORM_SPECIFIC_APPS = 0x40, APPDOMAIN_ENABLE_ASSEMBLY_LOADFILE = 0x80, APPDOMAIN_DISABLE_TRANSPARENCY_ENFORCEMENT = 0x100 } APPDOMAIN_SECURITY_FLAGS; -STDAPI GetRequestedRuntimeVersionForCLSID(REFCLSID rclsid, _Out_writes_opt_(cchBuffer) LPWSTR pVersion, DWORD cchBuffer, _Out_opt_ DWORD* dwLength, CLSID_RESOLUTION_FLAGS dwResolutionFlags); -EXTERN_GUID(IID_IDebuggerThreadControl, 0x23d86786, 0x0bb5, 0x4774, 0x8f, 0xb5, 0xe3, 0x52, 0x2a, 0xdd, 0x62, 0x46); - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0000_v0_0_s_ifspec; - -#ifndef __IDebuggerThreadControl_INTERFACE_DEFINED__ -#define __IDebuggerThreadControl_INTERFACE_DEFINED__ - -/* interface IDebuggerThreadControl */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_IDebuggerThreadControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("23D86786-0BB5-4774-8FB5-E3522ADD6246") - IDebuggerThreadControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE ThreadIsBlockingForDebugger( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReleaseAllRuntimeThreads( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE StartBlockingForDebugger( - DWORD dwUnused) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDebuggerThreadControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDebuggerThreadControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDebuggerThreadControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDebuggerThreadControl * This); - - HRESULT ( STDMETHODCALLTYPE *ThreadIsBlockingForDebugger )( - IDebuggerThreadControl * This); - - HRESULT ( STDMETHODCALLTYPE *ReleaseAllRuntimeThreads )( - IDebuggerThreadControl * This); - - HRESULT ( STDMETHODCALLTYPE *StartBlockingForDebugger )( - IDebuggerThreadControl * This, - DWORD dwUnused); - - END_INTERFACE - } IDebuggerThreadControlVtbl; - - interface IDebuggerThreadControl - { - CONST_VTBL struct IDebuggerThreadControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDebuggerThreadControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDebuggerThreadControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDebuggerThreadControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDebuggerThreadControl_ThreadIsBlockingForDebugger(This) \ - ( (This)->lpVtbl -> ThreadIsBlockingForDebugger(This) ) - -#define IDebuggerThreadControl_ReleaseAllRuntimeThreads(This) \ - ( (This)->lpVtbl -> ReleaseAllRuntimeThreads(This) ) - -#define IDebuggerThreadControl_StartBlockingForDebugger(This,dwUnused) \ - ( (This)->lpVtbl -> StartBlockingForDebugger(This,dwUnused) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDebuggerThreadControl_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0001 */ -/* [local] */ - -EXTERN_GUID(IID_IDebuggerInfo, 0xbf24142d, 0xa47d, 0x4d24, 0xa6, 0x6d, 0x8c, 0x21, 0x41, 0x94, 0x4e, 0x44); - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0001_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0001_v0_0_s_ifspec; - -#ifndef __IDebuggerInfo_INTERFACE_DEFINED__ -#define __IDebuggerInfo_INTERFACE_DEFINED__ - -/* interface IDebuggerInfo */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_IDebuggerInfo; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("BF24142D-A47D-4d24-A66D-8C2141944E44") - IDebuggerInfo : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE IsDebuggerAttached( - /* [out] */ BOOL *pbAttached) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IDebuggerInfoVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDebuggerInfo * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDebuggerInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDebuggerInfo * This); - - HRESULT ( STDMETHODCALLTYPE *IsDebuggerAttached )( - IDebuggerInfo * This, - /* [out] */ BOOL *pbAttached); - - END_INTERFACE - } IDebuggerInfoVtbl; - - interface IDebuggerInfo - { - CONST_VTBL struct IDebuggerInfoVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IDebuggerInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IDebuggerInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IDebuggerInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IDebuggerInfo_IsDebuggerAttached(This,pbAttached) \ - ( (This)->lpVtbl -> IsDebuggerAttached(This,pbAttached) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IDebuggerInfo_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0002 */ -/* [local] */ - -typedef void *HDOMAINENUM; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0001 - { - eMemoryAvailableLow = 1, - eMemoryAvailableNeutral = 2, - eMemoryAvailableHigh = 3 - } EMemoryAvailable; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0002 - { - eTaskCritical = 0, - eAppDomainCritical = 1, - eProcessCritical = 2 - } EMemoryCriticalLevel; - typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0003 +enum __MIDL___MIDL_itf_mscoree_0000_0000_0003 { WAIT_MSGPUMP = 0x1, WAIT_ALERTABLE = 0x2, WAIT_NOTINDEADLOCK = 0x4 } WAIT_OPTION; -typedef UINT64 TASKID; - -typedef DWORD CONNID; - typedef enum ETaskType { @@ -584,15 +150,7 @@ enum ETaskType } ETaskType; typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0004 - { - eSymbolReadingNever = 0, - eSymbolReadingAlways = 1, - eSymbolReadingFullTrustOnly = 2 - } ESymbolReadingPolicy; - -typedef /* [public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0005 +enum __MIDL___MIDL_itf_mscoree_0000_0000_0004 { DUMP_FLAVOR_Mini = 0, DUMP_FLAVOR_CriticalCLRState = 1, @@ -600,27 +158,12 @@ enum __MIDL___MIDL_itf_mscoree_0000_0002_0005 DUMP_FLAVOR_Default = DUMP_FLAVOR_Mini } ECustomDumpFlavor; -typedef /* [public][public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0006 - { - DUMP_ITEM_None = 0 - } ECustomDumpItemKind; - -typedef /* [public][public] */ struct __MIDL___MIDL_itf_mscoree_0000_0002_0007 - { - ECustomDumpItemKind itemKind; - union - { - UINT_PTR pReserved; - } ; - } CustomDumpItem; - #define BucketParamsCount ( 10 ) #define BucketParamLength ( 255 ) typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0002_0009 +enum __MIDL___MIDL_itf_mscoree_0000_0000_0005 { Parameter1 = 0, Parameter2 = ( Parameter1 + 1 ) , @@ -641,253 +184,8 @@ typedef struct _BucketParameters WCHAR pszParams[ 10 ][ 255 ]; } BucketParameters; - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0002_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0002_v0_0_s_ifspec; - -#ifndef __ICLRErrorReportingManager_INTERFACE_DEFINED__ -#define __ICLRErrorReportingManager_INTERFACE_DEFINED__ - -/* interface ICLRErrorReportingManager */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRErrorReportingManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("980D2F1A-BF79-4c08-812A-BB9778928F78") - ICLRErrorReportingManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetBucketParametersForCurrentException( - /* [out] */ BucketParameters *pParams) = 0; - - virtual HRESULT STDMETHODCALLTYPE BeginCustomDump( - /* [in] */ ECustomDumpFlavor dwFlavor, - /* [in] */ DWORD dwNumItems, - /* [length_is][size_is][in] */ CustomDumpItem *items, - DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE EndCustomDump( void) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRErrorReportingManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRErrorReportingManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRErrorReportingManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRErrorReportingManager * This); - - HRESULT ( STDMETHODCALLTYPE *GetBucketParametersForCurrentException )( - ICLRErrorReportingManager * This, - /* [out] */ BucketParameters *pParams); - - HRESULT ( STDMETHODCALLTYPE *BeginCustomDump )( - ICLRErrorReportingManager * This, - /* [in] */ ECustomDumpFlavor dwFlavor, - /* [in] */ DWORD dwNumItems, - /* [length_is][size_is][in] */ CustomDumpItem *items, - DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *EndCustomDump )( - ICLRErrorReportingManager * This); - - END_INTERFACE - } ICLRErrorReportingManagerVtbl; - - interface ICLRErrorReportingManager - { - CONST_VTBL struct ICLRErrorReportingManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRErrorReportingManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRErrorReportingManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRErrorReportingManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRErrorReportingManager_GetBucketParametersForCurrentException(This,pParams) \ - ( (This)->lpVtbl -> GetBucketParametersForCurrentException(This,pParams) ) - -#define ICLRErrorReportingManager_BeginCustomDump(This,dwFlavor,dwNumItems,items,dwReserved) \ - ( (This)->lpVtbl -> BeginCustomDump(This,dwFlavor,dwNumItems,items,dwReserved) ) - -#define ICLRErrorReportingManager_EndCustomDump(This) \ - ( (This)->lpVtbl -> EndCustomDump(This) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRErrorReportingManager_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0003 */ -/* [local] */ - -typedef /* [public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0003_0001 - { - ApplicationID = 0x1, - InstanceID = 0x2 - } ApplicationDataKey; - - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0003_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0003_v0_0_s_ifspec; - -#ifndef __ICLRErrorReportingManager2_INTERFACE_DEFINED__ -#define __ICLRErrorReportingManager2_INTERFACE_DEFINED__ - -/* interface ICLRErrorReportingManager2 */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRErrorReportingManager2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C68F63B1-4D8B-4E0B-9564-9D2EFE2FA18C") - ICLRErrorReportingManager2 : public ICLRErrorReportingManager - { - public: - virtual HRESULT STDMETHODCALLTYPE SetApplicationData( - /* [in] */ ApplicationDataKey key, - /* [in] */ const WCHAR *pValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetBucketParametersForUnhandledException( - /* [in] */ const BucketParameters *pBucketParams, - /* [out] */ DWORD *pCountParams) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRErrorReportingManager2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRErrorReportingManager2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRErrorReportingManager2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRErrorReportingManager2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetBucketParametersForCurrentException )( - ICLRErrorReportingManager2 * This, - /* [out] */ BucketParameters *pParams); - - HRESULT ( STDMETHODCALLTYPE *BeginCustomDump )( - ICLRErrorReportingManager2 * This, - /* [in] */ ECustomDumpFlavor dwFlavor, - /* [in] */ DWORD dwNumItems, - /* [length_is][size_is][in] */ CustomDumpItem *items, - DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *EndCustomDump )( - ICLRErrorReportingManager2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetApplicationData )( - ICLRErrorReportingManager2 * This, - /* [in] */ ApplicationDataKey key, - /* [in] */ const WCHAR *pValue); - - HRESULT ( STDMETHODCALLTYPE *SetBucketParametersForUnhandledException )( - ICLRErrorReportingManager2 * This, - /* [in] */ const BucketParameters *pBucketParams, - /* [out] */ DWORD *pCountParams); - - END_INTERFACE - } ICLRErrorReportingManager2Vtbl; - - interface ICLRErrorReportingManager2 - { - CONST_VTBL struct ICLRErrorReportingManager2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRErrorReportingManager2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRErrorReportingManager2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRErrorReportingManager2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRErrorReportingManager2_GetBucketParametersForCurrentException(This,pParams) \ - ( (This)->lpVtbl -> GetBucketParametersForCurrentException(This,pParams) ) - -#define ICLRErrorReportingManager2_BeginCustomDump(This,dwFlavor,dwNumItems,items,dwReserved) \ - ( (This)->lpVtbl -> BeginCustomDump(This,dwFlavor,dwNumItems,items,dwReserved) ) - -#define ICLRErrorReportingManager2_EndCustomDump(This) \ - ( (This)->lpVtbl -> EndCustomDump(This) ) - - -#define ICLRErrorReportingManager2_SetApplicationData(This,key,pValue) \ - ( (This)->lpVtbl -> SetApplicationData(This,key,pValue) ) - -#define ICLRErrorReportingManager2_SetBucketParametersForUnhandledException(This,pBucketParams,pCountParams) \ - ( (This)->lpVtbl -> SetBucketParametersForUnhandledException(This,pBucketParams,pCountParams) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRErrorReportingManager2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0004 */ -/* [local] */ - -typedef /* [public][public][public][public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0004_0001 +typedef /* [public] */ +enum __MIDL___MIDL_itf_mscoree_0000_0000_0006 { OPR_ThreadAbort = 0, OPR_ThreadRudeAbortInNonCriticalRegion = ( OPR_ThreadAbort + 1 ) , @@ -897,1607 +195,173 @@ enum __MIDL___MIDL_itf_mscoree_0000_0004_0001 OPR_ProcessExit = ( OPR_AppDomainRudeUnload + 1 ) , OPR_FinalizerRun = ( OPR_ProcessExit + 1 ) , MaxClrOperation = ( OPR_FinalizerRun + 1 ) - } EClrOperation; - -typedef /* [public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0004_0002 - { - FAIL_NonCriticalResource = 0, - FAIL_CriticalResource = ( FAIL_NonCriticalResource + 1 ) , - FAIL_FatalRuntime = ( FAIL_CriticalResource + 1 ) , - FAIL_OrphanedLock = ( FAIL_FatalRuntime + 1 ) , - FAIL_StackOverflow = ( FAIL_OrphanedLock + 1 ) , - FAIL_AccessViolation = ( FAIL_StackOverflow + 1 ) , - FAIL_CodeContract = ( FAIL_AccessViolation + 1 ) , - MaxClrFailure = ( FAIL_CodeContract + 1 ) - } EClrFailure; - -typedef /* [public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0004_0003 - { - eRuntimeDeterminedPolicy = 0, - eHostDeterminedPolicy = ( eRuntimeDeterminedPolicy + 1 ) - } EClrUnhandledException; - -typedef /* [public][public][public][public][public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0004_0004 - { - eNoAction = 0, - eThrowException = ( eNoAction + 1 ) , - eAbortThread = ( eThrowException + 1 ) , - eRudeAbortThread = ( eAbortThread + 1 ) , - eUnloadAppDomain = ( eRudeAbortThread + 1 ) , - eRudeUnloadAppDomain = ( eUnloadAppDomain + 1 ) , - eExitProcess = ( eRudeUnloadAppDomain + 1 ) , - eFastExitProcess = ( eExitProcess + 1 ) , - eRudeExitProcess = ( eFastExitProcess + 1 ) , - eDisableRuntime = ( eRudeExitProcess + 1 ) , - MaxPolicyAction = ( eDisableRuntime + 1 ) - } EPolicyAction; - - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0004_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0004_v0_0_s_ifspec; - -#ifndef __ICLRPolicyManager_INTERFACE_DEFINED__ -#define __ICLRPolicyManager_INTERFACE_DEFINED__ - -/* interface ICLRPolicyManager */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRPolicyManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("7D290010-D781-45da-A6F8-AA5D711A730E") - ICLRPolicyManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE SetDefaultAction( - /* [in] */ EClrOperation operation, - /* [in] */ EPolicyAction action) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTimeout( - /* [in] */ EClrOperation operation, - /* [in] */ DWORD dwMilliseconds) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetActionOnTimeout( - /* [in] */ EClrOperation operation, - /* [in] */ EPolicyAction action) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetTimeoutAndAction( - /* [in] */ EClrOperation operation, - /* [in] */ DWORD dwMilliseconds, - /* [in] */ EPolicyAction action) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetActionOnFailure( - /* [in] */ EClrFailure failure, - /* [in] */ EPolicyAction action) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnhandledExceptionPolicy( - /* [in] */ EClrUnhandledException policy) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRPolicyManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRPolicyManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRPolicyManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRPolicyManager * This); - - HRESULT ( STDMETHODCALLTYPE *SetDefaultAction )( - ICLRPolicyManager * This, - /* [in] */ EClrOperation operation, - /* [in] */ EPolicyAction action); - - HRESULT ( STDMETHODCALLTYPE *SetTimeout )( - ICLRPolicyManager * This, - /* [in] */ EClrOperation operation, - /* [in] */ DWORD dwMilliseconds); - - HRESULT ( STDMETHODCALLTYPE *SetActionOnTimeout )( - ICLRPolicyManager * This, - /* [in] */ EClrOperation operation, - /* [in] */ EPolicyAction action); - - HRESULT ( STDMETHODCALLTYPE *SetTimeoutAndAction )( - ICLRPolicyManager * This, - /* [in] */ EClrOperation operation, - /* [in] */ DWORD dwMilliseconds, - /* [in] */ EPolicyAction action); - - HRESULT ( STDMETHODCALLTYPE *SetActionOnFailure )( - ICLRPolicyManager * This, - /* [in] */ EClrFailure failure, - /* [in] */ EPolicyAction action); - - HRESULT ( STDMETHODCALLTYPE *SetUnhandledExceptionPolicy )( - ICLRPolicyManager * This, - /* [in] */ EClrUnhandledException policy); - - END_INTERFACE - } ICLRPolicyManagerVtbl; - - interface ICLRPolicyManager - { - CONST_VTBL struct ICLRPolicyManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRPolicyManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRPolicyManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRPolicyManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRPolicyManager_SetDefaultAction(This,operation,action) \ - ( (This)->lpVtbl -> SetDefaultAction(This,operation,action) ) - -#define ICLRPolicyManager_SetTimeout(This,operation,dwMilliseconds) \ - ( (This)->lpVtbl -> SetTimeout(This,operation,dwMilliseconds) ) - -#define ICLRPolicyManager_SetActionOnTimeout(This,operation,action) \ - ( (This)->lpVtbl -> SetActionOnTimeout(This,operation,action) ) - -#define ICLRPolicyManager_SetTimeoutAndAction(This,operation,dwMilliseconds,action) \ - ( (This)->lpVtbl -> SetTimeoutAndAction(This,operation,dwMilliseconds,action) ) - -#define ICLRPolicyManager_SetActionOnFailure(This,failure,action) \ - ( (This)->lpVtbl -> SetActionOnFailure(This,failure,action) ) - -#define ICLRPolicyManager_SetUnhandledExceptionPolicy(This,policy) \ - ( (This)->lpVtbl -> SetUnhandledExceptionPolicy(This,policy) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRPolicyManager_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0005 */ -/* [local] */ - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0005_0001 - { - Event_DomainUnload = 0, - Event_ClrDisabled = ( Event_DomainUnload + 1 ) , - Event_MDAFired = ( Event_ClrDisabled + 1 ) , - Event_StackOverflow = ( Event_MDAFired + 1 ) , - MaxClrEvent = ( Event_StackOverflow + 1 ) - } EClrEvent; - -typedef struct _MDAInfo - { - LPCWSTR lpMDACaption; - LPCWSTR lpMDAMessage; - LPCWSTR lpStackTrace; - } MDAInfo; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0005_0002 - { - SO_Managed = 0, - SO_ClrEngine = ( SO_Managed + 1 ) , - SO_Other = ( SO_ClrEngine + 1 ) - } StackOverflowType; - -typedef struct _StackOverflowInfo -{ - StackOverflowType soType; - EXCEPTION_POINTERS *pExceptionInfo; -} StackOverflowInfo; - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0005_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0005_v0_0_s_ifspec; - -#ifndef __ICLRGCManager_INTERFACE_DEFINED__ -#define __ICLRGCManager_INTERFACE_DEFINED__ - -/* interface ICLRGCManager */ -/* [object][local][unique][version][uuid] */ - - -EXTERN_C const IID IID_ICLRGCManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("54D9007E-A8E2-4885-B7BF-F998DEEE4F2A") - ICLRGCManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Collect( - /* [in] */ LONG Generation) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStats( - /* [out][in] */ COR_GC_STATS *pStats) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetGCStartupLimits( - /* [in] */ DWORD SegmentSize, - /* [in] */ DWORD MaxGen0Size) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRGCManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRGCManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRGCManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRGCManager * This); - - HRESULT ( STDMETHODCALLTYPE *Collect )( - ICLRGCManager * This, - /* [in] */ LONG Generation); - - HRESULT ( STDMETHODCALLTYPE *GetStats )( - ICLRGCManager * This, - /* [out][in] */ COR_GC_STATS *pStats); - - HRESULT ( STDMETHODCALLTYPE *SetGCStartupLimits )( - ICLRGCManager * This, - /* [in] */ DWORD SegmentSize, - /* [in] */ DWORD MaxGen0Size); - - END_INTERFACE - } ICLRGCManagerVtbl; - - interface ICLRGCManager - { - CONST_VTBL struct ICLRGCManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRGCManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRGCManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRGCManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRGCManager_Collect(This,Generation) \ - ( (This)->lpVtbl -> Collect(This,Generation) ) - -#define ICLRGCManager_GetStats(This,pStats) \ - ( (This)->lpVtbl -> GetStats(This,pStats) ) - -#define ICLRGCManager_SetGCStartupLimits(This,SegmentSize,MaxGen0Size) \ - ( (This)->lpVtbl -> SetGCStartupLimits(This,SegmentSize,MaxGen0Size) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRGCManager_INTERFACE_DEFINED__ */ - - -#ifndef __ICLRGCManager2_INTERFACE_DEFINED__ -#define __ICLRGCManager2_INTERFACE_DEFINED__ - -/* interface ICLRGCManager2 */ -/* [object][local][unique][version][uuid] */ - - -EXTERN_C const IID IID_ICLRGCManager2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("0603B793-A97A-4712-9CB4-0CD1C74C0F7C") - ICLRGCManager2 : public ICLRGCManager - { - public: - virtual HRESULT STDMETHODCALLTYPE SetGCStartupLimitsEx( - /* [in] */ SIZE_T SegmentSize, - /* [in] */ SIZE_T MaxGen0Size) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRGCManager2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRGCManager2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRGCManager2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRGCManager2 * This); - - HRESULT ( STDMETHODCALLTYPE *Collect )( - ICLRGCManager2 * This, - /* [in] */ LONG Generation); - - HRESULT ( STDMETHODCALLTYPE *GetStats )( - ICLRGCManager2 * This, - /* [out][in] */ COR_GC_STATS *pStats); - - HRESULT ( STDMETHODCALLTYPE *SetGCStartupLimits )( - ICLRGCManager2 * This, - /* [in] */ DWORD SegmentSize, - /* [in] */ DWORD MaxGen0Size); - - HRESULT ( STDMETHODCALLTYPE *SetGCStartupLimitsEx )( - ICLRGCManager2 * This, - /* [in] */ SIZE_T SegmentSize, - /* [in] */ SIZE_T MaxGen0Size); - - END_INTERFACE - } ICLRGCManager2Vtbl; - - interface ICLRGCManager2 - { - CONST_VTBL struct ICLRGCManager2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRGCManager2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRGCManager2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRGCManager2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRGCManager2_Collect(This,Generation) \ - ( (This)->lpVtbl -> Collect(This,Generation) ) - -#define ICLRGCManager2_GetStats(This,pStats) \ - ( (This)->lpVtbl -> GetStats(This,pStats) ) - -#define ICLRGCManager2_SetGCStartupLimits(This,SegmentSize,MaxGen0Size) \ - ( (This)->lpVtbl -> SetGCStartupLimits(This,SegmentSize,MaxGen0Size) ) - - -#define ICLRGCManager2_SetGCStartupLimitsEx(This,SegmentSize,MaxGen0Size) \ - ( (This)->lpVtbl -> SetGCStartupLimitsEx(This,SegmentSize,MaxGen0Size) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRGCManager2_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0007 */ -/* [local] */ - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0007_0001 - { - ePolicyLevelNone = 0, - ePolicyLevelRetargetable = 0x1, - ePolicyUnifiedToCLR = 0x2, - ePolicyLevelApp = 0x4, - ePolicyLevelPublisher = 0x8, - ePolicyLevelHost = 0x10, - ePolicyLevelAdmin = 0x20, - ePolicyPortability = 0x40 - } EBindPolicyLevels; - -typedef struct _AssemblyBindInfo - { - DWORD dwAppDomainId; - LPCWSTR lpReferencedIdentity; - LPCWSTR lpPostPolicyIdentity; - DWORD ePolicyLevel; - } AssemblyBindInfo; - -typedef struct _ModuleBindInfo - { - DWORD dwAppDomainId; - LPCWSTR lpAssemblyIdentity; - LPCWSTR lpModuleName; - } ModuleBindInfo; - -typedef -enum _HostApplicationPolicy - { - HOST_APPLICATION_BINDING_POLICY = 1 - } EHostApplicationPolicy; - -STDAPI GetCLRIdentityManager(REFIID riid, IUnknown **ppManager); -EXTERN_GUID(IID_IHostControl, 0x02CA073C, 0x7079, 0x4860, 0x88, 0x0A, 0xC2, 0xF7, 0xA4, 0x49, 0xC9, 0x91); - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0007_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0007_v0_0_s_ifspec; - -#ifndef __IHostControl_INTERFACE_DEFINED__ -#define __IHostControl_INTERFACE_DEFINED__ - -/* interface IHostControl */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_IHostControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("02CA073C-7079-4860-880A-C2F7A449C991") - IHostControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetHostManager( - /* [in] */ REFIID riid, - /* [out] */ void **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAppDomainManager( - /* [in] */ DWORD dwAppDomainID, - /* [in] */ IUnknown *pUnkAppDomainManager) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IHostControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IHostControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IHostControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IHostControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetHostManager )( - IHostControl * This, - /* [in] */ REFIID riid, - /* [out] */ void **ppObject); - - HRESULT ( STDMETHODCALLTYPE *SetAppDomainManager )( - IHostControl * This, - /* [in] */ DWORD dwAppDomainID, - /* [in] */ IUnknown *pUnkAppDomainManager); - - END_INTERFACE - } IHostControlVtbl; - - interface IHostControl - { - CONST_VTBL struct IHostControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IHostControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IHostControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IHostControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IHostControl_GetHostManager(This,riid,ppObject) \ - ( (This)->lpVtbl -> GetHostManager(This,riid,ppObject) ) - -#define IHostControl_SetAppDomainManager(This,dwAppDomainID,pUnkAppDomainManager) \ - ( (This)->lpVtbl -> SetAppDomainManager(This,dwAppDomainID,pUnkAppDomainManager) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IHostControl_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0008 */ -/* [local] */ - -EXTERN_GUID(IID_ICLRControl, 0x9065597E, 0xD1A1, 0x4fb2, 0xB6, 0xBA, 0x7E, 0x1F, 0xCE, 0x23, 0x0F, 0x61); - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0008_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0008_v0_0_s_ifspec; - -#ifndef __ICLRControl_INTERFACE_DEFINED__ -#define __ICLRControl_INTERFACE_DEFINED__ - -/* interface ICLRControl */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9065597E-D1A1-4fb2-B6BA-7E1FCE230F61") - ICLRControl : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetCLRManager( - /* [in] */ REFIID riid, - /* [out] */ void **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAppDomainManagerType( - /* [in] */ LPCWSTR pwzAppDomainManagerAssembly, - /* [in] */ LPCWSTR pwzAppDomainManagerType) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetCLRManager )( - ICLRControl * This, - /* [in] */ REFIID riid, - /* [out] */ void **ppObject); - - HRESULT ( STDMETHODCALLTYPE *SetAppDomainManagerType )( - ICLRControl * This, - /* [in] */ LPCWSTR pwzAppDomainManagerAssembly, - /* [in] */ LPCWSTR pwzAppDomainManagerType); - - END_INTERFACE - } ICLRControlVtbl; - - interface ICLRControl - { - CONST_VTBL struct ICLRControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRControl_GetCLRManager(This,riid,ppObject) \ - ( (This)->lpVtbl -> GetCLRManager(This,riid,ppObject) ) - -#define ICLRControl_SetAppDomainManagerType(This,pwzAppDomainManagerAssembly,pwzAppDomainManagerType) \ - ( (This)->lpVtbl -> SetAppDomainManagerType(This,pwzAppDomainManagerAssembly,pwzAppDomainManagerType) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRControl_INTERFACE_DEFINED__ */ - - -#ifndef __ICLRRuntimeHost_INTERFACE_DEFINED__ -#define __ICLRRuntimeHost_INTERFACE_DEFINED__ - -/* interface ICLRRuntimeHost */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRRuntimeHost; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("90F1A06C-7712-4762-86B5-7A5EBA6BDB02") - ICLRRuntimeHost : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Start( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetHostControl( - /* [in] */ IHostControl *pHostControl) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCLRControl( - /* [out] */ ICLRControl **pCLRControl) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnloadAppDomain( - /* [in] */ DWORD dwAppDomainId, - /* [in] */ BOOL fWaitUntilDone) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExecuteInAppDomain( - /* [in] */ DWORD dwAppDomainId, - /* [in] */ FExecuteInAppDomainCallback pCallback, - /* [in] */ void *cookie) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentAppDomainId( - /* [out] */ DWORD *pdwAppDomainId) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExecuteApplication( - /* [in] */ LPCWSTR pwzAppFullName, - /* [in] */ DWORD dwManifestPaths, - /* [in] */ LPCWSTR *ppwzManifestPaths, - /* [in] */ DWORD dwActivationData, - /* [in] */ LPCWSTR *ppwzActivationData, - /* [out] */ int *pReturnValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExecuteInDefaultAppDomain( - /* [in] */ LPCWSTR pwzAssemblyPath, - /* [in] */ LPCWSTR pwzTypeName, - /* [in] */ LPCWSTR pwzMethodName, - /* [in] */ LPCWSTR pwzArgument, - /* [out] */ DWORD *pReturnValue) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRRuntimeHostVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRRuntimeHost * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRRuntimeHost * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRRuntimeHost * This); - - HRESULT ( STDMETHODCALLTYPE *Start )( - ICLRRuntimeHost * This); - - HRESULT ( STDMETHODCALLTYPE *Stop )( - ICLRRuntimeHost * This); - - HRESULT ( STDMETHODCALLTYPE *SetHostControl )( - ICLRRuntimeHost * This, - /* [in] */ IHostControl *pHostControl); - - HRESULT ( STDMETHODCALLTYPE *GetCLRControl )( - ICLRRuntimeHost * This, - /* [out] */ ICLRControl **pCLRControl); - - HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain )( - ICLRRuntimeHost * This, - /* [in] */ DWORD dwAppDomainId, - /* [in] */ BOOL fWaitUntilDone); - - HRESULT ( STDMETHODCALLTYPE *ExecuteInAppDomain )( - ICLRRuntimeHost * This, - /* [in] */ DWORD dwAppDomainId, - /* [in] */ FExecuteInAppDomainCallback pCallback, - /* [in] */ void *cookie); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentAppDomainId )( - ICLRRuntimeHost * This, - /* [out] */ DWORD *pdwAppDomainId); - - HRESULT ( STDMETHODCALLTYPE *ExecuteApplication )( - ICLRRuntimeHost * This, - /* [in] */ LPCWSTR pwzAppFullName, - /* [in] */ DWORD dwManifestPaths, - /* [in] */ LPCWSTR *ppwzManifestPaths, - /* [in] */ DWORD dwActivationData, - /* [in] */ LPCWSTR *ppwzActivationData, - /* [out] */ int *pReturnValue); - - HRESULT ( STDMETHODCALLTYPE *ExecuteInDefaultAppDomain )( - ICLRRuntimeHost * This, - /* [in] */ LPCWSTR pwzAssemblyPath, - /* [in] */ LPCWSTR pwzTypeName, - /* [in] */ LPCWSTR pwzMethodName, - /* [in] */ LPCWSTR pwzArgument, - /* [out] */ DWORD *pReturnValue); - - END_INTERFACE - } ICLRRuntimeHostVtbl; - - interface ICLRRuntimeHost - { - CONST_VTBL struct ICLRRuntimeHostVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRRuntimeHost_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRRuntimeHost_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRRuntimeHost_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRRuntimeHost_Start(This) \ - ( (This)->lpVtbl -> Start(This) ) - -#define ICLRRuntimeHost_Stop(This) \ - ( (This)->lpVtbl -> Stop(This) ) - -#define ICLRRuntimeHost_SetHostControl(This,pHostControl) \ - ( (This)->lpVtbl -> SetHostControl(This,pHostControl) ) - -#define ICLRRuntimeHost_GetCLRControl(This,pCLRControl) \ - ( (This)->lpVtbl -> GetCLRControl(This,pCLRControl) ) - -#define ICLRRuntimeHost_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) \ - ( (This)->lpVtbl -> UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) ) - -#define ICLRRuntimeHost_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) \ - ( (This)->lpVtbl -> ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) ) - -#define ICLRRuntimeHost_GetCurrentAppDomainId(This,pdwAppDomainId) \ - ( (This)->lpVtbl -> GetCurrentAppDomainId(This,pdwAppDomainId) ) - -#define ICLRRuntimeHost_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) \ - ( (This)->lpVtbl -> ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) ) - -#define ICLRRuntimeHost_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) \ - ( (This)->lpVtbl -> ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRRuntimeHost_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0010 */ -/* [local] */ - -#define CORECLR_HOST_AUTHENTICATION_KEY 0x1C6CA6F94025800LL -#define CORECLR_HOST_AUTHENTICATION_KEY_NONGEN 0x1C6CA6F94025801LL - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0010_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0010_v0_0_s_ifspec; - -#ifndef __ICLRRuntimeHost2_INTERFACE_DEFINED__ -#define __ICLRRuntimeHost2_INTERFACE_DEFINED__ - -/* interface ICLRRuntimeHost2 */ -/* [local][unique][helpstring][version][uuid][object] */ - - -EXTERN_C const IID IID_ICLRRuntimeHost2; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("712AB73F-2C22-4807-AD7E-F501D7B72C2D") - ICLRRuntimeHost2 : public ICLRRuntimeHost - { - public: - virtual HRESULT STDMETHODCALLTYPE CreateAppDomainWithManager( - /* [in] */ LPCWSTR wszFriendlyName, - /* [in] */ DWORD dwFlags, - /* [in] */ LPCWSTR wszAppDomainManagerAssemblyName, - /* [in] */ LPCWSTR wszAppDomainManagerTypeName, - /* [in] */ int nProperties, - /* [in] */ LPCWSTR *pPropertyNames, - /* [in] */ LPCWSTR *pPropertyValues, - /* [out] */ DWORD *pAppDomainID) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateDelegate( - /* [in] */ DWORD appDomainID, - /* [in] */ LPCWSTR wszAssemblyName, - /* [in] */ LPCWSTR wszClassName, - /* [in] */ LPCWSTR wszMethodName, - /* [out] */ INT_PTR *fnPtr) = 0; - - virtual HRESULT STDMETHODCALLTYPE Authenticate( - /* [in] */ ULONGLONG authKey) = 0; - - virtual HRESULT STDMETHODCALLTYPE RegisterMacEHPort( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetStartupFlags( - /* [in] */ STARTUP_FLAGS dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE DllGetActivationFactory( - /* [in] */ DWORD appDomainID, - /* [in] */ LPCWSTR wszTypeName, - /* [out] */ IActivationFactory **factory) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExecuteAssembly( - /* [in] */ DWORD dwAppDomainId, - /* [in] */ LPCWSTR pwzAssemblyPath, - /* [in] */ int argc, - /* [in] */ LPCWSTR *argv, - /* [out] */ DWORD *pReturnValue) = 0; - - }; - - MIDL_INTERFACE("64F6D366-D7C2-4F1F-B4B2-E8160CAC43AF") - ICLRRuntimeHost4 : public ICLRRuntimeHost2 - { - virtual HRESULT STDMETHODCALLTYPE UnloadAppDomain2( - /* [in] */ DWORD dwAppDomainId, - /* [in] */ BOOL fWaitUntilDone, - /* [out] */ int *pLatchedExitCode) = 0; - }; - -#else /* C style interface */ - - typedef struct ICLRRuntimeHost2Vtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRRuntimeHost2 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRRuntimeHost2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRRuntimeHost2 * This); - - HRESULT ( STDMETHODCALLTYPE *Start )( - ICLRRuntimeHost2 * This); - - HRESULT ( STDMETHODCALLTYPE *Stop )( - ICLRRuntimeHost2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetHostControl )( - ICLRRuntimeHost2 * This, - /* [in] */ IHostControl *pHostControl); - - HRESULT ( STDMETHODCALLTYPE *GetCLRControl )( - ICLRRuntimeHost2 * This, - /* [out] */ ICLRControl **pCLRControl); - - HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain )( - ICLRRuntimeHost2 * This, - /* [in] */ DWORD dwAppDomainId, - /* [in] */ BOOL fWaitUntilDone); - - HRESULT ( STDMETHODCALLTYPE *ExecuteInAppDomain )( - ICLRRuntimeHost2 * This, - /* [in] */ DWORD dwAppDomainId, - /* [in] */ FExecuteInAppDomainCallback pCallback, - /* [in] */ void *cookie); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentAppDomainId )( - ICLRRuntimeHost2 * This, - /* [out] */ DWORD *pdwAppDomainId); - - HRESULT ( STDMETHODCALLTYPE *ExecuteApplication )( - ICLRRuntimeHost2 * This, - /* [in] */ LPCWSTR pwzAppFullName, - /* [in] */ DWORD dwManifestPaths, - /* [in] */ LPCWSTR *ppwzManifestPaths, - /* [in] */ DWORD dwActivationData, - /* [in] */ LPCWSTR *ppwzActivationData, - /* [out] */ int *pReturnValue); - - HRESULT ( STDMETHODCALLTYPE *ExecuteInDefaultAppDomain )( - ICLRRuntimeHost2 * This, - /* [in] */ LPCWSTR pwzAssemblyPath, - /* [in] */ LPCWSTR pwzTypeName, - /* [in] */ LPCWSTR pwzMethodName, - /* [in] */ LPCWSTR pwzArgument, - /* [out] */ DWORD *pReturnValue); - - HRESULT ( STDMETHODCALLTYPE *CreateAppDomainWithManager )( - ICLRRuntimeHost2 * This, - /* [in] */ LPCWSTR wszFriendlyName, - /* [in] */ DWORD dwFlags, - /* [in] */ LPCWSTR wszAppDomainManagerAssemblyName, - /* [in] */ LPCWSTR wszAppDomainManagerTypeName, - /* [in] */ int nProperties, - /* [in] */ LPCWSTR *pPropertyNames, - /* [in] */ LPCWSTR *pPropertyValues, - /* [out] */ DWORD *pAppDomainID); - - HRESULT ( STDMETHODCALLTYPE *CreateDelegate )( - ICLRRuntimeHost2 * This, - /* [in] */ DWORD appDomainID, - /* [in] */ LPCWSTR wszAssemblyName, - /* [in] */ LPCWSTR wszClassName, - /* [in] */ LPCWSTR wszMethodName, - /* [out] */ INT_PTR *fnPtr); - - HRESULT ( STDMETHODCALLTYPE *Authenticate )( - ICLRRuntimeHost2 * This, - /* [in] */ ULONGLONG authKey); - - HRESULT ( STDMETHODCALLTYPE *RegisterMacEHPort )( - ICLRRuntimeHost2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetStartupFlags )( - ICLRRuntimeHost2 * This, - /* [in] */ STARTUP_FLAGS dwFlags); - - HRESULT ( STDMETHODCALLTYPE *DllGetActivationFactory )( - ICLRRuntimeHost2 * This, - /* [in] */ DWORD appDomainID, - /* [in] */ LPCWSTR wszTypeName, - /* [out] */ IActivationFactory **factory); - - HRESULT ( STDMETHODCALLTYPE *ExecuteAssembly )( - ICLRRuntimeHost2 * This, - /* [in] */ DWORD dwAppDomainId, - /* [in] */ LPCWSTR pwzAssemblyPath, - /* [in] */ int argc, - /* [in] */ LPCWSTR *argv, - /* [out] */ DWORD *pReturnValue); - - END_INTERFACE - } ICLRRuntimeHost2Vtbl; - - interface ICLRRuntimeHost2 - { - CONST_VTBL struct ICLRRuntimeHost2Vtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRRuntimeHost2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRRuntimeHost2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRRuntimeHost2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRRuntimeHost2_Start(This) \ - ( (This)->lpVtbl -> Start(This) ) - -#define ICLRRuntimeHost2_Stop(This) \ - ( (This)->lpVtbl -> Stop(This) ) - -#define ICLRRuntimeHost2_SetHostControl(This,pHostControl) \ - ( (This)->lpVtbl -> SetHostControl(This,pHostControl) ) - -#define ICLRRuntimeHost2_GetCLRControl(This,pCLRControl) \ - ( (This)->lpVtbl -> GetCLRControl(This,pCLRControl) ) - -#define ICLRRuntimeHost2_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) \ - ( (This)->lpVtbl -> UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) ) - -#define ICLRRuntimeHost2_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) \ - ( (This)->lpVtbl -> ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) ) - -#define ICLRRuntimeHost2_GetCurrentAppDomainId(This,pdwAppDomainId) \ - ( (This)->lpVtbl -> GetCurrentAppDomainId(This,pdwAppDomainId) ) - -#define ICLRRuntimeHost2_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) \ - ( (This)->lpVtbl -> ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) ) - -#define ICLRRuntimeHost2_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) \ - ( (This)->lpVtbl -> ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) ) - - -#define ICLRRuntimeHost2_CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) \ - ( (This)->lpVtbl -> CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) ) - -#define ICLRRuntimeHost2_CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) \ - ( (This)->lpVtbl -> CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) ) - -#define ICLRRuntimeHost2_Authenticate(This,authKey) \ - ( (This)->lpVtbl -> Authenticate(This,authKey) ) - -#define ICLRRuntimeHost2_RegisterMacEHPort(This) \ - ( (This)->lpVtbl -> RegisterMacEHPort(This) ) - -#define ICLRRuntimeHost2_SetStartupFlags(This,dwFlags) \ - ( (This)->lpVtbl -> SetStartupFlags(This,dwFlags) ) - -#define ICLRRuntimeHost2_DllGetActivationFactory(This,appDomainID,wszTypeName,factory) \ - ( (This)->lpVtbl -> DllGetActivationFactory(This,appDomainID,wszTypeName,factory) ) - -#define ICLRRuntimeHost2_ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) \ - ( (This)->lpVtbl -> ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRRuntimeHost2_INTERFACE_DEFINED__ */ - - -#ifndef __ICLRExecutionManager_INTERFACE_DEFINED__ -#define __ICLRExecutionManager_INTERFACE_DEFINED__ - -/* interface ICLRExecutionManager */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRExecutionManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("1000A3E7-B420-4620-AE30-FB19B587AD1D") - ICLRExecutionManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE Pause( - /* [in] */ DWORD dwAppDomainId, - /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE Resume( - /* [in] */ DWORD dwAppDomainId) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRExecutionManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRExecutionManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRExecutionManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRExecutionManager * This); - - HRESULT ( STDMETHODCALLTYPE *Pause )( - ICLRExecutionManager * This, - /* [in] */ DWORD dwAppDomainId, - /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *Resume )( - ICLRExecutionManager * This, - /* [in] */ DWORD dwAppDomainId); - - END_INTERFACE - } ICLRExecutionManagerVtbl; - - interface ICLRExecutionManager - { - CONST_VTBL struct ICLRExecutionManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRExecutionManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRExecutionManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRExecutionManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRExecutionManager_Pause(This,dwAppDomainId,dwFlags) \ - ( (This)->lpVtbl -> Pause(This,dwAppDomainId,dwFlags) ) - -#define ICLRExecutionManager_Resume(This,dwAppDomainId) \ - ( (This)->lpVtbl -> Resume(This,dwAppDomainId) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ICLRExecutionManager_INTERFACE_DEFINED__ */ - - -#ifndef __IHostNetCFDebugControlManager_INTERFACE_DEFINED__ -#define __IHostNetCFDebugControlManager_INTERFACE_DEFINED__ - -/* interface IHostNetCFDebugControlManager */ -/* [object][local][unique][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_IHostNetCFDebugControlManager; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("F2833A0C-F944-48d8-940E-F59425EDBFCF") - IHostNetCFDebugControlManager : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE NotifyPause( - DWORD dwReserved) = 0; - - virtual HRESULT STDMETHODCALLTYPE NotifyResume( - DWORD dwReserved) = 0; - - }; - - -#else /* C style interface */ - - typedef struct IHostNetCFDebugControlManagerVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IHostNetCFDebugControlManager * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IHostNetCFDebugControlManager * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IHostNetCFDebugControlManager * This); - - HRESULT ( STDMETHODCALLTYPE *NotifyPause )( - IHostNetCFDebugControlManager * This, - DWORD dwReserved); - - HRESULT ( STDMETHODCALLTYPE *NotifyResume )( - IHostNetCFDebugControlManager * This, - DWORD dwReserved); - - END_INTERFACE - } IHostNetCFDebugControlManagerVtbl; - - interface IHostNetCFDebugControlManager - { - CONST_VTBL struct IHostNetCFDebugControlManagerVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define IHostNetCFDebugControlManager_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define IHostNetCFDebugControlManager_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define IHostNetCFDebugControlManager_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define IHostNetCFDebugControlManager_NotifyPause(This,dwReserved) \ - ( (This)->lpVtbl -> NotifyPause(This,dwReserved) ) - -#define IHostNetCFDebugControlManager_NotifyResume(This,dwReserved) \ - ( (This)->lpVtbl -> NotifyResume(This,dwReserved) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __IHostNetCFDebugControlManager_INTERFACE_DEFINED__ */ - - -/* interface __MIDL_itf_mscoree_0000_0013 */ -/* [local] */ - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0013_0001 - { - eNoChecks = 0, - eSynchronization = 0x1, - eSharedState = 0x2, - eExternalProcessMgmt = 0x4, - eSelfAffectingProcessMgmt = 0x8, - eExternalThreading = 0x10, - eSelfAffectingThreading = 0x20, - eSecurityInfrastructure = 0x40, - eUI = 0x80, - eMayLeakOnAbort = 0x100, - eAll = 0x1ff - } EApiCategories; - -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0013_0002 - { - eInitializeNewDomainFlags_None = 0, - eInitializeNewDomainFlags_NoSecurityChanges = 0x2 - } EInitializeNewDomainFlags; - - - -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0013_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0013_v0_0_s_ifspec; - - -#ifndef __mscoree_LIBRARY_DEFINED__ -#define __mscoree_LIBRARY_DEFINED__ - -/* library mscoree */ -/* [helpstring][version][uuid] */ - -#define CCW_PTR int * - -EXTERN_C const IID LIBID_mscoree; - -#ifndef __ITypeName_INTERFACE_DEFINED__ -#define __ITypeName_INTERFACE_DEFINED__ - -/* interface ITypeName */ -/* [unique][helpstring][uuid][oleautomation][object] */ - - -EXTERN_C const IID IID_ITypeName; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("B81FF171-20F3-11d2-8DCC-00A0C9B00522") - ITypeName : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetNameCount( - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNames( - /* [in] */ DWORD count, - /* [out] */ BSTR *rgbszNames, - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeArgumentCount( - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeArguments( - /* [in] */ DWORD count, - /* [out] */ ITypeName **rgpArguments, - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetModifierLength( - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetModifiers( - /* [in] */ DWORD count, - /* [out] */ DWORD *rgModifiers, - /* [retval][out] */ DWORD *pCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAssemblyName( - /* [retval][out] */ BSTR *rgbszAssemblyNames) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ITypeNameVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ITypeName * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ITypeName * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ITypeName * This); - - HRESULT ( STDMETHODCALLTYPE *GetNameCount )( - ITypeName * This, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetNames )( - ITypeName * This, - /* [in] */ DWORD count, - /* [out] */ BSTR *rgbszNames, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetTypeArgumentCount )( - ITypeName * This, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetTypeArguments )( - ITypeName * This, - /* [in] */ DWORD count, - /* [out] */ ITypeName **rgpArguments, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetModifierLength )( - ITypeName * This, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetModifiers )( - ITypeName * This, - /* [in] */ DWORD count, - /* [out] */ DWORD *rgModifiers, - /* [retval][out] */ DWORD *pCount); - - HRESULT ( STDMETHODCALLTYPE *GetAssemblyName )( - ITypeName * This, - /* [retval][out] */ BSTR *rgbszAssemblyNames); - - END_INTERFACE - } ITypeNameVtbl; + } EClrOperation; - interface ITypeName +typedef /* [public] */ +enum __MIDL___MIDL_itf_mscoree_0000_0000_0007 { - CONST_VTBL struct ITypeNameVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeName_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeName_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeName_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeName_GetNameCount(This,pCount) \ - ( (This)->lpVtbl -> GetNameCount(This,pCount) ) - -#define ITypeName_GetNames(This,count,rgbszNames,pCount) \ - ( (This)->lpVtbl -> GetNames(This,count,rgbszNames,pCount) ) - -#define ITypeName_GetTypeArgumentCount(This,pCount) \ - ( (This)->lpVtbl -> GetTypeArgumentCount(This,pCount) ) - -#define ITypeName_GetTypeArguments(This,count,rgpArguments,pCount) \ - ( (This)->lpVtbl -> GetTypeArguments(This,count,rgpArguments,pCount) ) - -#define ITypeName_GetModifierLength(This,pCount) \ - ( (This)->lpVtbl -> GetModifierLength(This,pCount) ) - -#define ITypeName_GetModifiers(This,count,rgModifiers,pCount) \ - ( (This)->lpVtbl -> GetModifiers(This,count,rgModifiers,pCount) ) - -#define ITypeName_GetAssemblyName(This,rgbszAssemblyNames) \ - ( (This)->lpVtbl -> GetAssemblyName(This,rgbszAssemblyNames) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ + FAIL_NonCriticalResource = 0, + FAIL_CriticalResource = ( FAIL_NonCriticalResource + 1 ) , + FAIL_FatalRuntime = ( FAIL_CriticalResource + 1 ) , + FAIL_OrphanedLock = ( FAIL_FatalRuntime + 1 ) , + FAIL_StackOverflow = ( FAIL_OrphanedLock + 1 ) , + FAIL_AccessViolation = ( FAIL_StackOverflow + 1 ) , + FAIL_CodeContract = ( FAIL_AccessViolation + 1 ) , + MaxClrFailure = ( FAIL_CodeContract + 1 ) + } EClrFailure; +typedef /* [public] */ +enum __MIDL___MIDL_itf_mscoree_0000_0000_0008 + { + eRuntimeDeterminedPolicy = 0, + eHostDeterminedPolicy = ( eRuntimeDeterminedPolicy + 1 ) + } EClrUnhandledException; +typedef /* [public] */ +enum __MIDL___MIDL_itf_mscoree_0000_0000_0009 + { + eNoAction = 0, + eThrowException = ( eNoAction + 1 ) , + eAbortThread = ( eThrowException + 1 ) , + eRudeAbortThread = ( eAbortThread + 1 ) , + eUnloadAppDomain = ( eRudeAbortThread + 1 ) , + eRudeUnloadAppDomain = ( eUnloadAppDomain + 1 ) , + eExitProcess = ( eRudeUnloadAppDomain + 1 ) , + eFastExitProcess = ( eExitProcess + 1 ) , + eRudeExitProcess = ( eFastExitProcess + 1 ) , + MaxPolicyAction = (eRudeExitProcess + 1 ) + } EPolicyAction; -#endif /* __ITypeName_INTERFACE_DEFINED__ */ +extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0000_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0000_v0_0_s_ifspec; -#ifndef __ITypeNameBuilder_INTERFACE_DEFINED__ -#define __ITypeNameBuilder_INTERFACE_DEFINED__ +#ifndef __ICLRRuntimeHost_INTERFACE_DEFINED__ +#define __ICLRRuntimeHost_INTERFACE_DEFINED__ -/* interface ITypeNameBuilder */ -/* [unique][helpstring][uuid][oleautomation][object] */ +/* interface ICLRRuntimeHost */ +/* [object][local][unique][helpstring][version][uuid] */ -EXTERN_C const IID IID_ITypeNameBuilder; +EXTERN_C const IID IID_ICLRRuntimeHost; #if defined(__cplusplus) && !defined(CINTERFACE) - MIDL_INTERFACE("B81FF171-20F3-11d2-8DCC-00A0C9B00523") - ITypeNameBuilder : public IUnknown + MIDL_INTERFACE("90F1A06C-7712-4762-86B5-7A5EBA6BDB02") + ICLRRuntimeHost : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE OpenGenericArguments( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CloseGenericArguments( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE OpenGenericArgument( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CloseGenericArgument( void) = 0; + virtual HRESULT STDMETHODCALLTYPE Start( void) = 0; - virtual HRESULT STDMETHODCALLTYPE AddName( - /* [in] */ LPCWSTR szName) = 0; + virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0; - virtual HRESULT STDMETHODCALLTYPE AddPointer( void) = 0; + virtual HRESULT STDMETHODCALLTYPE SetHostControl( + /* [in] */ IHostControl *pHostControl) = 0; - virtual HRESULT STDMETHODCALLTYPE AddByRef( void) = 0; + virtual HRESULT STDMETHODCALLTYPE GetCLRControl( + /* [out] */ ICLRControl **pCLRControl) = 0; - virtual HRESULT STDMETHODCALLTYPE AddSzArray( void) = 0; + virtual HRESULT STDMETHODCALLTYPE UnloadAppDomain( + /* [in] */ DWORD dwAppDomainId, + /* [in] */ BOOL fWaitUntilDone) = 0; - virtual HRESULT STDMETHODCALLTYPE AddArray( - /* [in] */ DWORD rank) = 0; + virtual HRESULT STDMETHODCALLTYPE ExecuteInAppDomain( + /* [in] */ DWORD dwAppDomainId, + /* [in] */ FExecuteInAppDomainCallback pCallback, + /* [in] */ void *cookie) = 0; - virtual HRESULT STDMETHODCALLTYPE AddAssemblySpec( - /* [in] */ LPCWSTR szAssemblySpec) = 0; + virtual HRESULT STDMETHODCALLTYPE GetCurrentAppDomainId( + /* [out] */ DWORD *pdwAppDomainId) = 0; - virtual HRESULT STDMETHODCALLTYPE ToString( - /* [retval][out] */ BSTR *pszStringRepresentation) = 0; + virtual HRESULT STDMETHODCALLTYPE ExecuteApplication( + /* [in] */ LPCWSTR pwzAppFullName, + /* [in] */ DWORD dwManifestPaths, + /* [in] */ LPCWSTR *ppwzManifestPaths, + /* [in] */ DWORD dwActivationData, + /* [in] */ LPCWSTR *ppwzActivationData, + /* [out] */ int *pReturnValue) = 0; - virtual HRESULT STDMETHODCALLTYPE Clear( void) = 0; + virtual HRESULT STDMETHODCALLTYPE ExecuteInDefaultAppDomain( + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ LPCWSTR pwzTypeName, + /* [in] */ LPCWSTR pwzMethodName, + /* [in] */ LPCWSTR pwzArgument, + /* [out] */ DWORD *pReturnValue) = 0; }; #else /* C style interface */ - typedef struct ITypeNameBuilderVtbl + typedef struct ICLRRuntimeHostVtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ITypeNameBuilder * This, + ICLRRuntimeHost * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( - ITypeNameBuilder * This); + ICLRRuntimeHost * This); ULONG ( STDMETHODCALLTYPE *Release )( - ITypeNameBuilder * This); - - HRESULT ( STDMETHODCALLTYPE *OpenGenericArguments )( - ITypeNameBuilder * This); - - HRESULT ( STDMETHODCALLTYPE *CloseGenericArguments )( - ITypeNameBuilder * This); - - HRESULT ( STDMETHODCALLTYPE *OpenGenericArgument )( - ITypeNameBuilder * This); + ICLRRuntimeHost * This); - HRESULT ( STDMETHODCALLTYPE *CloseGenericArgument )( - ITypeNameBuilder * This); + HRESULT ( STDMETHODCALLTYPE *Start )( + ICLRRuntimeHost * This); - HRESULT ( STDMETHODCALLTYPE *AddName )( - ITypeNameBuilder * This, - /* [in] */ LPCWSTR szName); + HRESULT ( STDMETHODCALLTYPE *Stop )( + ICLRRuntimeHost * This); - HRESULT ( STDMETHODCALLTYPE *AddPointer )( - ITypeNameBuilder * This); + HRESULT ( STDMETHODCALLTYPE *SetHostControl )( + ICLRRuntimeHost * This, + /* [in] */ IHostControl *pHostControl); - HRESULT ( STDMETHODCALLTYPE *AddByRef )( - ITypeNameBuilder * This); + HRESULT ( STDMETHODCALLTYPE *GetCLRControl )( + ICLRRuntimeHost * This, + /* [out] */ ICLRControl **pCLRControl); - HRESULT ( STDMETHODCALLTYPE *AddSzArray )( - ITypeNameBuilder * This); + HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain )( + ICLRRuntimeHost * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ BOOL fWaitUntilDone); - HRESULT ( STDMETHODCALLTYPE *AddArray )( - ITypeNameBuilder * This, - /* [in] */ DWORD rank); + HRESULT ( STDMETHODCALLTYPE *ExecuteInAppDomain )( + ICLRRuntimeHost * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ FExecuteInAppDomainCallback pCallback, + /* [in] */ void *cookie); - HRESULT ( STDMETHODCALLTYPE *AddAssemblySpec )( - ITypeNameBuilder * This, - /* [in] */ LPCWSTR szAssemblySpec); + HRESULT ( STDMETHODCALLTYPE *GetCurrentAppDomainId )( + ICLRRuntimeHost * This, + /* [out] */ DWORD *pdwAppDomainId); - HRESULT ( STDMETHODCALLTYPE *ToString )( - ITypeNameBuilder * This, - /* [retval][out] */ BSTR *pszStringRepresentation); + HRESULT ( STDMETHODCALLTYPE *ExecuteApplication )( + ICLRRuntimeHost * This, + /* [in] */ LPCWSTR pwzAppFullName, + /* [in] */ DWORD dwManifestPaths, + /* [in] */ LPCWSTR *ppwzManifestPaths, + /* [in] */ DWORD dwActivationData, + /* [in] */ LPCWSTR *ppwzActivationData, + /* [out] */ int *pReturnValue); - HRESULT ( STDMETHODCALLTYPE *Clear )( - ITypeNameBuilder * This); + HRESULT ( STDMETHODCALLTYPE *ExecuteInDefaultAppDomain )( + ICLRRuntimeHost * This, + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ LPCWSTR pwzTypeName, + /* [in] */ LPCWSTR pwzMethodName, + /* [in] */ LPCWSTR pwzArgument, + /* [out] */ DWORD *pReturnValue); END_INTERFACE - } ITypeNameBuilderVtbl; + } ICLRRuntimeHostVtbl; - interface ITypeNameBuilder + interface ICLRRuntimeHost { - CONST_VTBL struct ITypeNameBuilderVtbl *lpVtbl; + CONST_VTBL struct ICLRRuntimeHostVtbl *lpVtbl; }; @@ -2505,51 +369,42 @@ EXTERN_C const IID IID_ITypeNameBuilder; #ifdef COBJMACROS -#define ITypeNameBuilder_QueryInterface(This,riid,ppvObject) \ +#define ICLRRuntimeHost_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ITypeNameBuilder_AddRef(This) \ +#define ICLRRuntimeHost_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ITypeNameBuilder_Release(This) \ +#define ICLRRuntimeHost_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ITypeNameBuilder_OpenGenericArguments(This) \ - ( (This)->lpVtbl -> OpenGenericArguments(This) ) - -#define ITypeNameBuilder_CloseGenericArguments(This) \ - ( (This)->lpVtbl -> CloseGenericArguments(This) ) - -#define ITypeNameBuilder_OpenGenericArgument(This) \ - ( (This)->lpVtbl -> OpenGenericArgument(This) ) - -#define ITypeNameBuilder_CloseGenericArgument(This) \ - ( (This)->lpVtbl -> CloseGenericArgument(This) ) +#define ICLRRuntimeHost_Start(This) \ + ( (This)->lpVtbl -> Start(This) ) -#define ITypeNameBuilder_AddName(This,szName) \ - ( (This)->lpVtbl -> AddName(This,szName) ) +#define ICLRRuntimeHost_Stop(This) \ + ( (This)->lpVtbl -> Stop(This) ) -#define ITypeNameBuilder_AddPointer(This) \ - ( (This)->lpVtbl -> AddPointer(This) ) +#define ICLRRuntimeHost_SetHostControl(This,pHostControl) \ + ( (This)->lpVtbl -> SetHostControl(This,pHostControl) ) -#define ITypeNameBuilder_AddByRef(This) \ - ( (This)->lpVtbl -> AddByRef(This) ) +#define ICLRRuntimeHost_GetCLRControl(This,pCLRControl) \ + ( (This)->lpVtbl -> GetCLRControl(This,pCLRControl) ) -#define ITypeNameBuilder_AddSzArray(This) \ - ( (This)->lpVtbl -> AddSzArray(This) ) +#define ICLRRuntimeHost_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) \ + ( (This)->lpVtbl -> UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) ) -#define ITypeNameBuilder_AddArray(This,rank) \ - ( (This)->lpVtbl -> AddArray(This,rank) ) +#define ICLRRuntimeHost_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) \ + ( (This)->lpVtbl -> ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) ) -#define ITypeNameBuilder_AddAssemblySpec(This,szAssemblySpec) \ - ( (This)->lpVtbl -> AddAssemblySpec(This,szAssemblySpec) ) +#define ICLRRuntimeHost_GetCurrentAppDomainId(This,pdwAppDomainId) \ + ( (This)->lpVtbl -> GetCurrentAppDomainId(This,pdwAppDomainId) ) -#define ITypeNameBuilder_ToString(This,pszStringRepresentation) \ - ( (This)->lpVtbl -> ToString(This,pszStringRepresentation) ) +#define ICLRRuntimeHost_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) ) -#define ITypeNameBuilder_Clear(This) \ - ( (This)->lpVtbl -> Clear(This) ) +#define ICLRRuntimeHost_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) ) #endif /* COBJMACROS */ @@ -2559,163 +414,178 @@ EXTERN_C const IID IID_ITypeNameBuilder; -#endif /* __ITypeNameBuilder_INTERFACE_DEFINED__ */ +#endif /* __ICLRRuntimeHost_INTERFACE_DEFINED__ */ -#ifndef __ITypeNameFactory_INTERFACE_DEFINED__ -#define __ITypeNameFactory_INTERFACE_DEFINED__ +#ifndef __ICLRRuntimeHost2_INTERFACE_DEFINED__ +#define __ICLRRuntimeHost2_INTERFACE_DEFINED__ -/* interface ITypeNameFactory */ -/* [unique][helpstring][uuid][oleautomation][object] */ +/* interface ICLRRuntimeHost2 */ +/* [local][unique][helpstring][version][uuid][object] */ -EXTERN_C const IID IID_ITypeNameFactory; +EXTERN_C const IID IID_ICLRRuntimeHost2; #if defined(__cplusplus) && !defined(CINTERFACE) - MIDL_INTERFACE("B81FF171-20F3-11d2-8DCC-00A0C9B00521") - ITypeNameFactory : public IUnknown + MIDL_INTERFACE("712AB73F-2C22-4807-AD7E-F501D7B72C2D") + ICLRRuntimeHost2 : public ICLRRuntimeHost { public: - virtual HRESULT STDMETHODCALLTYPE ParseTypeName( - /* [in] */ LPCWSTR szName, - /* [out] */ DWORD *pError, - /* [retval][out] */ ITypeName **ppTypeName) = 0; + virtual HRESULT STDMETHODCALLTYPE CreateAppDomainWithManager( + /* [in] */ LPCWSTR wszFriendlyName, + /* [in] */ DWORD dwFlags, + /* [in] */ LPCWSTR wszAppDomainManagerAssemblyName, + /* [in] */ LPCWSTR wszAppDomainManagerTypeName, + /* [in] */ int nProperties, + /* [in] */ LPCWSTR *pPropertyNames, + /* [in] */ LPCWSTR *pPropertyValues, + /* [out] */ DWORD *pAppDomainID) = 0; + + virtual HRESULT STDMETHODCALLTYPE CreateDelegate( + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszAssemblyName, + /* [in] */ LPCWSTR wszClassName, + /* [in] */ LPCWSTR wszMethodName, + /* [out] */ INT_PTR *fnPtr) = 0; + + virtual HRESULT STDMETHODCALLTYPE Authenticate( + /* [in] */ ULONGLONG authKey) = 0; + + virtual HRESULT STDMETHODCALLTYPE RegisterMacEHPort( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE SetStartupFlags( + /* [in] */ STARTUP_FLAGS dwFlags) = 0; + + virtual HRESULT STDMETHODCALLTYPE DllGetActivationFactory( + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszTypeName, + /* [out] */ IActivationFactory **factory) = 0; - virtual HRESULT STDMETHODCALLTYPE GetTypeNameBuilder( - /* [retval][out] */ ITypeNameBuilder **ppTypeBuilder) = 0; + virtual HRESULT STDMETHODCALLTYPE ExecuteAssembly( + /* [in] */ DWORD dwAppDomainId, + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ int argc, + /* [in] */ LPCWSTR *argv, + /* [out] */ DWORD *pReturnValue) = 0; }; #else /* C style interface */ - typedef struct ITypeNameFactoryVtbl + typedef struct ICLRRuntimeHost2Vtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ITypeNameFactory * This, + ICLRRuntimeHost2 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( - ITypeNameFactory * This); + ICLRRuntimeHost2 * This); ULONG ( STDMETHODCALLTYPE *Release )( - ITypeNameFactory * This); + ICLRRuntimeHost2 * This); - HRESULT ( STDMETHODCALLTYPE *ParseTypeName )( - ITypeNameFactory * This, - /* [in] */ LPCWSTR szName, - /* [out] */ DWORD *pError, - /* [retval][out] */ ITypeName **ppTypeName); + HRESULT ( STDMETHODCALLTYPE *Start )( + ICLRRuntimeHost2 * This); - HRESULT ( STDMETHODCALLTYPE *GetTypeNameBuilder )( - ITypeNameFactory * This, - /* [retval][out] */ ITypeNameBuilder **ppTypeBuilder); + HRESULT ( STDMETHODCALLTYPE *Stop )( + ICLRRuntimeHost2 * This); - END_INTERFACE - } ITypeNameFactoryVtbl; - - interface ITypeNameFactory - { - CONST_VTBL struct ITypeNameFactoryVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ITypeNameFactory_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ITypeNameFactory_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ITypeNameFactory_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ITypeNameFactory_ParseTypeName(This,szName,pError,ppTypeName) \ - ( (This)->lpVtbl -> ParseTypeName(This,szName,pError,ppTypeName) ) - -#define ITypeNameFactory_GetTypeNameBuilder(This,ppTypeBuilder) \ - ( (This)->lpVtbl -> GetTypeNameBuilder(This,ppTypeBuilder) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* __ITypeNameFactory_INTERFACE_DEFINED__ */ - - -#ifndef __IManagedObject_INTERFACE_DEFINED__ -#define __IManagedObject_INTERFACE_DEFINED__ - -/* interface IManagedObject */ -/* [proxy][unique][helpstring][uuid][oleautomation][object] */ - - -EXTERN_C const IID IID_IManagedObject; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("C3FCC19E-A970-11d2-8B5A-00A0C9B7C9C4") - IManagedObject : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE GetSerializedBuffer( - /* [out] */ BSTR *pBSTR) = 0; + HRESULT ( STDMETHODCALLTYPE *SetHostControl )( + ICLRRuntimeHost2 * This, + /* [in] */ IHostControl *pHostControl); + + HRESULT ( STDMETHODCALLTYPE *GetCLRControl )( + ICLRRuntimeHost2 * This, + /* [out] */ ICLRControl **pCLRControl); - virtual HRESULT STDMETHODCALLTYPE GetObjectIdentity( - /* [out] */ BSTR *pBSTRGUID, - /* [out] */ int *AppDomainID, - /* [out] */ int *pCCW) = 0; + HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain )( + ICLRRuntimeHost2 * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ BOOL fWaitUntilDone); - }; - - -#else /* C style interface */ - - typedef struct IManagedObjectVtbl - { - BEGIN_INTERFACE + HRESULT ( STDMETHODCALLTYPE *ExecuteInAppDomain )( + ICLRRuntimeHost2 * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ FExecuteInAppDomainCallback pCallback, + /* [in] */ void *cookie); - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IManagedObject * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); + HRESULT ( STDMETHODCALLTYPE *GetCurrentAppDomainId )( + ICLRRuntimeHost2 * This, + /* [out] */ DWORD *pdwAppDomainId); - ULONG ( STDMETHODCALLTYPE *AddRef )( - IManagedObject * This); + HRESULT ( STDMETHODCALLTYPE *ExecuteApplication )( + ICLRRuntimeHost2 * This, + /* [in] */ LPCWSTR pwzAppFullName, + /* [in] */ DWORD dwManifestPaths, + /* [in] */ LPCWSTR *ppwzManifestPaths, + /* [in] */ DWORD dwActivationData, + /* [in] */ LPCWSTR *ppwzActivationData, + /* [out] */ int *pReturnValue); - ULONG ( STDMETHODCALLTYPE *Release )( - IManagedObject * This); + HRESULT ( STDMETHODCALLTYPE *ExecuteInDefaultAppDomain )( + ICLRRuntimeHost2 * This, + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ LPCWSTR pwzTypeName, + /* [in] */ LPCWSTR pwzMethodName, + /* [in] */ LPCWSTR pwzArgument, + /* [out] */ DWORD *pReturnValue); + + HRESULT ( STDMETHODCALLTYPE *CreateAppDomainWithManager )( + ICLRRuntimeHost2 * This, + /* [in] */ LPCWSTR wszFriendlyName, + /* [in] */ DWORD dwFlags, + /* [in] */ LPCWSTR wszAppDomainManagerAssemblyName, + /* [in] */ LPCWSTR wszAppDomainManagerTypeName, + /* [in] */ int nProperties, + /* [in] */ LPCWSTR *pPropertyNames, + /* [in] */ LPCWSTR *pPropertyValues, + /* [out] */ DWORD *pAppDomainID); + + HRESULT ( STDMETHODCALLTYPE *CreateDelegate )( + ICLRRuntimeHost2 * This, + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszAssemblyName, + /* [in] */ LPCWSTR wszClassName, + /* [in] */ LPCWSTR wszMethodName, + /* [out] */ INT_PTR *fnPtr); + + HRESULT ( STDMETHODCALLTYPE *Authenticate )( + ICLRRuntimeHost2 * This, + /* [in] */ ULONGLONG authKey); + + HRESULT ( STDMETHODCALLTYPE *RegisterMacEHPort )( + ICLRRuntimeHost2 * This); + + HRESULT ( STDMETHODCALLTYPE *SetStartupFlags )( + ICLRRuntimeHost2 * This, + /* [in] */ STARTUP_FLAGS dwFlags); - HRESULT ( STDMETHODCALLTYPE *GetSerializedBuffer )( - IManagedObject * This, - /* [out] */ BSTR *pBSTR); + HRESULT ( STDMETHODCALLTYPE *DllGetActivationFactory )( + ICLRRuntimeHost2 * This, + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszTypeName, + /* [out] */ IActivationFactory **factory); - HRESULT ( STDMETHODCALLTYPE *GetObjectIdentity )( - IManagedObject * This, - /* [out] */ BSTR *pBSTRGUID, - /* [out] */ int *AppDomainID, - /* [out] */ int *pCCW); + HRESULT ( STDMETHODCALLTYPE *ExecuteAssembly )( + ICLRRuntimeHost2 * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ int argc, + /* [in] */ LPCWSTR *argv, + /* [out] */ DWORD *pReturnValue); END_INTERFACE - } IManagedObjectVtbl; + } ICLRRuntimeHost2Vtbl; - interface IManagedObject + interface ICLRRuntimeHost2 { - CONST_VTBL struct IManagedObjectVtbl *lpVtbl; + CONST_VTBL struct ICLRRuntimeHost2Vtbl *lpVtbl; }; @@ -2723,152 +593,219 @@ EXTERN_C const IID IID_IManagedObject; #ifdef COBJMACROS -#define IManagedObject_QueryInterface(This,riid,ppvObject) \ +#define ICLRRuntimeHost2_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define IManagedObject_AddRef(This) \ +#define ICLRRuntimeHost2_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define IManagedObject_Release(This) \ +#define ICLRRuntimeHost2_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define IManagedObject_GetSerializedBuffer(This,pBSTR) \ - ( (This)->lpVtbl -> GetSerializedBuffer(This,pBSTR) ) - -#define IManagedObject_GetObjectIdentity(This,pBSTRGUID,AppDomainID,pCCW) \ - ( (This)->lpVtbl -> GetObjectIdentity(This,pBSTRGUID,AppDomainID,pCCW) ) - -#endif /* COBJMACROS */ +#define ICLRRuntimeHost2_Start(This) \ + ( (This)->lpVtbl -> Start(This) ) +#define ICLRRuntimeHost2_Stop(This) \ + ( (This)->lpVtbl -> Stop(This) ) -#endif /* C style interface */ +#define ICLRRuntimeHost2_SetHostControl(This,pHostControl) \ + ( (This)->lpVtbl -> SetHostControl(This,pHostControl) ) +#define ICLRRuntimeHost2_GetCLRControl(This,pCLRControl) \ + ( (This)->lpVtbl -> GetCLRControl(This,pCLRControl) ) +#define ICLRRuntimeHost2_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) \ + ( (This)->lpVtbl -> UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) ) +#define ICLRRuntimeHost2_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) \ + ( (This)->lpVtbl -> ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) ) -#endif /* __IManagedObject_INTERFACE_DEFINED__ */ +#define ICLRRuntimeHost2_GetCurrentAppDomainId(This,pdwAppDomainId) \ + ( (This)->lpVtbl -> GetCurrentAppDomainId(This,pdwAppDomainId) ) +#define ICLRRuntimeHost2_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) ) -EXTERN_C const CLSID CLSID_ComCallUnmarshal; +#define ICLRRuntimeHost2_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) ) -#ifdef __cplusplus -class DECLSPEC_UUID("3F281000-E95A-11d2-886B-00C04F869F04") -ComCallUnmarshal; -#endif +#define ICLRRuntimeHost2_CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) \ + ( (This)->lpVtbl -> CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) ) -EXTERN_C const CLSID CLSID_ComCallUnmarshalV4; +#define ICLRRuntimeHost2_CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) \ + ( (This)->lpVtbl -> CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) ) -#ifdef __cplusplus +#define ICLRRuntimeHost2_Authenticate(This,authKey) \ + ( (This)->lpVtbl -> Authenticate(This,authKey) ) -class DECLSPEC_UUID("45FB4600-E6E8-4928-B25E-50476FF79425") -ComCallUnmarshalV4; -#endif +#define ICLRRuntimeHost2_RegisterMacEHPort(This) \ + ( (This)->lpVtbl -> RegisterMacEHPort(This) ) -EXTERN_C const CLSID CLSID_CLRRuntimeHost; +#define ICLRRuntimeHost2_SetStartupFlags(This,dwFlags) \ + ( (This)->lpVtbl -> SetStartupFlags(This,dwFlags) ) -#ifdef __cplusplus +#define ICLRRuntimeHost2_DllGetActivationFactory(This,appDomainID,wszTypeName,factory) \ + ( (This)->lpVtbl -> DllGetActivationFactory(This,appDomainID,wszTypeName,factory) ) -class DECLSPEC_UUID("90F1A06E-7712-4762-86B5-7A5EBA6BDB02") -CLRRuntimeHost; -#endif +#define ICLRRuntimeHost2_ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) ) -EXTERN_C const CLSID CLSID_TypeNameFactory; +#endif /* COBJMACROS */ -#ifdef __cplusplus -class DECLSPEC_UUID("B81FF171-20F3-11d2-8DCC-00A0C9B00525") -TypeNameFactory; -#endif -#endif /* __mscoree_LIBRARY_DEFINED__ */ +#endif /* C style interface */ -/* interface __MIDL_itf_mscoree_0000_0014 */ -/* [local] */ -typedef /* [public] */ -enum __MIDL___MIDL_itf_mscoree_0000_0014_0001 - { - eCurrentContext = 0, - eRestrictedContext = 0x1 - } EContextType; +#endif /* __ICLRRuntimeHost2_INTERFACE_DEFINED__ */ -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0014_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0014_v0_0_s_ifspec; -#ifndef __ICLRAppDomainResourceMonitor_INTERFACE_DEFINED__ -#define __ICLRAppDomainResourceMonitor_INTERFACE_DEFINED__ +#ifndef __ICLRRuntimeHost4_INTERFACE_DEFINED__ +#define __ICLRRuntimeHost4_INTERFACE_DEFINED__ -/* interface ICLRAppDomainResourceMonitor */ -/* [object][local][unique][helpstring][uuid][version] */ +/* interface ICLRRuntimeHost4 */ +/* [local][unique][helpstring][version][uuid][object] */ -EXTERN_C const IID IID_ICLRAppDomainResourceMonitor; +EXTERN_C const IID IID_ICLRRuntimeHost4; #if defined(__cplusplus) && !defined(CINTERFACE) - MIDL_INTERFACE("c62de18c-2e23-4aea-8423-b40c1fc59eae") - ICLRAppDomainResourceMonitor : public IUnknown + MIDL_INTERFACE("64F6D366-D7C2-4F1F-B4B2-E8160CAC43AF") + ICLRRuntimeHost4 : public ICLRRuntimeHost2 { public: - virtual HRESULT STDMETHODCALLTYPE GetCurrentAllocated( + virtual HRESULT STDMETHODCALLTYPE UnloadAppDomain2( /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pBytesAllocated) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentSurvived( - /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pAppDomainBytesSurvived, - /* [out] */ ULONGLONG *pTotalBytesSurvived) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentCpuTime( - /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pMilliseconds) = 0; + /* [in] */ BOOL fWaitUntilDone, + /* [out] */ int *pLatchedExitCode) = 0; }; #else /* C style interface */ - typedef struct ICLRAppDomainResourceMonitorVtbl + typedef struct ICLRRuntimeHost4Vtbl { BEGIN_INTERFACE HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRAppDomainResourceMonitor * This, + ICLRRuntimeHost4 * This, /* [in] */ REFIID riid, /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRAppDomainResourceMonitor * This); + ICLRRuntimeHost4 * This); ULONG ( STDMETHODCALLTYPE *Release )( - ICLRAppDomainResourceMonitor * This); + ICLRRuntimeHost4 * This); + + HRESULT ( STDMETHODCALLTYPE *Start )( + ICLRRuntimeHost4 * This); + + HRESULT ( STDMETHODCALLTYPE *Stop )( + ICLRRuntimeHost4 * This); + + HRESULT ( STDMETHODCALLTYPE *SetHostControl )( + ICLRRuntimeHost4 * This, + /* [in] */ IHostControl *pHostControl); + + HRESULT ( STDMETHODCALLTYPE *GetCLRControl )( + ICLRRuntimeHost4 * This, + /* [out] */ ICLRControl **pCLRControl); - HRESULT ( STDMETHODCALLTYPE *GetCurrentAllocated )( - ICLRAppDomainResourceMonitor * This, + HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain )( + ICLRRuntimeHost4 * This, + /* [in] */ DWORD dwAppDomainId, + /* [in] */ BOOL fWaitUntilDone); + + HRESULT ( STDMETHODCALLTYPE *ExecuteInAppDomain )( + ICLRRuntimeHost4 * This, /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pBytesAllocated); + /* [in] */ FExecuteInAppDomainCallback pCallback, + /* [in] */ void *cookie); + + HRESULT ( STDMETHODCALLTYPE *GetCurrentAppDomainId )( + ICLRRuntimeHost4 * This, + /* [out] */ DWORD *pdwAppDomainId); + + HRESULT ( STDMETHODCALLTYPE *ExecuteApplication )( + ICLRRuntimeHost4 * This, + /* [in] */ LPCWSTR pwzAppFullName, + /* [in] */ DWORD dwManifestPaths, + /* [in] */ LPCWSTR *ppwzManifestPaths, + /* [in] */ DWORD dwActivationData, + /* [in] */ LPCWSTR *ppwzActivationData, + /* [out] */ int *pReturnValue); + + HRESULT ( STDMETHODCALLTYPE *ExecuteInDefaultAppDomain )( + ICLRRuntimeHost4 * This, + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ LPCWSTR pwzTypeName, + /* [in] */ LPCWSTR pwzMethodName, + /* [in] */ LPCWSTR pwzArgument, + /* [out] */ DWORD *pReturnValue); + + HRESULT ( STDMETHODCALLTYPE *CreateAppDomainWithManager )( + ICLRRuntimeHost4 * This, + /* [in] */ LPCWSTR wszFriendlyName, + /* [in] */ DWORD dwFlags, + /* [in] */ LPCWSTR wszAppDomainManagerAssemblyName, + /* [in] */ LPCWSTR wszAppDomainManagerTypeName, + /* [in] */ int nProperties, + /* [in] */ LPCWSTR *pPropertyNames, + /* [in] */ LPCWSTR *pPropertyValues, + /* [out] */ DWORD *pAppDomainID); + + HRESULT ( STDMETHODCALLTYPE *CreateDelegate )( + ICLRRuntimeHost4 * This, + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszAssemblyName, + /* [in] */ LPCWSTR wszClassName, + /* [in] */ LPCWSTR wszMethodName, + /* [out] */ INT_PTR *fnPtr); + + HRESULT ( STDMETHODCALLTYPE *Authenticate )( + ICLRRuntimeHost4 * This, + /* [in] */ ULONGLONG authKey); + + HRESULT ( STDMETHODCALLTYPE *RegisterMacEHPort )( + ICLRRuntimeHost4 * This); + + HRESULT ( STDMETHODCALLTYPE *SetStartupFlags )( + ICLRRuntimeHost4 * This, + /* [in] */ STARTUP_FLAGS dwFlags); + + HRESULT ( STDMETHODCALLTYPE *DllGetActivationFactory )( + ICLRRuntimeHost4 * This, + /* [in] */ DWORD appDomainID, + /* [in] */ LPCWSTR wszTypeName, + /* [out] */ IActivationFactory **factory); - HRESULT ( STDMETHODCALLTYPE *GetCurrentSurvived )( - ICLRAppDomainResourceMonitor * This, + HRESULT ( STDMETHODCALLTYPE *ExecuteAssembly )( + ICLRRuntimeHost4 * This, /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pAppDomainBytesSurvived, - /* [out] */ ULONGLONG *pTotalBytesSurvived); + /* [in] */ LPCWSTR pwzAssemblyPath, + /* [in] */ int argc, + /* [in] */ LPCWSTR *argv, + /* [out] */ DWORD *pReturnValue); - HRESULT ( STDMETHODCALLTYPE *GetCurrentCpuTime )( - ICLRAppDomainResourceMonitor * This, + HRESULT ( STDMETHODCALLTYPE *UnloadAppDomain2 )( + ICLRRuntimeHost4 * This, /* [in] */ DWORD dwAppDomainId, - /* [out] */ ULONGLONG *pMilliseconds); + /* [in] */ BOOL fWaitUntilDone, + /* [out] */ int *pLatchedExitCode); END_INTERFACE - } ICLRAppDomainResourceMonitorVtbl; + } ICLRRuntimeHost4Vtbl; - interface ICLRAppDomainResourceMonitor + interface ICLRRuntimeHost4 { - CONST_VTBL struct ICLRAppDomainResourceMonitorVtbl *lpVtbl; + CONST_VTBL struct ICLRRuntimeHost4Vtbl *lpVtbl; }; @@ -2876,24 +813,68 @@ EXTERN_C const IID IID_ICLRAppDomainResourceMonitor; #ifdef COBJMACROS -#define ICLRAppDomainResourceMonitor_QueryInterface(This,riid,ppvObject) \ +#define ICLRRuntimeHost4_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICLRAppDomainResourceMonitor_AddRef(This) \ +#define ICLRRuntimeHost4_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICLRAppDomainResourceMonitor_Release(This) \ +#define ICLRRuntimeHost4_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICLRAppDomainResourceMonitor_GetCurrentAllocated(This,dwAppDomainId,pBytesAllocated) \ - ( (This)->lpVtbl -> GetCurrentAllocated(This,dwAppDomainId,pBytesAllocated) ) +#define ICLRRuntimeHost4_Start(This) \ + ( (This)->lpVtbl -> Start(This) ) + +#define ICLRRuntimeHost4_Stop(This) \ + ( (This)->lpVtbl -> Stop(This) ) + +#define ICLRRuntimeHost4_SetHostControl(This,pHostControl) \ + ( (This)->lpVtbl -> SetHostControl(This,pHostControl) ) + +#define ICLRRuntimeHost4_GetCLRControl(This,pCLRControl) \ + ( (This)->lpVtbl -> GetCLRControl(This,pCLRControl) ) + +#define ICLRRuntimeHost4_UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) \ + ( (This)->lpVtbl -> UnloadAppDomain(This,dwAppDomainId,fWaitUntilDone) ) + +#define ICLRRuntimeHost4_ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) \ + ( (This)->lpVtbl -> ExecuteInAppDomain(This,dwAppDomainId,pCallback,cookie) ) + +#define ICLRRuntimeHost4_GetCurrentAppDomainId(This,pdwAppDomainId) \ + ( (This)->lpVtbl -> GetCurrentAppDomainId(This,pdwAppDomainId) ) + +#define ICLRRuntimeHost4_ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteApplication(This,pwzAppFullName,dwManifestPaths,ppwzManifestPaths,dwActivationData,ppwzActivationData,pReturnValue) ) + +#define ICLRRuntimeHost4_ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteInDefaultAppDomain(This,pwzAssemblyPath,pwzTypeName,pwzMethodName,pwzArgument,pReturnValue) ) + + +#define ICLRRuntimeHost4_CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) \ + ( (This)->lpVtbl -> CreateAppDomainWithManager(This,wszFriendlyName,dwFlags,wszAppDomainManagerAssemblyName,wszAppDomainManagerTypeName,nProperties,pPropertyNames,pPropertyValues,pAppDomainID) ) + +#define ICLRRuntimeHost4_CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) \ + ( (This)->lpVtbl -> CreateDelegate(This,appDomainID,wszAssemblyName,wszClassName,wszMethodName,fnPtr) ) + +#define ICLRRuntimeHost4_Authenticate(This,authKey) \ + ( (This)->lpVtbl -> Authenticate(This,authKey) ) + +#define ICLRRuntimeHost4_RegisterMacEHPort(This) \ + ( (This)->lpVtbl -> RegisterMacEHPort(This) ) + +#define ICLRRuntimeHost4_SetStartupFlags(This,dwFlags) \ + ( (This)->lpVtbl -> SetStartupFlags(This,dwFlags) ) + +#define ICLRRuntimeHost4_DllGetActivationFactory(This,appDomainID,wszTypeName,factory) \ + ( (This)->lpVtbl -> DllGetActivationFactory(This,appDomainID,wszTypeName,factory) ) + +#define ICLRRuntimeHost4_ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) \ + ( (This)->lpVtbl -> ExecuteAssembly(This,dwAppDomainId,pwzAssemblyPath,argc,argv,pReturnValue) ) -#define ICLRAppDomainResourceMonitor_GetCurrentSurvived(This,dwAppDomainId,pAppDomainBytesSurvived,pTotalBytesSurvived) \ - ( (This)->lpVtbl -> GetCurrentSurvived(This,dwAppDomainId,pAppDomainBytesSurvived,pTotalBytesSurvived) ) -#define ICLRAppDomainResourceMonitor_GetCurrentCpuTime(This,dwAppDomainId,pMilliseconds) \ - ( (This)->lpVtbl -> GetCurrentCpuTime(This,dwAppDomainId,pMilliseconds) ) +#define ICLRRuntimeHost4_UnloadAppDomain2(This,dwAppDomainId,fWaitUntilDone,pLatchedExitCode) \ + ( (This)->lpVtbl -> UnloadAppDomain2(This,dwAppDomainId,fWaitUntilDone,pLatchedExitCode) ) #endif /* COBJMACROS */ @@ -2903,10 +884,10 @@ EXTERN_C const IID IID_ICLRAppDomainResourceMonitor; -#endif /* __ICLRAppDomainResourceMonitor_INTERFACE_DEFINED__ */ +#endif /* __ICLRRuntimeHost4_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_mscoree_0000_0015 */ +/* interface __MIDL_itf_mscoree_0000_0003 */ /* [local] */ #undef DEPRECATED_CLR_STDAPI @@ -2914,8 +895,8 @@ EXTERN_C const IID IID_ICLRAppDomainResourceMonitor; #undef DEPRECATED_CLR_API_MESG -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0015_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0015_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0003_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_mscoree_0000_0003_v0_0_s_ifspec; /* Additional Prototypes for ALL interfaces */ diff --git a/lib/coreclr/src/pal/prebuilt/inc/sospriv.h b/lib/coreclr/src/pal/prebuilt/inc/sospriv.h index 3b810cc9b6ff..889672079278 100644 --- a/lib/coreclr/src/pal/prebuilt/inc/sospriv.h +++ b/lib/coreclr/src/pal/prebuilt/inc/sospriv.h @@ -2272,6 +2272,86 @@ EXTERN_C const IID IID_ISOSDacInterface5; #endif /* __ISOSDacInterface5_INTERFACE_DEFINED__ */ + +#ifndef __ISOSDacInterface6_INTERFACE_DEFINED__ +#define __ISOSDacInterface6_INTERFACE_DEFINED__ + + /* interface ISOSDacInterface6 */ + /* [uuid][local][object] */ + + + EXTERN_C const IID IID_ISOSDacInterface6; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("11206399-4B66-4EDB-98EA-85654E59AD45") + ISOSDacInterface6 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE GetMethodTableCollectibleData( + CLRDATA_ADDRESS mt, + struct DacpMethodTableCollectibleData *data) = 0; + }; + + +#else /* C style interface */ + + typedef struct ISOSDacInterface6Vtbl + { + BEGIN_INTERFACE + + HRESULT(STDMETHODCALLTYPE *QueryInterface)( + ISOSDacInterface5 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + ULONG(STDMETHODCALLTYPE *AddRef)( + ISOSDacInterface5 * This); + + ULONG(STDMETHODCALLTYPE *Release)( + ISOSDacInterface5 * This); + + HRESULT(STDMETHODCALLTYPE *GetMethodTableCollectibleData)( + CLRDATA_ADDRESS mt, + struct DacpMethodTableCollectibleData *data); + + END_INTERFACE + } ISOSDacInterface6Vtbl; + + interface ISOSDacInterface6 + { + CONST_VTBL struct ISOSDacInterface6Vtbl *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ISOSDacInterface6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ISOSDacInterface6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ISOSDacInterface6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ISOSDacInterface6_GetMethodTableCollectibleData(This,mt,data) \ + ( (This)->lpVtbl -> GetMethodTableCollectibleData(This,mt,data) ) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + + +#endif /* __ISOSDacInterface6_INTERFACE_DEFINED__ */ + /* Additional Prototypes for ALL interfaces */ /* end of Additional Prototypes */ diff --git a/lib/coreclr/src/pal/prebuilt/inc/xcordebug.h b/lib/coreclr/src/pal/prebuilt/inc/xcordebug.h index ce4dc07bbc84..4160fe5e3ce3 100644 --- a/lib/coreclr/src/pal/prebuilt/inc/xcordebug.h +++ b/lib/coreclr/src/pal/prebuilt/inc/xcordebug.h @@ -1,13 +1,19 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - /* this ALWAYS GENERATED file contains the definitions for the interfaces */ - /* File created by MIDL compiler version 8.00.0603 */ + /* File created by MIDL compiler version 8.01.0622 */ +/* at Mon Jan 18 19:14:07 2038 + */ +/* Compiler settings for F:/Dev/coreclr/src/inc/xcordebug.idl: + Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 + protocol : dce , ms_ext, c_ext, robust + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: + __declspec(uuid()), __declspec(selectany), __declspec(novtable) + DECLSPEC_UUID(), MIDL_INTERFACE() +*/ /* @@MIDL_FILE_HEADING( ) */ #pragma warning( disable: 4049 ) /* more than 64k source lines */ @@ -23,7 +29,7 @@ #ifndef __RPCNDR_H_VERSION__ #error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ +#endif /* __RPCNDR_H_VERSION__ */ #ifndef COM_NO_WINDOWS_H #include "windows.h" @@ -45,12 +51,14 @@ typedef interface ICorDebugProcess4 ICorDebugProcess4; #endif /* __ICorDebugProcess4_FWD_DEFINED__ */ + #ifndef __ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly_FWD_DEFINED__ #define __ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly_FWD_DEFINED__ typedef interface ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly; #endif /* __ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly_FWD_DEFINED__ */ + /* header files for imported files */ #include "cordebug.h" @@ -160,6 +168,7 @@ EXTERN_C const IID IID_ICorDebugProcess4; #endif /* __ICorDebugProcess4_INTERFACE_DEFINED__ */ + #ifndef __ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly_INTERFACE_DEFINED__ #define __ICorDebugLegacyNetCFHostCallbackInvoker_PrivateWindowsPhoneOnly_INTERFACE_DEFINED__ diff --git a/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.cpp b/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.cpp index 3512661f291c..6d8c7995dfee 100644 --- a/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.cpp +++ b/src/Datadog.Trace.ClrProfiler.Native/il_rewriter.cpp @@ -409,7 +409,7 @@ HRESULT ILRewriter::Export() { m_pOutputBuffer[offset++] = (opcode & 0xFF); } - assert(pInstr->m_opcode < _countof(s_OpCodeFlags)); + assert(pInstr->m_opcode < (sizeof(s_OpCodeFlags)/sizeof(BYTE))); BYTE flags = s_OpCodeFlags[pInstr->m_opcode]; switch (flags) { case 0: