Condividi tramite


CREATE_PROCESS_DEBUG_INFO struttura (minwinbase.h)

Contiene informazioni sulla creazione di processi che possono essere usate da un debugger.

Sintassi

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;

Members

hFile

Handle per il file di immagine del processo. Se questo membro è NULL, l'handle non è valido. In caso contrario, il debugger può usare il membro per leggere e scrivere nel file di immagine.

Al termine del debugger con questo file, è necessario chiudere l'handle usando la funzione CloseHandle .

hProcess

Handle per il processo. Se questo membro è NULL, l'handle non è valido. In caso contrario, il debugger può usare il membro per leggere e scrivere nella memoria del processo.

hThread

Handle per il thread iniziale del processo identificato dal membro hProcess . Se hThread param è NULL, l'handle non è valido. In caso contrario, il debugger ha THREAD_GET_CONTEXT, THREAD_SET_CONTEXT e THREAD_SUSPEND_RESUME l'accesso al thread, consentendo al debugger di leggere e scrivere nei registri del thread e per controllare l'esecuzione del thread.

lpBaseOfImage

Indirizzo di base dell'immagine eseguibile in esecuzione.

dwDebugInfoFileOffset

Offset delle informazioni di debug nel file identificato dal membro hFile .

nDebugInfoSize

Dimensioni delle informazioni di debug nel file, in byte. Se questo valore è zero, non sono presenti informazioni di debug.

lpThreadLocalBase

Puntatore a un blocco di dati. In corrispondenza dell'offset 0x2C in questo blocco è un altro puntatore, denominato ThreadLocalStoragePointer, che punta a una matrice di blocchi di archiviazione locale thread per modulo. Ciò consente a un debugger di accedere ai dati per thread nei thread del processo sottoposto a debug usando gli stessi algoritmi usati da un compilatore.

lpStartAddress

Puntatore all'indirizzo iniziale del thread. Questo valore può essere solo un'approssimazione dell'indirizzo iniziale del thread, perché qualsiasi applicazione con accesso appropriato al thread può modificare il contesto del thread usando la funzione SetThreadContext .

lpImageName

Puntatore al nome del file associato al membro hFile . Questo parametro può essere NULL oppure può contenere l'indirizzo di un puntatore di stringa nello spazio indirizzi del processo sottoposto a debug. Tale indirizzo può, a sua volta, essere NULL o puntare al nome file effettivo. Se fUnicode è un valore diverso da zero, la stringa nome è Unicode; in caso contrario, è ANSI.

Questo membro è strettamente facoltativo. I debugger devono essere preparati per gestire il caso in cui lpImageName è NULL o *lpImageName (nello spazio indirizzi del processo sottoposto a debug) è NULL. In particolare, il sistema non fornisce un nome immagine per un evento di processo di creazione e non passerà probabilmente un nome immagine per il primo evento DLL. Il sistema non fornisce anche queste informazioni nel caso di eventi di debug che provengono da una chiamata alla funzione DebugActiveProcess .

fUnicode

Valore che indica se un nome di file specificato dal membro lpImageName è Unicode o ANSI. Un valore diverso da zero indica Unicode; zero indica ANSI.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione minwinbase.h (includere Windows.h)

Vedi anche

CREATE_THREAD_DEBUG_INFO

DEBUG_EVENT

DebugActiveProcess

LOAD_DLL_DEBUG_INFO

SetThreadContext