다음을 통해 공유


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

참고 항목

기타 리소스

디버깅 인터페이스

디버깅(관리되지 않는 API 참조)