Share via


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)

Weitere Informationen

CREATE_THREAD_DEBUG_INFO

DEBUG_EVENT

DebugActiveProcess

LOAD_DLL_DEBUG_INFO

SetThreadContext