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

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

構文

HRESULT CreateProcessAndAttach2Wide(
  [in]           ULONG64 Server,
  [in, optional] PWSTR   CommandLine,
  [in]           PVOID   OptionsBuffer,
  [in]           ULONG   OptionsBufferSize,
  [in, optional] PCWSTR  InitialDirectory,
  [in, optional] PCWSTR  Environment,
  [in]           ULONG   ProcessId,
  [in]           ULONG   AttachFlags
);

パラメーター

[in] Server

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

[in, optional] CommandLine

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

[in] OptionsBuffer

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

[in] OptionsBufferSize

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

[in, optional] InitialDirectory

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

[in, optional] Environment

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

name=value

環境ブロックの最後の 2 文字はどちらも NULL です。1 つは文字列を終了し、1 つはブロックを終了します。

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

[in] ProcessId

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

[in] AttachFlags

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

戻り値

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

リターン コード 説明
S_OK
メソッドは正常に実行されました。
E_INVALIDARG
これは、CommandLineNULL、ProcessId が 0 の場合に返されます。

注釈

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

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

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

要件

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

こちらもご覧ください

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

.create (プロセスの作成)

AbandonCurrentProcess

AttachProcess

ConnectProcessServer

CreateProcess2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient5

TerminateCurrentProcess