다음을 통해 공유


ICorProfilerInfo2::GetFunctionInfo2 메서드

함수에 대한 부모 클래스, 메타데이터 토큰 및 각 형식 인수의 ClassID(있을 경우)를 가져옵니다.

HRESULT GetFunctionInfo2(
    [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[]);

매개 변수

  • funcId
    [in] 부모 클래스와 기타 정보를 가져올 함수의 ID입니다.

  • frameInfo
    [in] 스택 프레임에 대한 정보를 가리키는 COR_PRF_FRAME_INFO 값입니다.

  • pClassId
    [out] 함수의 부모 클래스에 대한 포인터입니다.

  • pModuleId
    [out] 함수의 부모 클래스가 정의된 모듈에 대한 포인터입니다.

  • pToken
    [out] 함수의 메타데이터 토큰에 대한 포인터입니다.

  • cTypeArgs
    [in] typeArgs 배열의 크기입니다.

  • pcTypeArgs
    [out] ClassID 값의 총 개수에 대한 포인터입니다.

  • typeArgs
    [out] 함수의 형식 인수 ID를 나타내는 각 ClassID 값이 들어 있는 배열입니다. 메서드가 반환되면 ClassID 값의 일부 또는 전부가 typeArgs에 포함됩니다.

설명

프로파일러 코드는 ICorProfilerInfo::GetModuleMetaData를 호출하여 지정한 모듈에 대한 메타데이터 인터페이스를 가져올 수 있습니다. pToken이 참조하는 위치에 반환된 메타데이터 토큰은 함수의 메타데이터에 액세스하는 데 사용할 수 있습니다.

pClassId 매개 변수와 typeArgs 매개 변수를 통해 반환되는 클래스 ID와 형식 인수는 다음 표에 표시된 것과 같이 frameInfo 매개 변수에 전달된 값에 따라 달라집니다.

frameInfo 매개 변수 값

결과

FunctionEnter2 콜백에서 가져온 COR_PRF_FRAME_INFO 값

pClassId가 참조하는 위치에 반환된 ClassID와 typeArgs 배열에 반환된 모든 형식 인수가 정확합니다.

FunctionEnter2 콜백 이외의 소스에서 가져온 COR_PRF_FRAME_INFO

정확한 ClassID 및 형식 인수를 확인할 수 없습니다. 즉, ClassID가 null일 수 있고 일부 형식 인수가 Object로 돌아갈 수 있습니다.

0

정확한 ClassID 및 형식 인수를 확인할 수 없습니다. 즉, ClassID가 null일 수 있고 일부 형식 인수가 Object로 돌아갈 수 있습니다.

GetFunctionInfo2가 반환된 후 typeArgs 버퍼가 모든 ClassID 값을 포함할 만큼 충분히 큰지 확인해야 합니다. 이렇게 하려면 pcTypeArgs가 가리키는 값을 cTypeArgs 매개 변수의 값과 비교합니다. pcTypeArgs가 ClassID 값의 크기로 나눈 cTypeArgs보다 큰 값을 가리킬 경우 더 큰 pcTypeArgs 버퍼를 할당하고 더 큰 새 크기로 cTypeArgs를 업데이트한 다음 GetFunctionInfo2를 다시 호출합니다.

또는 길이가 0인 pcTypeArgs 버퍼를 사용하여 GetFunctionInfo2를 먼저 호출해 올바른 버퍼 크기를 얻을 수 있습니다. 그런 다음 ClassID 값의 크기로 나눈 pcTypeArgs에 반환된 값으로 버퍼 크기를 설정하고 GetFunctionInfo2를 다시 호출합니다.

이러한 두 접근 방식에 대한 자세한 내용은 프로파일링 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

참고 항목

참조

ICorProfilerInfo 인터페이스

ICorProfilerInfo2 인터페이스

기타 리소스

프로파일링 인터페이스

프로파일링(관리되지 않는 API 참조)