Freigeben über


IDebugClient::AttachProcess-Methode (dbgeng.h)

Die AttachProcess-Methode verbindet das Debuggermodul 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 das Modul 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 angefügt wird. Ausführliche Informationen zu diesen Kennzeichnungen finden Sie in den Hinweisen.

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.

Bemerkungen

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

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.

Die DEBUG_ATTACH_XXX- Bitkennzeichnungen steuern, wie das Debuggermodul an einen Benutzermodusprozess anfügt. 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.

Konstante Beschreibung
DEBUG_ATTACH_NONINVASIVE An das Ziel anfügen, das nicht invasiv ist. Weitere Informationen zum nicht invasiven Debuggen finden Sie unter Nichtinvasive Debugging (Benutzermodus).

Wenn diese Kennzeichnung 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 Erneutes Anfügen an eine Anwendung, an die ein Debugger bereits angefügt (und möglicherweise abgebrochen) wurde. Weitere Informationen zum erneuten Anfügen an Ziele finden Sie unter Erneutes Anfügen an die Zielanwendung.

Wenn diese Kennzeichnung 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 Kennzeichen festgelegt ist, muss auch das Kennzeichen DEBUG_ATTACH_NONINVASIVE festgelegt werden.

DEBUG_ATTACH_INVASIVE_NO_INITIAL_BREAK (Windows XP und höher) Fordern Sie beim Anfügen an das Ziel keine anfängliche Unterbrechung an.

Wenn diese Kennzeichnung festgelegt ist, dürfen die Flags DEBUG_ATTACH_NONINVASIVE und DEBUG_ATTACH_EXISTING nicht festgelegt werden.

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

Anforderungen

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

Siehe auch

.attach (Attach to Process)

AbandonCurrentProcess-

AttachKernel-

ConnectProcessServer-

CreateProcess2-

CreateProcessAndAttach2-

DetachCurrentProcess-

GetRunningProcessDescription-

GetRunningProcessSystemIds-

IDebugClient-

IDebugClient2-

IDebugClient3-

IDebugClient4-

IDebugClient5-

TerminateCurrentProcess-

Debuggermodul