Freigeben über


IDebugClient5::CreateProcessAndAttach2-Methode (dbgeng.h)

Die CreateProcessAndAttach2--Methode erstellt einen Prozess aus einer angegebenen 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 das Modul eine Verbindung mit dem lokalen Prozess her, ohne einen Prozessserver zu verwenden.

[in, optional] CommandLine

Gibt die Befehlszeile an, die ausgeführt werden soll, um den neuen Prozess zu erstellen. Wenn CommandLine-NULL-ist, wird kein Prozess erstellt, und diese Methoden verwenden ProcessId- zum Anfügen an einen vorhandenen Prozess.

[in] OptionsBuffer

Gibt die Prozesserstellungsoptionen 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 InitialDirectory-NULL-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 mit null-beendeten Zeichenfolgen. Jede Zeichenfolge weist das Format auf:

name=value

Beachten Sie, dass die letzten beiden Zeichen des Umgebungsblocks sowohl NULL-sind: eine, um die Zeichenfolge zu beenden, und eine, um den Block zu beenden.

Wenn Umgebungs- auf NULL-festgelegt ist, erbt der neue Prozess den Umgebungsblock des Prozessservers. Wenn das DEBUG_CREATE_PROCESS_THROUGH_RTL-Flag in OptionsBuffer-festgelegt ist, muss Umgebungs-NULL-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 aus CommandLine-erstellt hat.

[in] AttachFlags

Gibt die Flags an, die steuern, wie der Debugger an den Zielprozess angefügt wird. Ausführliche Informationen zu diesen Flags finden Sie unter DEBUG_ATTACH_XXX.

Rückgabewert

Diese Methode kann auch Fehlerwerte zurückgeben. Weitere Informationen finden Sie unter Rückgabewerte.

Rückgabecode Beschreibung
S_OK
Die Methode war erfolgreich.
E_INVALIDARG
Dies wird zurückgegeben, wenn CommandLine-null ist und ProcessId null ist.

Bemerkungen

Diese Methode ist nur für das Debuggen im Live-Benutzermodus verfügbar.

Wenn CommandLine- nicht NULL- ist und ProcessId- nicht null ist, erstellt das Modul den Prozess in einem angehaltenen Zustand. Das Modul setzt diesen neu erstellten Prozess fort, nachdem er erfolgreich eine Verbindung mit dem in ProcessIdangegebenen Prozess hergestellt hat.

Hinweis Das Modul wird erst vollständig an den Prozess angefügt, wenn die WaitForEvent--Methode aufgerufen wurde. Erst nachdem der Prozess ein Ereignis generiert hat , z. B. das Ereignis "create-process", wird es in der Debuggersitzung verfügbar.
 
Weitere Informationen zum Erstellen und Anfügen an Livebenutzermodusziele finden Sie unter Live User-Mode Targets.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- dbgeng.h (include Dbgeng.h)

Siehe auch

.attach (Attach to Process)

.create (Create Process)

AbandonCurrentProcess-

AttachProcess-

ConnectProcessServer-

CreateProcess2-

DetachCurrentProcess-

GetRunningProcessDescription-

GetRunningProcessSystemIds-

IDebugClient5-

TerminateCurrentProcess-