Compartilhar via


estrutura CREATE_PROCESS_DEBUG_INFO (minwinbase.h)

Contém informações de criação de processo que podem ser usadas por um depurador.

Sintaxe

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;

Membros

hFile

Um identificador para o arquivo de imagem do processo. Se esse membro for NULL, o identificador não será válido. Caso contrário, o depurador pode usar o membro para ler e gravar no arquivo de imagem.

Quando o depurador for concluído com esse arquivo, ele deverá fechar o identificador usando a função CloseHandle .

hProcess

Um identificador para o processo. Se esse membro for NULL, o identificador não será válido. Caso contrário, o depurador poderá usar o membro para ler e gravar na memória do processo.

hThread

Um identificador para o thread inicial do processo identificado pelo membro hProcess . Se o parâmetro hThread for NULL, o identificador não será válido. Caso contrário, o depurador terá THREAD_GET_CONTEXT, THREAD_SET_CONTEXT e THREAD_SUSPEND_RESUME acesso ao thread, permitindo que o depurador leia e escreva nos registros do thread e controle a execução do thread.

lpBaseOfImage

O endereço base da imagem executável que o processo está executando.

dwDebugInfoFileOffset

O deslocamento para as informações de depuração no arquivo identificado pelo membro hFile .

nDebugInfoSize

O tamanho das informações de depuração no arquivo, em bytes. Se esse valor for zero, não haverá informações de depuração.

lpThreadLocalBase

Um ponteiro para um bloco de dados. No deslocamento 0x2C nesse bloco há outro ponteiro, chamado ThreadLocalStoragePointer, que aponta para uma matriz de blocos de armazenamento local de thread por módulo. Isso fornece a um depurador acesso a dados por thread nos threads do processo que está sendo depurado usando os mesmos algoritmos que um compilador usaria.

lpStartAddress

Um ponteiro para o endereço inicial do thread. Esse valor pode ser apenas uma aproximação do endereço inicial do thread, pois qualquer aplicativo com acesso apropriado ao thread pode alterar o contexto do thread usando a função SetThreadContext .

lpImageName

Um ponteiro para o nome do arquivo associado ao membro hFile . Esse parâmetro pode ser NULL ou pode conter o endereço de um ponteiro de cadeia de caracteres no espaço de endereço do processo que está sendo depurado. Esse endereço pode, por sua vez, ser NULL ou apontar para o nome de arquivo real. Se fUnicode for um valor diferente de zero, a cadeia de caracteres de nome será Unicode; caso contrário, será ANSI.

Esse membro é estritamente opcional. Os depuradores devem estar preparados para lidar com o caso em que lpImageName é NULL ou *lpImageName (no espaço de endereço do processo que está sendo depurado) é NULL. Especificamente, o sistema não fornece um nome de imagem para um evento de processo de criação e provavelmente não passará um nome de imagem para o primeiro evento de DLL. O sistema também não fornece essas informações no caso de eventos de depuração originados de uma chamada para a função DebugActiveProcess .

fUnicode

Um valor que indica se um nome de arquivo especificado pelo membro lpImageName é Unicode ou ANSI. Um valor diferente de zero indica Unicode; zero indica ANSI.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Cabeçalho minwinbase.h (inclua Windows.h)

Confira também

CREATE_THREAD_DEBUG_INFO

DEBUG_EVENT

DebugActiveProcess

LOAD_DLL_DEBUG_INFO

SetThreadContext