IDebugClient5::CreateProcessAndAttach2 method (dbgeng.h)
The CreateProcessAndAttach2 method creates a process from a specified command line, then attaches to that process or another user-mode process.
Syntax
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
);
Parameters
[in] Server
Specifies the process server to use to attach to the process. If Server is zero, the engine will connect to the local process without using a process server.
[in, optional] CommandLine
Specifies the command line to execute to create the new process. If CommandLine is NULL, no process is created and these methods will use ProcessId to attach to an existing process.
[in] OptionsBuffer
Specifies the process creation options. OptionsBuffer is a pointer to a DEBUG_CREATE_PROCESS_OPTIONS structure.
[in] OptionsBufferSize
Specifies the size of the buffer OptionsBuffer. This should be set to sizeof(DEBUG_CREATE_PROCESS_OPTIONS).
[in, optional] InitialDirectory
Specifies the starting directory for the process. This parameter is used only if CommandLine is not NULL. If InitialDirectory is NULL, the current directory for the process server is used.
[in, optional] Environment
Specifies an environment block for the new process. An environment block consists of a null-terminated block of null-terminated strings. Each string is of the form:
name=value
Note that the last two characters of the environment block are both NULL: one to terminate the string and one to terminate the block.
If Environment is set to NULL, the new process inherits the environment block of the process server. If the DEBUG_CREATE_PROCESS_THROUGH_RTL flag is set in OptionsBuffer, then Environment must be NULL.
[in] ProcessId
Specifies the process ID of the target process to which the debugger will attach. If ProcessID is zero, the debugger will attach to the process it created from CommandLine.
[in] AttachFlags
Specifies the flags that control how the debugger attaches to the target process. For details on these flags, see DEBUG_ATTACH_XXX.
Return value
This method may also return error values. See Return Values for more details.
Return code | Description |
---|---|
|
The method was successful. |
|
This is returned if CommandLine is NULL and ProcessId is zero. |
Remarks
This method is available only for live user-mode debugging.
If CommandLine is not NULL and ProcessId is not zero, then the engine will create the process in a suspended state. The engine will resume this newly created process after it successfully connects to the process specified in ProcessId.
Requirements
Requirement | Value |
---|---|
Target Platform | Desktop |
Header | dbgeng.h (include Dbgeng.h) |