Структура CREATE_PROCESS_DEBUG_INFO содержит информацию создания процесса, которая может использоваться отладчиком программы.
Синтаксис
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; |
Дескриптор загрузочного модуля процесса. Если этот член структуры равен ПУСТО (NULL), дескриптор не допустим. В противном случае отладчик может использовать этот член структуры, чтобы читать из и записывать в загрузочный модуль.
Дескриптор процесса. Если этот член структуры - ПУСТО (NULL), дескриптор не допустим. В противном случае, отладчик может использовать этот член структуры, чтобы читать из и записывать в память процесса.
hThread
lpBaseOfImage
Указатель на базовый адрес исполняемого загрузочного модуля, процесс которого запущен.
dwDebugInfoFileOffset
Смещение информации об отладке в файле, идентифицированном членом структуры hFile. Система предполагает, что информация отладки находится в формате Microsoft ® CodeView ® версии 4.0. Этот формат является текущей модификацией COFF (Стандартный формат объектного файла).nDebugInfoSize
Размер информации об отладке в файле, в байтах. Если это значение равняется нулю, нет никакой отладочной информации.
lpThreadLocalBase
Указатель на блок данных. При смещении 0x2C в этом блоке существует другой указатель, называемый ThreadLocalStoragePointer, который указывает на массив блоков локальной памяти потока (TLS) одного модуля. Это дает доступ отладчику к данным одного потока в потоках отлаживаемого процесса, используя одни и те же алгоритмы, которые компилятор использовал бы.
lpStartAddress
Указатель на начальный адрес потока. Это значение может быть только приближением начального адреса потока, потому что любое приложение с соответствующим доступом к потоку может изменить контекст потока, используя функцию SetThreadContext.
lpImageName
Указатель на имя файла связанного с членом структуры hFile. Этот параметр может быть ПУСТО (NULL), или он может содержать адрес строкового указателя в адресном пространстве отлаженного процесса. А тот адрес может, в свою очередь, быть или ПУСТО (NULL) или указывать на фактическое имя файла. Если член структуры fUnicode - ненулевое значение, строка имени исполнена в Unicode; в противном случае, она исполнена в ANSI.
Этот член структуры является абсолютно необязательным. Отладчики должны быть готовы обработать ситуацию, когда lpImageName - ПУСТО (NULL), или *lpImageName (в адресном пространстве отлаженного процесса) - ПУСТО (NULL). В особенности, система не предоставляет имя загрузочного модули для создающегося события процесса, и вряд ли передаст имя загрузочного модули для события первой DLL. Система также не предоставляет ту информацию, которая касается отладочного события, которые порождаются из вызова функции DebugActiveProcess.
fUnicode
Указывает, является ли имя файла, заданное членом структуры lpImageName Unicode или ANSI. Ненулевое значение указывает на Unicode; нуль обозначает ANSI.
Смотри также
Обзор Основы отладки, Структуры, используемые при отладке, CREATE_THREAD_DEBUG_INFO, DebugActiveProcess, DEBUG_EVENT, LOAD_DLL_DEBUG_INFO, SetThreadContext
Размещение и совместимость CREATE_PROCESS_DEBUG_INFO |
||
К |
Windows XP |
Да |
л |
Windows 2000 Professional |
Да |
и |
Windows NT Workstation |
Да |
е |
Windows Me |
Да |
н |
Windows 98 |
Да |
т |
Windows 95 |
Да |
С |
Windows Server 2003 |
Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да |
в | ||
е | ||
р | ||
Используемая библиотека |
- |
|
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в |
Winbase.h |
|
- включено в |
Windows.h |
|
Unicode |
Нет |
|
Замечания по платформе |
Не имеется |