取得對應至進程中載入的共用語言執行階段 (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 [在]目標進程中模組的基元位址。
COR_E_NOT_CLR 如果指定的模組不是 CLR 模組,則會傳回。
pDataTarget [在]可讓受控偵錯工具檢查進程狀態的資料目標抽象概念。 偵錯工具必須實作 ICorDebugDataTarget 介面。 您應該實作 ICLRDebuggingLibraryProvider 介面,以支援正在偵錯的 CLR 未在本機安裝在電腦上的案例。
pLibraryProvider [在]程式庫提供者回呼介面,可視需要尋找和載入版本特定的偵錯程式庫。 只有在 或 pFlags 不是 null時,ppProcess才需要此參數。
pMaxDebuggerSupportedVersion [在]此偵錯工具可以偵錯的最高 CLR 版本。 您應該從此偵錯工具支援的最新 CLR 版本指定主要、次要和組建版本,並將修訂號碼設定為 65535,以容納未來的就地 CLR 服務版本。
riidProcess [在]要擷取的 ICorDebugProcess 介面識別碼。 目前,唯一接受的值是 IID_CORDEBUGPROCESS3、 IID_CORDEBUGPROCESS2和 IID_CORDEBUGPROCESS。
ppProcess [出]所識別 riidProcess之 COM 介面的指標。
pVersion [進、出]CLR 的版本。 輸入時,此值可以是 null。 它也可以指向 CLR_DEBUGGING_VERSION 結構,在此情況下,結構的 wStructVersion 欄位必須初始化為 0 (零) 。
在輸出時,傳回 CLR_DEBUGGING_VERSION 的結構會填入 CLR 的版本資訊。
pdwFlags [出]指定執行階段的參考旗標。 如需旗標的說明,請參閱 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 模組。 當無法偵測到 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。 |
Exceptions
備註
需求
平台:請參閱系統需求。
標題: CorDebug.idl、CorDebug.h
圖書館: CorGuids.lib
.NET Framework 版本: 自 4 日起可用
.NET 版本: 自 .NET Core 2.1 起提供