다음을 통해 공유


EnumerateCLRs 함수

프로세스에서 CLR을 열거하는 메커니즘을 제공합니다.

문법

HRESULT EnumerateCLRs (
    [in]  DWORD      debuggeePID,
    [out] HANDLE**   ppHandleArrayOut,
    [out] LPWSTR**   ppStringArrayOut,
    [out] DWORD*     pdwArrayLengthOut
);

매개 변수

debuggeePID
[in] 로드된 CLR이 열거되는 프로세스의 프로세스 식별자입니다.

ppHandleArrayOut
[out] CLR 시작을 계속하는 데 사용되는 이벤트 핸들이 포함된 배열에 대한 포인터입니다. 배열의 각 핸들이 유효하지는 않습니다. 유효한 경우 핸들은 동일한 인덱 ppStringArrayOut스의 해당 런타임에 대한 계속 시작 이벤트로 사용됩니다.

ppStringArrayOut
[out] 프로세스에 로드된 CLR의 전체 경로를 지정하는 문자열 배열에 대한 포인터입니다.

pdwArrayLengthOut
[out] 크기가 같고 길이가 같은 DWORD에 대한 ppHandleArrayOutpdwArrayLengthOut포인터입니다.

반환 값

S_OK
프로세스의 CLR 수가 성공적으로 결정되었으며 해당 핸들 및 경로 배열이 제대로 채워집니다.

E_INVALIDARG
null ppHandleArrayOut 이거나 ppStringArrayOut null pdwArrayLengthOut 이거나 null입니다.

E_OUTOFMEMORY
함수가 핸들 및 경로 배열에 충분한 메모리를 할당할 수 없습니다.

E_FAIL (또는 기타 E_ 반환 코드)
로드된 CLR을 열거할 수 없습니다.

비고

식별되는 debuggeePID대상 프로세스의 경우 함수는 경로 ppStringArrayOut배열을 프로세스에 로드된 CLR, 동일한 인덱스에 있는 CLR에 대한 계속 시작 이벤트를 포함할 수 있는 이벤트 핸들 ppHandleArrayOut배열 및 로드되는 CLR 수를 지정하는 배열의 크기를 반환합니다 pdwArrayLengthOut.

Windows 운영 체제 debuggeePID 에서 OS 프로세스 식별자에 매핑됩니다.

이 함수에 할당 ppHandleArrayOut 된 메모리입니다 ppStringArrayOut . 할당된 메모리를 해제하려면 CloseCLREnumeration 함수를 호출해야 합니다.

대상 프로세스에서 CLR 수를 반환하기 위해 두 배열 매개 변수를 모두 null로 설정하여 이 함수를 호출할 수 있습니다. 이 수에서 호출자는 만들 (sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH)버퍼의 크기를 유추할 수 있습니다.

요구 사항

플랫폼:.NET 지원 운영 체제를 참조하세요.

헤더: dbgshim.h

라이브러리: dbgshim.dll, libdbgshim.so, libdbgshim.dylib

.NET 버전: .NET Core 2.1 이후 사용 가능