Debugging Tools for Windows

CreateProcess

The CreateProcess and CreateProcessWide methods create a process from the specified command line.

HRESULT
  IDebugClient::CreateProcess(
    IN ULONG64  Server,
    IN PSTR  CommandLine,
    IN ULONG  CreateFlags
    );

HRESULT
  IDebugClient3::CreateProcessWide(
    IN ULONG64  Server,
    IN PWSTR  CommandLine,
    IN ULONG  CreateFlags
    );

#ifdef UNICODE
#define CreateProcessT CreateProcessWide
#else
#define CreateProcessT CreateProcess
#endif

Parameters

Server
Specifies the process server to use to attach to the process. If Server is zero, the engine will create a local process without using a process server.
CommandLine
Specifies the command line to execute to create the new process.
CreateFlags
Specifies the flags to use when creating the process. For details on these flags, see the CreateFlags member of the DEBUG_CREATE_PROCESS_OPTIONS structure.

Return Value

S_OK
The method was successful.

This method may also return error values. See Return Values for more details.

Interface Version

CreateProcess is available in all versions of IDebugClient. CreateProcessWide is available in IDebugClient3 and later versions.

Comments

This method is available only for live user-mode debugging.

If CreateFlags contains either of the flags DEBUG_PROCESS or DEBUG_ONLY_THIS_PROCESS, the engine will also attach to the newly created process; this is similar to the behavior of CreateProcessAndAttach2 with its argument ProcessId set to zero.

For more information about creating and attaching to live user-mode targets, see Live User-Mode Targets.

Requirements

Headers: Defined in dbgeng.h. Include dbgeng.h.

See Also

CreateProcess2, AttachProcess, CreateProcessAndAttach2, .create (Create Process), ConnectProcessServer

Build machine: CAPEBUILD