다음을 통해 공유


ICorProfilerInfo2::GetClassIDInfo2 메서드

지정된 제네릭 클래스의 부모 모듈과 메타데이터 토큰, 해당 부모 클래스의 ClassID 및 클래스의 각 형식 인수에 대한 ClassID(있는 경우)를 가져옵니다.

HRESULT GetClassIDInfo2(
    [in]  ClassID classId,
    [out] ModuleID *pModuleId,
    [out] mdTypeDef *pTypeDefToken,
    [out] ClassID *pParentClassId,
    [in]  ULONG32 cNumTypeArgs,
    [out] ULONG32 *pcNumTypeArgs,
    [out] ClassID typeArgs[]);

매개 변수

  • classId
    [in] 관련 정보를 가져올 해당 클래스의 ID입니다.

  • pModuleId
    [out] 클래스의 부모 모듈 ID에 대한 포인터입니다.

  • pTypeDefToken
    [out] 클래스의 메타데이터 토큰에 대한 포인터입니다.

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

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

  • pcNumTypeArgs
    [out] 사용할 수 있는 총 요소 수에 대한 포인터입니다.

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

설명

GetClassIDInfo2 메서드는 ICorProfilerInfo::GetClassIDInfo 메서드와 비슷하지만 GetClassIDInfo2는 제네릭 형식에 대한 추가 정보를 가져옵니다.

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

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

또는 길이가 0인 typeArgs 버퍼를 사용하여 GetClassIDInfo2를 먼저 호출해 올바른 버퍼 크기를 얻을 수 있습니다. 그런 다음 typeArgs 버퍼 크기를 pcNumTypeArgs에서 반환된 값으로 설정하고 GetClassIDInfo2을 다시 호출할 수 있습니다.

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