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 允许调试器提供调试特定的 CLR 文件(如 mscordbi.dll 和 mscordacwks.dll)所需的模块。 模块句柄必须保持有效,直到对 ICLRDebugging::CanUnloadNow 方法的调用指示可以将这些句柄释放,此时调用方负责释放这些句柄。

调试器可以通过任何可用方式来定位或获得调试模块。

重要说明重要事项

此功能允许 API 调用方提供包含可执行的(可能是恶意的)代码的模块。作为一项安全预防措施,调用方不应使用 ProvideLibrary 来分发不会自我执行的任何代码。

如果在已发布的库(如 mscordbi.dll 或 mscordacwks.dll)中发现了严重的安全问题,则可以对填充码进行修补以识别这些文件的错误版本。然后,填充码会对文件的修补后版本发出请求,并拒绝错误的版本(如果在响应任何请求时提供这些版本)。上述情况仅在用户已对新版本的填充码进行修补后发生。未经修补的版本依然容易受到攻击。

要求

**平台:**请参见 .NET Framework 系统要求

头文件: CorDebug.idl、CorDebug.h

**库:**CorGuids.lib

**.NET Framework 版本:**4

请参见

其他资源

调试接口

调试(非托管 API 参考)