ICorProfilerInfo3::GetThreadStaticAddress2 Method

Gets the address of the specified thread-static field that is in the scope of the specified thread and application domain.

Syntax

HRESULT GetThreadStaticAddress2(  
                [in] ClassID classId,  
                [in] mdFieldDef fieldToken,  
                [in] AppDomainID appDomainId,  
                [in] ThreadID threadId,  
                [out] void **ppAddress);  

Parameters

classId
[in] The ID of the class that contains the requested thread-static field.

fieldToken
[in] The metadata token for the requested thread-static field.

appDomainId
[in] The ID of the application domain.

threadId
[in] The ID of the thread that is the scope for the requested static field.

ppAddress
[out] A pointer to the address of the static field that is within the specified thread.

Remarks

The GetThreadStaticAddress2 method may return one of the following:

  • A CORPROF_E_DATAINCOMPLETE HRESULT if the given static field has not been assigned an address in the specified context.

  • The addresses of objects that may be in the garbage collection heap. These addresses may become invalid after garbage collection, so after garbage collection, profilers should not assume that they are valid.

Before a class’s class constructor is completed, GetThreadStaticAddress2 will return CORPROF_E_DATAINCOMPLETE for all its static fields, although some of the static fields may already be initialized and rooting garbage collection objects.

The ICorProfilerInfo2::GetThreadStaticAddress method is similar to the GetThreadStaticAddress2 method, but does not accept an application domain argument.

Requirements

Platforms: See System Requirements.

Header: CorProf.idl, CorProf.h

Library: CorGuids.lib

.NET Framework Versions: Available since 4

See Also

ICorProfilerInfo3 Interface
Profiling Interfaces
Profiling