다음을 통해 공유


CREATE_PROCESS_DEBUG_INFO 구조체(minwinbase.h)

디버거에서 사용할 수 있는 프로세스 만들기 정보를 포함합니다.

구문

typedef struct _CREATE_PROCESS_DEBUG_INFO {
  HANDLE                 hFile;
  HANDLE                 hProcess;
  HANDLE                 hThread;
  LPVOID                 lpBaseOfImage;
  DWORD                  dwDebugInfoFileOffset;
  DWORD                  nDebugInfoSize;
  LPVOID                 lpThreadLocalBase;
  LPTHREAD_START_ROUTINE lpStartAddress;
  LPVOID                 lpImageName;
  WORD                   fUnicode;
} CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;

멤버

hFile

프로세스의 이미지 파일에 대한 핸들입니다. 이 멤버가 NULL이면 핸들이 유효하지 않습니다. 그렇지 않으면 디버거가 멤버를 사용하여 이미지 파일에서 읽고 쓸 수 있습니다.

디버거가 이 파일로 완료되면 CloseHandle 함수를 사용하여 핸들을 닫아야 합니다.

hProcess

프로세스에 대한 핸들입니다. 이 멤버가 NULL이면 핸들이 유효하지 않습니다. 그렇지 않으면 디버거는 멤버를 사용하여 프로세스의 메모리에서 읽고 쓸 수 있습니다.

hThread

hProcess 멤버로 식별되는 프로세스의 초기 스레드에 대한 핸들입니다. hThread 매개 변수가 NULL이면 핸들이 유효하지 않습니다. 그렇지 않으면 디버거에 스레드에 대한 THREAD_GET_CONTEXT, THREAD_SET_CONTEXTTHREAD_SUSPEND_RESUME 액세스 권한이 있으므로 디버거가 스레드의 레지스터에서 읽고 쓰며 스레드 실행을 제어할 수 있습니다.

lpBaseOfImage

프로세스가 실행 중인 실행 파일 이미지의 기본 주소입니다.

dwDebugInfoFileOffset

hFile 멤버로 식별된 파일의 디버깅 정보에 대한 오프셋입니다.

nDebugInfoSize

파일의 디버깅 정보 크기(바이트)입니다. 이 값이 0이면 디버깅 정보가 없습니다.

lpThreadLocalBase

데이터 블록에 대한 포인터입니다. 이 블록에 대한 오프셋 0x2C 모듈별 스레드 로컬 스토리지 블록 배열을 가리키는 라는 또 다른 포인터 ThreadLocalStoragePointer입니다. 이렇게 하면 컴파일러에서 사용하는 것과 동일한 알고리즘을 사용하여 디버그되는 프로세스의 스레드에 있는 스레드당 데이터에 대한 디버거 액세스 권한이 제공됩니다.

lpStartAddress

스레드의 시작 주소에 대한 포인터입니다. 이 값은 스레드에 대한 적절한 액세스 권한이 있는 애플리케이션이 SetThreadContext 함수를 사용하여 스레드의 컨텍스트를 변경할 수 있기 때문에 스레드의 시작 주소에 대한 근사치일 수 있습니다.

lpImageName

hFile 멤버와 연결된 파일 이름에 대한 포인터입니다. 이 매개 변수는 NULL이거나 디버그 중인 프로세스의 주소 공간에 문자열 포인터의 주소를 포함할 수 있습니다. 이 주소는 NULL 이거나 실제 파일 이름을 가리킬 수 있습니다. fUnicode가 0이 아닌 값이면 이름 문자열은 유니코드이고, 그렇지 않으면 ANSI입니다.

이 멤버는 엄격하게 선택 사항입니다. 디버거는 lpImageNameNULL 이거나 *lpImageName (디버그 중인 프로세스의 주소 공간)이 NULL인 경우를 처리하도록 준비해야 합니다. 특히 시스템은 create process 이벤트에 대한 이미지 이름을 제공하지 않으며 첫 번째 DLL 이벤트에 대한 이미지 이름을 전달할 가능성이 없습니다. 또한 시스템은 DebugActiveProcess 함수 호출에서 발생하는 디버그 이벤트의 경우 이 정보를 제공하지 않습니다.

fUnicode

lpImageName 멤버로 지정된 파일 이름이 유니코드인지 ANSI인지 여부를 나타내는 값입니다. 0이 아닌 값은 유니코드를 나타냅니다. 0은 ANSI를 나타냅니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 minwinbase.h(Windows.h 포함)

추가 정보

CREATE_THREAD_DEBUG_INFO

DEBUG_EVENT

DebugActiveProcess

LOAD_DLL_DEBUG_INFO

SetThreadContext