次の方法で共有


ICLRDebugging::OpenVirtualProcess メソッド

プロセスに読み込まれる共通言語ランタイム (CLR: Common Language Runtime) モジュールに対応する 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 のバージョン情報が格納された CLR_DEBUGGING_VERSION 構造体が返されます。

  • 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 モジュールを検出できない場合、モジュールを使用できない場合、または CLR のバージョンが shim のバージョンより新しい場合にも返されます。

CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL

このランタイム バージョンは、このデバッグ モデルをサポートしていません。 現在、.NET Framework Version 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

参照

その他の技術情報

デバッグのインターフェイス

デバッグ (アンマネージ API リファレンス)