次の方法で共有


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 [in]ターゲット プロセス内のモジュールのベース アドレス。 COR_E_NOT_CLR は、指定されたモジュールが CLR モジュールでない場合に返されます。

pDataTarget [in]マネージド デバッガーがプロセスの状態を検査できるようにするデータ ターゲットの抽象化。 デバッガーは ICorDebugDataTarget インターフェイスを実装する必要があります。 デバッグ対象の CLR がコンピューターにローカルにインストールされていないシナリオをサポートするには、 ICLRDebuggingLibraryProvider インターフェイスを実装する必要があります。

pLibraryProvider [in]バージョン固有のデバッグ ライブラリを必要に応じて配置して読み込むライブラリ プロバイダーのコールバック インターフェイス。 このパラメーターは、 ppProcess または pFlagsnullされていない場合にのみ必要です。

pMaxDebuggerSupportedVersion [in]このデバッガーがデバッグできる CLR の最上位バージョン。 このデバッガーでサポートされている最新の CLR バージョンのメジャー バージョン、マイナー バージョン、ビルド バージョンを指定し、将来のインプレース CLR サービス リリースに対応するためにリビジョン番号を 65535 に設定する必要があります。

riidProcess [in]取得する ICorDebugProcess インターフェイスの ID。 現在、受け入れられる値は、 IID_CORDEBUGPROCESS3IID_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 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 のみです。

Exceptions

注釈

Requirements

:システム要件」を参照してください。

ヘッダ: CorDebug.idl、CorDebug.h

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 4 以降で利用可能

.NET バージョン: .NET Core 2.1 以降で使用可能

こちらも参照ください