共用方式為


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

指定要用來附加至進程的進程伺服器。 如果 伺服器 為零,引擎會連線到本機進程,而不使用進程伺服器。

[in, optional] CommandLine

指定要執行的命令行,以建立新的進程。 如果 CommandLineNULL,則不會建立任何進程,而且這些方法會使用 ProcessId 附加至現有進程。

[in] OptionsBuffer

指定進程建立選項。 OptionsBufferDEBUG_CREATE_PROCESS_OPTIONS 結構的指標。

[in] OptionsBufferSize

指定緩衝區的大小 OptionsBuffer。 這應該設定為 sizeof(DEBUG_CREATE_PROCESS_OPTIONS)

[in, optional] InitialDirectory

指定進程的起始目錄。 只有當 commandLine 不是 NULL時,才會使用此參數。 如果 InitialDirectoryNULL,則會使用進程伺服器的目前目錄。

[in, optional] Environment

指定新進程的環境區塊。 環境區塊是由 Null 終止字串的 Null 終止區塊所組成。 每個字串的格式如下:

name=value

請注意,環境區塊的最後兩個字元都是 NULL:一個用來終止字串,另一個用來終止區塊。

如果 Environment 設定為 NULL,則新進程會繼承進程伺服器的環境區塊。 如果 OptionsBuffer中設定了DEBUG_CREATE_PROCESS_THROUGH_RTL旗標,則 環境 必須 NULL

[in] ProcessId

指定調試程式將附加的目標進程進程標識碼。 如果 ProcessID 為零,調試程式會附加至從 CommandLine 建立的進程。

[in] AttachFlags

指定旗標,控制調試程式如何附加至目標進程。 如需這些旗標的詳細資訊,請參閱 DEBUG_ATTACH_XXX

傳回值

這個方法也可能傳回錯誤值。 如需詳細資訊,請參閱 傳回值

傳回碼 描述
S_OK
方法成功。
E_INVALIDARG
如果 CommandLine 為 NULL ,且 ProcessId 為零,則會傳回這個值。

言論

這個方法僅適用於即時使用者模式偵錯。

如果 CommandLineNULL,且 ProcessId 不是零,則引擎會以暫停狀態建立進程。 引擎會在成功連線到 processId中指定的進程之後,繼續此新建立的進程。

注意 引擎不會完全附加至進程,直到呼叫 WaitForEvent 方法為止。 只有在進程產生事件之後,才可在調試程式會話中使用 ,例如 create-process 事件。
 
如需建立及附加至即時使用者模式目標的詳細資訊,請參閱 Live User-Mode Targets

要求

要求 價值
目標平臺 桌面
標頭 dbgeng.h (include Dbgeng.h)

另請參閱

.attach (附加至進程)

.create

AbandonCurrentProcess

AttachProcess

ConnectProcessServer

CreateProcess2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient5

TerminateCurrentProcess