プロセスに読み込まれた共通言語ランタイム (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]ターゲット プロセス内のモジュールのベース アドレス。
COR_E_NOT_CLR は、指定されたモジュールが CLR モジュールでない場合に返されます。
pDataTarget [in]マネージド デバッガーがプロセスの状態を検査できるようにするデータ ターゲットの抽象化。 デバッガーは ICorDebugDataTarget インターフェイスを実装する必要があります。 デバッグ対象の CLR がコンピューターにローカルにインストールされていないシナリオをサポートするには、 ICLRDebuggingLibraryProvider インターフェイスを実装する必要があります。
pLibraryProvider [in]バージョン固有のデバッグ ライブラリを必要に応じて配置して読み込むライブラリ プロバイダーのコールバック インターフェイス。 このパラメーターは、 ppProcess または pFlags が nullされていない場合にのみ必要です。
pMaxDebuggerSupportedVersion [in]このデバッガーがデバッグできる CLR の最上位バージョン。 このデバッガーでサポートされている最新の CLR バージョンのメジャー バージョン、マイナー バージョン、ビルド バージョンを指定し、将来のインプレース CLR サービス リリースに対応するためにリビジョン番号を 65535 に設定する必要があります。
riidProcess [in]取得する ICorDebugProcess インターフェイスの ID。 現在、受け入れられる値は、 IID_CORDEBUGPROCESS3、 IID_CORDEBUGPROCESS2、および IID_CORDEBUGPROCESSのみです。
ppProcess [out] riidProcessによって識別される COM インターフェイスへのポインター。
pVersion [入力、出力]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 バージョンが shim バージョンより新しいために 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
注釈
Requirements
:「システム要件」を参照してください。
ヘッダ: CorDebug.idl、CorDebug.h
ライブラリ: CorGuids.lib
.NET Framework のバージョン: 4 以降で利用可能
.NET バージョン: .NET Core 2.1 以降で使用可能
こちらも参照ください
.NET