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 값의 배열입니다. 메서드가 반환되면 typeArgs에 사용 가능한 ClassID 값이 일부 또는 모두 포함됩니다.

설명

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

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

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

또는 길이가 0인 typeArgs 버퍼로 GetClassIDInfo2를 먼저 호출하여 올바른 버퍼 크기를 구합니다. 그런 다음 typeArgs 버퍼 크기를 pcNumTypeArgs에 반환된 값으로 설정하고 GetClassIDInfo2를 다시 호출합니다.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: CorProf.idl, CorProf.h

라이브러리: CorGuids.lib

.NET Framework 버전: 2.0부터 사용 가능

참고 항목