Метод ICLRDebugging::OpenVirtualProcess

Возвращает интерфейс ICorDebugProcess, соответствующий модулю среды CLR, загруженного в процесс.

Синтаксис

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] Базовый адрес модуля в целевом процессе. COR_E_NOT_CLR возвращается, если указанный модуль не является модулем CLR.

pDataTarget [in] Абстракция целевого объекта данных, которая позволяет управляемому отладчику проверять состояние процесса. Отладчик должен реализовать интерфейс ICorDebugDataTarget . Необходимо реализовать интерфейс ICLRDebuggingLibraryProvider для поддержки сценариев, в которых среда CLR, которая выполняется отладка, не установлена локально на компьютере.

pLibraryProvider [in] Интерфейс обратного вызова поставщика библиотеки, позволяющий находить и загружать библиотеки отладки для конкретной версии по запросу. Этот параметр требуется только в том случае, если ppProcess или pFlags нет null.

pMaxDebuggerSupportedVersion [in] Самая высокая версия среды CLR, которую может выполнить отладчик. Необходимо указать основные, незначительные и сборки версии из последней версии СРЕДЫ CLR, поддерживаемые отладчиком, и задать номер редакции 65535 для размещения будущих выпусков обслуживания CLR на месте.

riidProcess [in] Идентификатор извлекаемого интерфейса ICorDebugProcess. В настоящее время единственными допустимыми значениями являются IID_CORDEBUGPROCESS3, IID_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 pDataTarget имеет значение null.
CORDBG_E_LIBRARY_PROVIDER_ERROR Обратный вызов ICLRDebuggingLibraryProvider возвращает ошибку или не предоставляет допустимый дескриптор.
CORDBG_E_MISSING_DATA_TARGET_INTERFACE pDataTarget не реализует необходимые целевые интерфейсы данных для этой версии среды выполнения.
CORDBG_E_NOT_CLR Указанный модуль не является модулем СРЕДЫ CLR. Этот HRESULT также возвращается, если модуль CLR не может быть обнаружен, так как память повреждена, модуль недоступен, или версия СРЕДЫ CLR позже версии схимы.
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL Эта версия среды выполнения не поддерживает эту модель отладки. В настоящее время модель отладки не поддерживается версиями СРЕДЫ CLR до платформа .NET Framework 4. Выходной 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

См. также