ICLRDebuggingLibraryProvider::ProvideLibrary 메서드
요청 시 CLR(공용 언어 런타임) 버전별 디버깅 라이브러리를 찾아서 로드할 수 있는 라이브러리 공급자 콜백 인터페이스를 가져옵니다.
HRESULT ProvideLibrary(
[in] const WCHAR* pwszFileName,
[in] DWORD dwTimestamp,
[in] DWORD dwSizeOfImage,
[out] HMODULE* hModule);
매개 변수
pwszFilename
[in] 요청되는 모듈의 이름입니다.dwTimestamp
[in] PE 파일의 COFF 파일에 저장된 날짜 시간 스탬프입니다.pLibraryProvider
[in] PE 파일의 COFF 선택적 파일 헤더에 저장된 SizeOfImage 필드입니다.hModule
[out] 요청된 모듈에 대한 핸들입니다.
반환 값
이 메서드는 메서드 오류를 나타내는 HRESULT 오류뿐만 아니라 다음과 같은 특정 HRESULT를 반환합니다.
HRESULT |
설명 |
---|---|
S_OK |
메서드가 성공적으로 완료되었습니다. |
설명
ProvideLibrary는 디버거에서 mscordbi.dll과 mscordacwks.dll 같은 특정 CLR 파일을 디버깅하는 데 필요한 모듈을 제공할 수 있도록 허용합니다. 모듈 핸들은 호출자에 의해 해제될 수 있음을 ICLRDebugging::CanUnloadNow 메서드에 대한 호출이 나타내기 전까지 유효한 상태로 남아 있어야 합니다.
디버거에서는 사용 가능한 모든 수단을 사용하여 디버깅 모듈을 찾거나 확보할 수 있습니다.
중요 |
---|
이 기능을 사용하면 API 호출자가 악의적일 수 있는 실행 코드가 포함된 모듈을 제공할 수 있습니다.보안을 위해 호출자는 ProvideLibrary를 사용하여 자체적으로 실행되지 않는 코드를 배포해서는 안 됩니다. mscordbi.dll이나 mscordacwks.dll 같은 이미 릴리스된 라이브러리에서 심각한 보안 문제가 발견되면 이러한 파일의 잘못된 버전을 인식하도록 shim이 패치될 수 있습니다.그런 다음 shim은 이러한 파일의 패치된 버전을 요청하고 이러한 요청에 대한 응답으로 패치된 버전이 제공되면 잘못된 버전을 거부할 수 있습니다.이 동작은 사용자가 새 버전의 shim으로 패치한 경우에만 발생할 수 있습니다.패치되지 않은 버전은 취약한 상태로 남아 있습니다. |
요구 사항
플랫폼: .NET Framework 시스템 요구 사항 참조
헤더: CorDebug.idl, CorDebug.h
라이브러리: CorGuids.lib
.NET Framework 버전: 4