ICLRDebugging::OpenVirtualProcess 方法
获取与进程中加载的公共语言运行时 (CLR) 模块对应的 ICorDebugProcess 接口。
语法
HRESULT OpenVirtualProcess(
[in] ULONG64 moduleBaseAddress,
[in] IUnknown * pDataTarget,
[in] ICLRDebuggingLibraryProvider * pLibraryProvider,
[in] CLR_DEBUGGING_VERSION * pMaxDebuggerSupportedVersion,
[in] REFIID riidProcess,
[out, iid_is(riidProcess)] IUnknown ** ppProcess,
[in, out] CLR_DEBUGGING_VERSION * pVersion,
[out] CLR_DEBUGGING_PROCESS_FLAGS * pdwFlags);
参数
moduleBaseAddress
[in] 目标进程中模块的基址。 如果指定的模块不是 CLR 模块,则会返回 COR_E_NOT_CLR。
pDataTarget
[in] 允许托管调试程序检查进程状态的数据目标抽象。 调试器必须实现 ICorDebugDataTarget 接口。 应实现 ICLRDebuggingLibraryProvider 接口,以支持不在计算机本地安装正在调试的 CLR 的方案。
pLibraryProvider
[in] 一个库提供程序回调接口,该接口允许根据需要查找和加载特定于版本的调试库。 仅当 ppProcess
或 pFlags
不为 null
时,此参数才是必需的。
pMaxDebuggerSupportedVersion
[in] 此调试程序可调试的最高 CLR 版本。 应指定此调试器支持的最新 CLR 版本的主要、次要和内部版本,并将修订号设置为 65535 以适应将来的就地 CLR 服务版本。
riidProcess
[in] 要检索的 ICorDebugProcess 接口的 ID。 目前,接受的值只有 IID_CORDEBUGPROCESS3、IID_CORDEBUGPROCESS2 和 IID_CORDEBUGPROCESS。
ppProcess
[out] 一个指向 riidProcess
所标识的 COM 接口的指针。
pVersion
[in, out] CLR 的版本。 在输入时,此值可以是 null
。 它还可以指向 CLR_DEBUGGING_VERSION 结构,在这种情况下,该结构的 wStructVersion
字段必须初始化为 0(零)。
在输出时,返回的 CLR_DEBUGGING_VERSION
结构中将填充 CLR 的版本信息。
pdwFlags
[out] 有关指定的运行时的信息标志。 有关标志的介绍,请参阅 CLR_DEBUGGING_PROCESS_FLAGS 主题。
返回值
此方法返回以下特定 HRESULT 以及表示方法失败的 HRESULT 错误。
HRESULT | 说明 |
---|---|
S_OK | 该方法已成功完成。 |
E_POINTER | pDataTarget 为 null 。 |
CORDBG_E_LIBRARY_PROVIDER_ERROR | ICLRDebuggingLibraryProvider 回调返回错误或不提供有效句柄。 |
CORDBG_E_MISSING_DATA_TARGET_INTERFACE | pDataTarget 不为此运行时版本实现所需的数据目标接口。 |
CORDBG_E_NOT_CLR | 指定的模块不是 CLR 模块。 当由于内存已损坏、模块不可用或 CLR 版本高于 shim 版本而无法检测到 CLR 模块时,也会返回此 HRESULT。 |
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL | 此运行时版本不支持此调试模型。 目前,.NET Framework 4 之前的 CLR 版本不支持该调试模型。 在发生此错误后,pwszVersion 输出参数仍设置为正确的值。 |
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT | CLR 的版本高于此调试器声称支持的版本。 在发生此错误后,pwszVersion 输出参数仍设置为正确的值。 |
E_NO_INTERFACE | riidProcess 接口不可用。 |
CORDBG_E_UNSUPPORTED_VERSION_STRUCT | CLR_DEBUGGING_VERSION 结构不包含 wStructVersion 的已识别值。 目前唯一接受的值为 0。 |
例外
备注
要求
平台:请参阅系统要求。
标头:CorDebug.idl、CorDebug.h
库:CorGuids.lib
.NET Framework 版本:自 4 起可用
.NET 版本:自 .NET Core 2.1 起可用