次の方法で共有


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

CreateProcessAndAttach2 メソッドは、指定したコマンド ラインからプロセスを作成し、そのプロセスまたは別のユーザー モード プロセスにアタッチします。

構文

HRESULT CreateProcessAndAttach2(
  [in]           ULONG64 Server,
  [in, optional] PSTR    CommandLine,
  [in]           PVOID   OptionsBuffer,
  [in]           ULONG   OptionsBufferSize,
  [in, optional] PCSTR   InitialDirectory,
  [in, optional] PCSTR   Environment,
  [in]           ULONG   ProcessId,
  [in]           ULONG   AttachFlags
);

パラメーター

[in] Server

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

[in, optional] CommandLine

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

[in] OptionsBuffer

プロセス作成オプションを指定します。 OptionsBuffer は、DEBUG_CREATE_PROCESS_OPTIONS 構造体へのポインターです。

[in] OptionsBufferSize

OptionsBuffer バッファーのサイズを指定します。 これは、sizeof(DEBUG_CREATE_PROCESS_OPTIONS)に設定する必要があります。

[in, optional] InitialDirectory

プロセスの開始ディレクトリを指定します。 このパラメーターは、CommandLine が NULL でない場合にのみ使用されます。 InitialDirectory NULL 場合は、プロセス サーバーの現在のディレクトリが使用されます。

[in, optional] Environment

新しいプロセスの環境ブロックを指定します。 環境ブロックは、null で終わる文字列の null で終わるブロックで構成されます。 各文字列の形式は次のとおりです。

name=value

環境ブロックの最後の 2 文字はどちらも NULL されることに注意してください。1 つは文字列を終了し、1 つはブロックを終了します。

環境 が NULL 設定されている場合、新しいプロセスはプロセス サーバーの環境ブロックを継承します。 OptionsBuffer DEBUG_CREATE_PROCESS_THROUGH_RTL フラグが設定されている場合、環境 は NULL する必要があります。

[in] ProcessId

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

[in] AttachFlags

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

戻り値

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

リターン コード 形容
S_OK
メソッドが成功しました。
E_INVALIDARG
これは、CommandLine が NULL ProcessId が 0 の場合に返されます。

備考

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

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

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

必要条件

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

関連項目

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

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

AbandonCurrentProcess

AttachProcess

ConnectProcessServer

CreateProcess2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient5

TerminateCurrentProcess