ICLRDebugging::OpenVirtualProcess 方法
取得 ICorDebugProcess 介面,這個介面對應至處理序中載入的 Common Language Runtime (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] 目標處理序中模組的基底位址 (Base Address)。 如果指定的模組不是 CLR 模組,則會傳回 COR_E_NOT_CLR。pDataTarget
[in] 資料目標抽象,允許 Managed 偵錯工具檢查處理序狀態。 偵錯工具必須實作 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。 |
需求
**平台:**請參閱 .NET Framework 系統需求。
**標頭:**CorDebug.idl、CorDebug.h
**程式庫:**CorGuids.lib
**.NET Framework 版本:**4