CREATE_PROCESS_DEBUG_INFO-Struktur (minwinbase.h)
Enthält Informationen zur Prozesserstellung, die von einem Debugger verwendet werden können.
Syntax
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;
Member
hFile
Ein Handle für die Imagedatei des Prozesses. Wenn dieser Member NULL ist, ist das Handle ungültig. Andernfalls kann der Debugger den Member verwenden, um aus der Bilddatei zu lesen und in diese zu schreiben.
Wenn der Debugger mit dieser Datei fertig ist, sollte er das Handle mithilfe der CloseHandle-Funktion schließen.
hProcess
Ein Handle für den Prozess. Wenn dieser Member NULL ist, ist das Handle ungültig. Andernfalls kann der Debugger den Member verwenden, um aus dem Arbeitsspeicher des Prozesses zu lesen und in diesen zu schreiben.
hThread
Ein Handle für den anfänglichen Thread des Prozesses, der vom hProcess-Element identifiziert wird. Wenn hThread-ParamNULL ist, ist das Handle ungültig. Andernfalls verfügt der Debugger über THREAD_GET_CONTEXT, THREAD_SET_CONTEXT und THREAD_SUSPEND_RESUME Zugriff auf den Thread, sodass der Debugger aus den Registern des Threads lesen und in die Register des Threads schreiben und die Ausführung des Threads steuern kann.
lpBaseOfImage
Die Basisadresse des ausführbaren Images, das der Prozess ausführt.
dwDebugInfoFileOffset
Der Offset zu den Debuginformationen in der Datei, die vom hFile-Element identifiziert wird.
nDebugInfoSize
Die Größe der Debuginformationen in der Datei in Bytes. Wenn dieser Wert null ist, gibt es keine Debuginformationen.
lpThreadLocalBase
Ein Zeiger auf einen Datenblock. Beim Offset 0x2C in diesen Block ein weiterer Zeiger namens ThreadLocalStoragePointer
, der auf ein Array von lokalen Speicherblöcken pro Modulthread verweist. Dadurch erhält ein Debugger Zugriff auf die Daten pro Thread in den Threads des Prozesses, der mit denselben Algorithmen wie ein Compiler gedebuggt wird.
lpStartAddress
Ein Zeiger auf die Startadresse des Threads. Dieser Wert kann nur eine Näherung der Startadresse des Threads sein, da jede Anwendung mit entsprechendem Zugriff auf den Thread den Kontext des Threads mithilfe der SetThreadContext-Funktion ändern kann.
lpImageName
Ein Zeiger auf den Dateinamen, der dem hFile-Element zugeordnet ist. Dieser Parameter kann NULL sein oder die Adresse eines Zeichenfolgenzeigers im Adressraum des zu debuggenden Prozesses enthalten. Diese Adresse kann wiederum entweder NULL sein oder auf den tatsächlichen Dateinamen verweisen. Wenn fUnicode ein Wert ungleich 0 ist, lautet die Namenszeichenfolge Unicode; Andernfalls ist es ANSI.
Dieses Element ist streng optional. Debugger müssen für den Fall vorbereitet sein, dass lpImageNameNULL oder *lpImageName (im Adressraum des zu debuggenden Prozesses) NULL ist. Insbesondere stellt das System keinen Imagenamen für ein Create Process-Ereignis bereit und übergibt wahrscheinlich keinen Imagenamen für das erste DLL-Ereignis. Das System stellt diese Informationen auch bei Debugereignissen, die von einem Aufruf der DebugActiveProcess-Funktion stammen, nicht bereit.
fUnicode
Ein -Wert, der angibt, ob ein vom lpImageName-Element angegebener Dateiname Unicode oder ANSI ist. Ein Wert ungleich 0 (null) gibt Unicode an; 0 gibt ANSI an.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Kopfzeile | minwinbase.h (windows.h einschließen) |