COR_PRF_HIGH_MONITOR Enumeration

[Supported in the .NET Framework 4.5.2 and later versions]

Provides flags in addition to those found in the COR_PRF_MONITOR enumeration that the profiler can specify to the ICorProfilerInfo5::SetEventMask2 method when it is loading.

Syntax

typedef enum {  
    COR_PRF_HIGH_MONITOR_NONE                     = 0x00000000,  
    COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES          = 0x00000001,  
    COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED        = 0x00000002,
    COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS = 0x00000004,
    COR_PRF_HIGH_DISABLE_TIERED_COMPILATION       = 0x00000008,
    COR_PRF_HIGH_BASIC_GC                         = 0x00000010,
    COR_PRF_HIGH_MONITOR_GC_MOVED_OBJECTS         = 0x00000020,
    COR_PRF_HIGH_MONITOR_LARGEOBJECT_ALLOCATED    = 0x00000040,
    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_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;  

Members

Member Description
COR_PRF_HIGH_MONITOR_NONE No flags are set.
COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES Controls the ICorProfilerCallback6::GetAssemblyReference callback for adding assembly references during the CLR assembly reference closure walk.
COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED Controls the ICorProfilerCallback7::ModuleInMemorySymbolsUpdated callback for updates to the symbol stream associated with an in-memory module.
COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS Controls the ICorProfilerCallback9::DynamicMethodUnloaded callback for indicating when a dynamic method has been garbage collected and unloaded.
Available since 4.7.2
COR_PRF_HIGH_DISABLE_TIERED_COMPILATION .NET Core 3.0 and later versions only: Disables tiered compilation for profilers.
COR_PRF_HIGH_BASIC_GC .NET Core 3.0 and later versions only: Provides a lightweight GC profiling option compared to COR_PRF_MONITOR_GC. Controls only the GarbageCollectionStarted, GarbageCollectionFinished, and GetGenerationBounds callbacks. Unlike the COR_PRF_MONITOR_GC flag, COR_PRF_HIGH_BASIC_GC does not disable concurrent garbage collection.
COR_PRF_HIGH_MONITOR_GC_MOVED_OBJECTS .NET Core 3.0 and later versions only: Enables the MovedReferences and MovedReferences2 callbacks for compacting GCs only.
COR_PRF_HIGH_MONITOR_LARGEOBJECT_ALLOCATED .NET Core 3.0 and later versions only: Similar to COR_PRF_MONITOR_OBJECT_ALLOCATED, but provides information on object allocations for the large object heap (LOH) only.
COR_PRF_HIGH_REQUIRE_PROFILE_IMAGE Represents all COR_PRF_HIGH_MONITOR flags that require profile-enhanced images. It corresponds to the COR_PRF_REQUIRE_PROFILE_IMAGE flag in the COR_PRF_MONITOR enumeration.
COR_PRF_HIGH_ALLOWABLE_AFTER_ATTACH Represents all COR_PRF_HIGH_MONITOR flags that can be set after the profiler is attached to a running app.
COR_PRF_HIGH_MONITOR_IMMUTABLE Represents all COR_PRF_HIGH_MONITOR flags that can be set only during initialization. Trying to change any of these flags elsewhere results in an HRESULT value that indicates failure.

Remarks

The COR_PRF_HIGH_MONITOR flags are used with the pdwEventsHigh parameter of the ICorProfilerInfo5::GetEventMask2 and ICorProfilerInfo5::SetEventMask2 methods.

Starting with the .NET Framework 4.6.1, the value of the COR_PRF_HIGH_ALLOWABLE_AFTER_ATTACH changed from 0 to COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED (0x00000002). Starting with the .NET Framework 4.7.2, its value changed from COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED to COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED | COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS.

COR_PRF_HIGH_MONITOR_IMMUTABLE is intended to be a bitmask that represents all flags that can only be set during initialization. Trying to change any of these flags elsewhere results in a failed HRESULT.

Requirements

Platforms: See System Requirements.

Header: CorProf.idl, CorProf.h

Library: CorGuids.lib

.NET Framework Versions: Available since 4.5.2

See also