次の方法で共有


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 または pFlagsnull でない場合にのみ必要です。

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 pDataTargetnullです。
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 以降で使用可能

関連項目