ICLRDebugging::OpenVirtualProcess 方法

获取与进程中加载的公共语言运行时 (CLR) 模块对应的 ICorDebugProcess 接口。

Syntax

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 模块,则返回

pDataTarget [in]允许托管调试器检查进程状态的数据目标抽象。 调试器必须实现 ICorDebugDataTarget 接口。 应实现 ICLRDebuggingLibraryProvider 接口,以支持在计算机上本地未安装正在调试的 CLR 的方案。

pLibraryProvider [in]库提供程序回调接口,允许按需定位和加载特定于版本的调试库。 仅当或pFlags不是nullppProcess,才需要此参数。

pMaxDebuggerSupportedVersion [in]此调试器可以调试的最高 CLR 版本。 应指定此调试器支持的最新 CLR 版本中的主要版本、次要版本和内部版本,并将修订号设置为 65535,以适应将来的就地 CLR 服务版本。

riidProcess [in]要检索的 ICorDebugProcess 接口的 ID。 目前,唯一接受的值是 IID_CORDEBUGPROCESS3IID_CORDEBUGPROCESS2以及 IID_CORDEBUGPROCESS

ppProcess [out]指向 COM 接口的指针,该接口由 riidProcess.

pVersion [in, out]CLR 的版本。 在输入时,此值可以是 null。 它还可能指向 CLR_DEBUGGING_VERSION 结构,在这种情况下,必须将结构的 wStructVersion 字段初始化为 0(零)。

输出时,返回 CLR_DEBUGGING_VERSION 的结构将填充 CLR 的版本信息。

pdwFlags [out]有关指定运行时的信息性标志。 有关标志的说明,请参阅 CLR_DEBUGGING_PROCESS_FLAGS

返回值

此方法返回以下特定的 HRESULT 以及指示方法失败的 HRESULT 错误。

HRESULT Description
S_OK 该方法已成功完成。
E_POINTER pDataTargetnull
CORDBG_E_LIBRARY_PROVIDER_ERROR ICLRDebuggingLibraryProvider 回调返回错误或不提供有效句柄。
CORDBG_E_MISSING_DATA_TARGET_INTERFACE pDataTarget 不为此版本的运行时实现所需的数据目标接口。
CORDBG_E_NOT_CLR 指示的模块不是 CLR 模块。 当无法检测到 CLR 模块时,也会返回此 HRESULT,因为内存已损坏,模块不可用,或者 CLR 版本晚于填充码版本。
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 起可用

另请参阅