IDebugClient5::CreateProcessAndAttach2-Methode (dbgeng.h)
Die CreateProcessAndAttach2-Methode erstellt einen Prozess über eine angegebene Befehlszeile und fügt dann an diesen Prozess oder einen anderen Benutzermodusprozess an.
Syntax
HRESULT CreateProcessAndAttach2(
[in] ULONG64 Server,
[in, optional] PSTR CommandLine,
[in] PVOID OptionsBuffer,
[in] ULONG OptionsBufferSize,
[in, optional] PCSTR InitialDirectory,
[in, optional] PCSTR Environment,
[in] ULONG ProcessId,
[in] ULONG AttachFlags
);
Parameter
[in] Server
Gibt den Prozessserver an, der zum Anfügen an den Prozess verwendet werden soll. Wenn Server null ist, stellt die Engine eine Verbindung mit dem lokalen Prozess her, ohne einen Prozessserver zu verwenden.
[in, optional] CommandLine
Gibt die Befehlszeile an, die zum Erstellen des neuen Prozesses ausgeführt werden soll. Wenn CommandLineNULL ist, wird kein Prozess erstellt, und diese Methoden verwenden ProcessId zum Anfügen an einen vorhandenen Prozess.
[in] OptionsBuffer
Gibt die Optionen für die Prozesserstellung an. OptionsBuffer ist ein Zeiger auf eine DEBUG_CREATE_PROCESS_OPTIONS-Struktur .
[in] OptionsBufferSize
Gibt die Größe des Puffers OptionsBuffer an. Dies sollte auf sizeof(DEBUG_CREATE_PROCESS_OPTIONS) festgelegt werden.
[in, optional] InitialDirectory
Gibt das Startverzeichnis für den Prozess an. Dieser Parameter wird nur verwendet, wenn CommandLine nicht NULL ist. Wenn InitialDirectoryNULL ist, wird das aktuelle Verzeichnis für den Prozessserver verwendet.
[in, optional] Environment
Gibt einen Umgebungsblock für den neuen Prozess an. Ein Umgebungsblock besteht aus einem NULL-beendeten Block von Zeichenfolgen, die null beendet wurden. Jede Zeichenfolge hat folgendes Format:
name=value
Beachten Sie, dass die letzten beiden Zeichen des Umgebungsblocks NULL sind: eines zum Beenden der Zeichenfolge und eines zum Beenden des Blocks.
Wenn Environment auf NULL festgelegt ist, erbt der neue Prozess den Umgebungsblock des Prozessservers. Wenn das flag DEBUG_CREATE_PROCESS_THROUGH_RTL in OptionsBuffer festgelegt ist, muss EnvironmentNULL sein.
[in] ProcessId
Gibt die Prozess-ID des Zielprozesses an, an den der Debugger angefügt wird. Wenn ProcessID null ist, wird der Debugger an den Prozess angefügt, den er über CommandLine erstellt hat.
[in] AttachFlags
Gibt die Flags an, die steuern, wie der Debugger an den Zielprozess anfügt. Ausführliche Informationen zu diesen Flags finden Sie unter DEBUG_ATTACH_XXX.
Rückgabewert
Diese Methode gibt möglicherweise auch Fehlerwerte zurück. Weitere Informationen finden Sie unter Rückgabewerte .
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode war erfolgreich. |
|
Dies wird zurückgegeben, wenn CommandLineNULL und ProcessId null ist. |
Hinweise
Diese Methode ist nur für das Debuggen im Livebenutzermodus verfügbar.
Wenn CommandLine nicht NULL und ProcessId nicht 0 ist, erstellt die Engine den Prozess in einem angehaltenen Zustand. Die Engine setzt diesen neu erstellten Prozess fort, nachdem sie erfolgreich eine Verbindung mit dem in ProcessId angegebenen Prozess hergestellt hat.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | dbgeng.h (dbgeng.h einschließen) |