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
프로세스 만들기 옵션을 지정합니다. OptionsBufferDEBUG_CREATE_PROCESS_OPTIONS 구조체에 대한 포인터입니다.
[in] OptionsBufferSize
OptionsBuffer 버퍼의 크기를 지정합니다. DEBUG_CREATE_PROCESS_OPTIONS(sizeof) 설정해야 합니다.
[in, optional] InitialDirectory
프로세스의 시작 디렉터리를 지정합니다. 이 매개 변수는 CommandLine NULL 않은 경우에만 사용됩니다. InitialDirectory NULL 경우 프로세스 서버의 현재 디렉터리가 사용됩니다.
[in, optional] Environment
새 프로세스에 대한 환경 블록을 지정합니다. 환경 블록은 null로 끝나는 null 종료 문자열 블록으로 구성됩니다. 각 문자열은 다음과 같은 형식입니다.
name=value
환경 블록의 마지막 두 문자는 모두 NULL 있습니다. 하나는 문자열을 종료하고 다른 하나는 블록을 종료합니다.
환경 NULL 설정되면 새 프로세스는 프로세스 서버의 환경 블록을 상속합니다. DEBUG_CREATE_PROCESS_THROUGH_RTL 플래그가 OptionsBuffer설정된 경우 환경 NULL 합니다.
[in] ProcessId
디버거가 연결할 대상 프로세스의 프로세스 ID를 지정합니다. ProcessID 0이면 디버거가 CommandLine만든 프로세스에 연결됩니다.
[in] AttachFlags
디버거가 대상 프로세스에 연결하는 방법을 제어하는 플래그를 지정합니다. 이러한 플래그에 대한 자세한 내용은 DEBUG_ATTACH_XXX참조하세요.
반환 값
이 메서드는 오류 값을 반환할 수도 있습니다. 자세한 내용은 반환 값 참조하세요.
반환 코드 | 묘사 |
---|---|
|
메서드가 성공했습니다. |
|
이 값은 CommandLine NULL ProcessId 경우 반환됩니다. |
발언
이 메서드는 라이브 사용자 모드 디버깅에만 사용할 수 있습니다.
CommandLine NULL 않고 ProcessId 경우 엔진이 일시 중단된 상태로 프로세스를 만듭니다. 엔진은 ProcessId지정된 프로세스에 성공적으로 연결한 후 새로 만든 프로세스를 다시 시작합니다.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 바탕 화면 |
헤더 | dbgeng.h(Dbgeng.h 포함) |