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

CreateProcessAndAttach メソッドは、指定したコマンド ラインからプロセスを作成し、別のユーザー モード プロセスにアタッチします。 作成されたプロセスは中断され、アタッチが完了したときにのみ実行できます。 これにより、クライアントとサーバーの両方のプロセスをデバッグするときの大まかな同期が可能になります。

構文

HRESULT CreateProcessAndAttach(
  [in]           ULONG64 Server,
  [in, optional] PSTR    CommandLine,
  [in]           ULONG   CreateFlags,
  [in]           ULONG   ProcessId,
  [in]           ULONG   AttachFlags
);

パラメーター

[in] Server

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

[in, optional] CommandLine

新しいプロセスを作成するために実行するコマンド ラインを指定します。 CommandLine が NULL 場合、プロセスは作成されません。AttachProcess と同様に、これらのメソッド 既存のプロセスにアタッチされます。

[in] CreateFlags

プロセスの作成時に使用するフラグを指定します。 これらのフラグの詳細については、DEBUG_CREATE_PROCESS_OPTIONSを参照してください。CreateFlagsをします。

[in] ProcessId

デバッガーがアタッチするターゲット プロセスのプロセス ID を指定します。 ProcessId が 0 の場合、デバッガーは CommandLine から作成したプロセスアタッチします。

[in] AttachFlags

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

戻り値

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

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

備考

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

CommandLine が NULL されず、ProcessId が 0 でない場合、エンジンは中断状態でプロセスを作成します。 エンジンは、ProcessIdで指定されたプロセスに正常に接続した後、この新しく作成されたプロセスを再開します。

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

必要条件

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

関連項目

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

.create (プロセスの作成) を する

AbandonCurrentProcess の

AttachProcess

ConnectProcessServer の

CreateProcess2 の

CreateProcessAndAttach2 を する

DetachCurrentProcess の

GetRunningProcessDescription の

GetRunningProcessSystemIds の

IDebugClient の

IDebugClient2 の

IDebugClient3 の

IDebugClient4 の

IDebugClient5 の

TerminateCurrentProcess の