ICLRDebugging::OpenVirtualProcess メソッド
プロセスに読み込まれた共通言語ランタイム (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
[入力] ターゲット プロセス内のモジュールのベース アドレス。 指定されたモジュールが CLR モジュールでない場合は、COR_E_NOT_CLR が返されます。
pDataTarget
[入力] データ ターゲットの抽象化。マネージド デバッガーでプロセスの状態の検査できます。 デバッガーで ICorDebugDataTarget インターフェイスを実装する必要があります。 デバッグ対象の CLR がコンピューター上にローカルにインストールされていないシナリオをサポートするには、ICLRDebuggingLibraryProvider インターフェイスを実装する必要があります。
pLibraryProvider
[入力] ライブラリ プロバイダーのコールバック インターフェイス。バージョン固有のデバッグ ライブラリをオンデマンドで検索し、読み込むことができます。 このパラメーターは ppProcess
または pFlags
が null
でない場合にのみ必要です。
pMaxDebuggerSupportedVersion
[入力] このデバッガーでデバッグできる CLR の最大バージョン。 このデバッガーでサポートされている最新の CLR バージョンからメジャー、マイナー、ビルドの各バージョンを指定し、将来のインプレース CLR サービス リリースに対応するためにリビジョン番号を 65535 に設定する必要があります。
riidProcess
[入力] 取得する ICorDebugProcess インターフェイスの ID。 現時点で許容される値は、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 | 説明 |
---|---|
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 のみです。 |
例外
解説
必要条件
:「システム要件」を参照してください。
ヘッダー: CorDebug.idl、CorDebug.h
ライブラリ: CorGuids.lib
.NET Framework のバージョン: 4 以降で使用可能
.NET のバージョン: .NET Core 2.1 以降で使用可能
関連項目
.NET