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] 一个库提供程序回调接口,该接口允许根据需要查找和加载特定于版本的调试库。 仅当 ppProcesspFlags 不为 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 pDataTargetnull
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 起可用

请参阅