Freigeben über


WdbgExts-Threads und -Prozesse

Dieses Thema enthält eine kurze Übersicht darüber, wie Threads und Prozesse mithilfe der WdbgExts-API bearbeitet werden können. Eine Übersicht über Threads und Prozesse im Debuggermodul finden Sie in Threads und Prozessen im Abschnitt "Debugger engine Overview " dieser Dokumentation.

Threads

Verwenden Sie zum Abrufen der Adresse des Threadumgebungsblocks (TEB), der den aktuellen Thread beschreibt, die Methode GetTebAddress. Im Kernelmodusdebugging steht die KTHREAD-Struktur auch zur Beschreibung eines Threads zur Verfügung. Diese Struktur wird von GetCurrentThreadAddr zurückgegeben (im Benutzermodusdebugging gibt GetCurrentThreadAddr die Adresse des TEB zurück).

Der Threadkontext ist der Zustand, der von Windows beim Wechseln von Threads beibehalten wird. sie wird durch die CONTEXT-Struktur dargestellt. Diese Struktur variiert je nach Betriebssystem und Plattform und sollte bei Verwendung der CONTEXT-Struktur beachtet werden. Der Threadkontext wird von der GetContext-Funktion zurückgegeben und kann mithilfe der SetContext-Funktion festgelegt werden.

Verwenden Sie die StackTrace-Funktion , um die Stapelablaufverfolgung für den aktuellen Thread zu untersuchen. Verwenden Sie die Funktionen "SetThreadForOperation " oder "SetThreadForOperation64 ", um den Thread vorübergehend zu ändern, der zum Untersuchen der Stapelablaufverfolgung verwendet wird. Weitere Methoden zur Untersuchung der Stapelverfolgung finden Sie im Abschnitt „Verwenden der Debugger-Engine-API“ dieser Dokumentation.

Um Informationen zu einem Betriebssystemthread im Ziel abzurufen, verwenden Sie den Ioctl-VorgangIG_GET_THREAD_OS_INFO.

Abläufe

Verwenden Sie zum Abrufen der Adresse des Prozessumgebungsblocks (PEB), der den aktuellen Prozess beschreibt, die Methode GetPebAddress. Im Kernelmodusdebugging steht die KPROCESS-Struktur auch zur Beschreibung eines Prozesses zur Verfügung. Diese Struktur wird von GetCurrentProcessAddr zurückgegeben (im Benutzermodusdebugging gibt GetCurrentProcessAddr die Adresse des PEB zurück).

Die Methode GetCurrentProcessHandle gibt den Systemhandle für den aktuellen Prozess zurück.

Zusätzliche Informationen

Eine leistungsfähigere Threadmanipulations- und Prozessmanipulations-API finden Sie im Abschnitt "Steuern von Threads und Prozessen " im Abschnitt "Verwenden der Debuggermodul-API " dieser Dokumentation.