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

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

[in, optional] CommandLine

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

[in] CreateFlags

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

[in] ProcessId

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

[in] AttachFlags

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

戻り値

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

リターン コード 説明
S_OK
メソッドは正常に実行されました。

注釈

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

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

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

要件

要件
対象プラットフォーム デスクトップ
Header dbgeng.h (Dbgeng.h を含む)

こちらもご覧ください

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

.create (プロセスの作成)

AbandonCurrentProcess

AttachProcess

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess