다음을 통해 공유


ICLRDebuggingLibraryProvider3::ProvideWindowsLibrary 메서드

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

구문

HRESULT ProvideWindowsLibrary (
     [in] const WCHAR* pwszFileName,
     [in] const WCHAR* pwszRuntimeModule,
     [in] LIBRARY_PROVIDER_INDEX_TYPE indexType,
     [in] DWORD dwTimestamp,
     [in] DWORD dwSizeOfImage,
     [out] LPWSTR* ppResolvedModulePath);

매개 변수

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

pwszRuntimeModule
[in] 런타임 또는 단일 파일 모듈 경로입니다.

indexType
[in] 제공된 인덱스 정보의 형식(dwTimestamp/dwSizeOfImage)입니다. LIBRARY_PROVIDER_INDEX_TYPE 열거형을 참조하세요.

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

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

ppResolvedModulePath
[out] 이는 모듈 dll에 대한 null 종료 경로입니다. Windows에서는 CoTaskMemAlloc를 사용하여 할당해야 합니다. Unix에서는 malloc를 사용하여 할당해야 합니다. 오류가 발생하면 그대로 유지됩니다. 아래 보안 참고 사항을 참조하세요!

반환 값

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

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

설명

ProvideWindowsLibrary를 사용하면 디버거가 mscordbi.dll 및 mscordacwks.dll과 같은 특정 CLR 파일을 디버깅하는 데 필요한 모듈을 제공할 수 있습니다.

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

Important

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

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

요구 사항

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

헤더: dbgshim.h

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

.NET 버전: .NET Core 2.1부터 사용 가능