IDebugClient5::AttachProcess メソッド (dbgeng.h)

AttachProcess メソッドは、デバッガー エンジン をユーザー モード プロセスに接続します。

構文

HRESULT AttachProcess(
  [in] ULONG64 Server,
  [in] ULONG   ProcessId,
  [in] ULONG   AttachFlags
);

パラメーター

[in] Server

プロセスへのアタッチに使用するプロセス サーバーを指定します。 Server が 0 の場合、エンジンはプロセス サーバーを使用せずにローカル プロセスに接続します。

[in] ProcessId

デバッガーがアタッチするターゲット プロセスのプロセス ID を指定します。

[in] AttachFlags

デバッガーがターゲット プロセスにアタッチする方法を制御するフラグを指定します。 これらのフラグの詳細については、「解説」を参照してください。

戻り値

このメソッドは、エラー値を返す場合もあります。 詳細については 戻り値の を参照してください。

リターン コード 形容
S_OK
メソッドが成功しました。

備考

このメソッドは、ライブ ユーザー モードデバッグでのみ使用できます。

注WaitForEvent メソッドが呼び出されるまで、エンジンはプロセスに完全にアタッチされません。 プロセスによってイベントが生成された後 (たとえば、create-process イベント) は、デバッガー セッションで使用できるようになります。
 
ライブ ユーザー モード ターゲットの作成とアタッチの詳細については、「Live User-Mode Targets」を参照してください。

DEBUG_ATTACH_XXX ビット フラグは、デバッガー エンジン ユーザー モード プロセスへのアタッチ方法を制御します。 カーネル ターゲットにアタッチするときに使用するDEBUG_ATTACH_XXX オプションについては、「AttachKernel 参照してください。

次の表では、使用可能なフラグ値について説明します。

定数 形容
DEBUG_ATTACH_NONINVASIVE ターゲットに非侵襲的にアタッチします。 非侵入デバッグの詳細については、「非アクティブ デバッグ (ユーザー モード)を参照してください。

このフラグが設定されている場合、フラグDEBUG_ATTACH_EXISTING、DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK、およびDEBUG_ATTACH_INVASIVE_RESUME_PROCESSを設定することはできません。

DEBUG_ATTACH_EXISTING デバッガーが既にアタッチされている (および場合によっては破棄された) アプリケーションに再アタッチします。 ターゲットへの再アタッチの詳細については、「ターゲット アプリケーション への再アタッチ」を参照してください。

このフラグが設定されている場合、他のDEBUG_ATTACH_XXX フラグは設定できません。

DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND 非広範にアタッチする場合は、ターゲットのスレッドを中断しないでください。

このフラグを設定する場合は、フラグDEBUG_ATTACH_NONINVASIVEも設定する必要があります。

DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK (Windows XP 以降)ターゲットにアタッチするときは、最初のブレークインを要求しないでください。

このフラグが設定されている場合、フラグDEBUG_ATTACH_NONINVASIVEおよびDEBUG_ATTACH_EXISTINGは設定できません。

DEBUG_ATTACH_INVASIVE_RESUME_PROCESS このフラグが設定されている場合、フラグDEBUG_ATTACH_NONINVASIVEおよびDEBUG_ATTACH_EXISTINGは設定できません。

必要条件

要件 価値
ターゲット プラットフォーム の デスクトップ
ヘッダー dbgeng.h (Dbgeng.h を含む)

関連項目

.attach (プロセスにアタッチ)

AbandonCurrentProcess の

AttachKernel の

ConnectProcessServer の

CreateProcess2 の

CreateProcessAndAttach2 を する

DetachCurrentProcess の

GetRunningProcessDescription の

GetRunningProcessSystemIds の

IDebugClient の

IDebugClient2 の

IDebugClient3 の

IDebugClient4 の

IDebugClient5 の

TerminateCurrentProcess の

デバッガー エンジンの を する