Freigeben über


IDebugClient::AttachProcess-Methode (dbgeng.h)

Die AttachProcess-Methode verbindet die Debugger-Engine mit einem Benutzermodusprozess.

Syntax

HRESULT AttachProcess(
  [in] ULONG64 Server,
  [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 einem lokalen Prozess her, ohne einen Prozessserver zu verwenden.

[in] ProcessId

Gibt die Prozess-ID des Zielprozesses an, an den der Debugger angefügt wird.

[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 Hinweise.

Rückgabewert

Diese Methode gibt möglicherweise auch Fehlerwerte zurück. Weitere Informationen finden Sie unter Rückgabewerte .

Rückgabecode BESCHREIBUNG
S_OK
Die Methode war erfolgreich.

Hinweise

Diese Methode ist nur für das Debuggen im Livebenutzermodus verfügbar.

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

Die DEBUG_ATTACH_XXX-Bitflags steuern, wie die Debugger-Engine an einen Benutzermodusprozess angefügt wird. Informationen zu den DEBUG_ATTACH_XXX-Optionen , die beim Anfügen an ein Kernelziel verwendet werden, finden Sie unter AttachKernel.

In der folgenden Tabelle werden die möglichen Flagwerte beschrieben.

Dauerhaft BESCHREIBUNG
DEBUG_ATTACH_NONINVASIVE Fügen Sie nicht invasiv an das Ziel an. Weitere Informationen zum nichtinvasiven Debuggen finden Sie unter Nichtinvasives Debuggen (Benutzermodus).

Wenn dieses Flag festgelegt ist, dürfen die Flags DEBUG_ATTACH_EXISTING, DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK und DEBUG_ATTACH_INVASIVE_RESUME_PROCESS nicht festgelegt werden.

DEBUG_ATTACH_EXISTING Fügen Sie eine Anwendung erneut an, an die ein Debugger bereits angefügt (und möglicherweise nicht mehr verwendet) wurde. Weitere Informationen zum erneuten Anfügen an Ziele finden Sie unter Erneutes Anfügen an die Zielanwendung.

Wenn dieses Flag festgelegt ist, dürfen die anderen DEBUG_ATTACH_XXX-Flags nicht festgelegt werden.

DEBUG_ATTACH_NONINVASIVE_NO_SUSPEND Halten Sie die Threads des Ziels nicht an, wenn sie nicht invasiv angefügt werden.

Wenn dieses Flag festgelegt ist, muss auch das Flag DEBUG_ATTACH_NONINVASIVE festgelegt werden.

DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK (Windows XP und höher) Fordern Sie beim Anfügen an das Ziel keinen ersten Einbruch an.

Wenn dieses Flag festgelegt ist, dürfen die Flags DEBUG_ATTACH_NONINVASIVE und DEBUG_ATTACH_EXISTING nicht festgelegt werden.

DEBUG_ATTACH_INVASIVE_RESUME_PROCESS Wenn dieses Flag festgelegt ist, dürfen die Flags DEBUG_ATTACH_NONINVASIVE und DEBUG_ATTACH_EXISTING nicht festgelegt werden.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile dbgeng.h (dbgeng.h einschließen)

Weitere Informationen

.attach (An Den Prozess anfügen)

AbandonCurrentProcess

AttachKernel

ConnectProcessServer

CreateProcess2

CreateProcessAndAttach2

DetachCurrentProcess

GetRunningProcessDescription

GetRunningProcessSystemIds

IDebugClient

IDebugClient2

IDebugClient3

IDebugClient4

IDebugClient5

TerminateCurrentProcess

Debugger-Engine