ICorProfilerInfo2::GetCodeInfo2 方法
获取与指定的 FunctionID 关联的本机代码的范围。
HRESULT GetCodeInfo2(
[in] FunctionID functionID,
[in] ULONG32 cCodeInfos,
[out] ULONG32 *pcCodeInfos,
[out, size_is(cCodeInfos), length_is(*pcCodeInfos)]
COR_PRF_CODE_INFO codeInfos[]);
参数
functionID
[in] 与本机代码关联的函数的 ID。cCodeInfos
[in] codeInfos 数组的大小。pcCodeInfos
[out] 一个指向 COR_PRF_CODE_INFO 可用结构总数的指针。codeInfos
[out] 调用方提供的缓冲区。 该方法返回后,它将包含一个由 COR_PRF_CODE_INFO 结构组成的数组,其中每个结构都描述一个本机代码块。
备注
这些范围将按照 Microsoft 中间语言 (MSIL) 偏移量递增的顺序排序。
GetCodeInfo2 返回后,您必须验证 codeInfos 缓冲区是否足够大以包含所有 COR_PRF_CODE_INFO 结构。 为此,请将 cCodeInfos 的值与 cchName 参数的值进行比较。 如果 cCodeInfos 除以 COR_PRF_CODE_INFO 结构大小的值小于 pcCodeInfos,请分配较大的 codeInfos 缓冲区,用新的、更大的大小更新 cCodeInfos,然后再次调用 GetCodeInfo2。
或者,您可以首先用长度为零的 codeInfos 缓冲区调用 GetCodeInfo2,以获取正确的缓冲区大小。 然后,您可以将 codeInfos 缓冲区大小设置为 pcCodeInfos 中返回的值,乘以 COR_PRF_CODE_INFO 结构的大小,并再次调用 GetCodeInfo2。
有关这两种方法的更多信息,请参见分析 API 方法约定。
要求
**平台:**请参见 .NET Framework 系统要求。
**头文件:**CorProf.idl、CorProf.h
**库:**CorGuids.lib
**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0