Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Gets the FunctionID
of a function by using the specified metadata token, containing class, and ClassID
values of any type arguments.
Syntax
HRESULT GetFunctionFromTokenAndTypeArgs(
[in] ModuleID moduleID,
[in] mdMethodDef funcDef,
[in] ClassID classId,
[in] ULONG32 cTypeArgs,
[in, size_is(cTypeArgs)] ClassID typeArgs[],
[out] FunctionID* pFunctionID);
Parameters
moduleID
[in] The ID of the module in which the function resides.
funcDef
[in] An mdMethodDef
metadata token that references the function.
classId
[in] The ID of the function's containing class.
cTypeArgs
[in] The number of type parameters for the given function. This value must be zero for non-generic functions.
typeArgs
[in] An array of ClassID
values, each of which is an argument of the function. The value of typeArgs
can be NULL if cTypeArgs
is set to zero.
pFunctionID
[out] A pointer to the FunctionID
of the specified function.
Remarks
Calling the GetFunctionFromTokenAndTypeArgs
method with an mdMethodRef
metadata instead of an mdMethodDef
metadata token can have unpredictable results. Callers should resolve the mdMethodRef
to an mdMethodDef
when passing it.
If the function is not already loaded, calling GetFunctionFromTokenAndTypeArgs
will cause loading to occur, which is a dangerous operation in many contexts. For example, calling this method during loading of modules or types could lead to an infinite loop as the runtime attempts to circularly load things.
In general, use of GetFunctionFromTokenAndTypeArgs
is discouraged. If profilers are interested in events for a particular function, they should store the ModuleID
and mdMethodDef
of that function, and use ICorProfilerInfo2::GetFunctionInfo2 to check whether a given FunctionID
is that of the desired function.
Requirements
Platforms: See System Requirements.
Header: CorProf.idl, CorProf.h
Library: CorGuids.lib
.NET Framework Versions: Available since 2.0