다음을 통해 공유


ICLRDebuggingLibraryProvider::ProvideLibrary 메서드

CLR(공용 언어 런타임) 버전별 디버깅 라이브러리를 찾고 요청 시 로드할 수 있도록 하는 라이브러리 공급자 콜백 인터페이스를 가져옵니다.

구문

HRESULT ProvideLibrary(
     [in] const WCHAR* pwszFileName,
     [in] DWORD dwTimestamp,
     [in] DWORD dwSizeOfImage,
     [out] HMODULE* hModule);

매개 변수

pwszFilename
[in] 요청되는 모듈의 이름입니다.

dwTimestamp
[in] PE 파일의 COFF 파일 헤더에 저장된 날짜 타임스탬프입니다.

dwSizeOfImage
[in] PE 파일의 COFF 선택적 파일 헤더에 저장된 SizeOfImage 필드입니다.

hModule
[out] 요청된 모듈에 대한 핸들입니다.

Return Value

이 메서드는 다음과 같은 특정 HRESULT뿐만 아니라 메서드 오류를 나타내는 HRESULT 오류도 반환합니다.

HRESULT 설명
S_OK 메서드가 완료되었습니다.

예외

설명

ProvideLibrary를 사용하면 디버거가 mscordbi.dll 및 mscordacwks.dll과 같은 특정 CLR 파일을 디버깅하는 데 필요한 모듈을 제공할 수 있습니다. 모듈 핸들은 ICLRDebugging::CanUnloadNow 메서드에 대한 호출이 핸들이 해제될 수 있음을 나타낼 때까지 유효한 상태를 유지해야 합니다. 이때 핸들은 호출자가 해제해야 합니다.

디버거는 사용 가능한 수단을 사용하여 디버깅 모듈을 찾거나 획득할 수 있습니다.

중요

이 기능을 사용하면 API 호출자가 실행 파일 및 악성 코드가 포함된 모듈을 제공할 수 있습니다. 보안 예방 조치로서 호출자는 ProvideLibrary를 사용하여 실행하지 않으려는 코드를 배포하지 않아야 합니다.

mscordbi.dll 또는 mscordacwks.dll과 같이 이미 릴리스된 라이브러리에서 심각한 보안 문제가 발견되면 shim을 패치하여 잘못된 파일 버전을 인식할 수 있습니다. 그런 다음, shim은 패치된 파일 버전에 대한 요청을 실행하고 요청에 대한 응답으로 제공되는 잘못된 버전을 거부할 수 있습니다. 이러한 상황은 사용자가 새 버전의 shim에 패치를 적용한 경우에만 발생할 수 있습니다. 패치되지 않은 버전은 여전히 취약합니다.

요구 사항

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

헤더: CorDebug.idl, CorDebug.h

라이브러리: CorGuids.lib

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

참고 항목