WdbgExts-Threads und -Prozesse
Dieses Thema bietet eine kurze Übersicht darüber, wie Threads und Prozesse mithilfe der WdbgExts-API bearbeitet werden können. Eine Übersicht über Threads und Prozesse in der Debugger-Engine finden Sie unter Threads und Prozesse im Abschnitt Übersicht der Debugger-Engine dieser Dokumentation.
Threads
Verwenden Sie die GetTebAddress-Methode, um die Adresse des Threadumgebungsblocks (TEB) abzurufen, der den aktuellen Thread beschreibt. Beim Debuggen im Kernelmodus steht auch die KTHREAD-Struktur zur Beschreibung eines Threads zur Verfügung. Diese Struktur wird von GetCurrentThreadAddr zurückgegeben (beim Debuggen im Benutzermodus 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 bei der Verwendung der CONTEXT-Struktur ist Vorsicht zu beachten. Der Threadkontext wird von der GetContext-Funktion zurückgegeben und kann mithilfe der SetContext-Funktion festgelegt werden.
Verwenden Sie die StackTrace-Funktion , um die Stapelüberwachung 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 Stapelüberwachung verwendet wird. Weitere Methoden zum Untersuchen des Stapels finden Sie unter Untersuchen der Stapelüberwachung 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.
Prozesse
Verwenden Sie die Methode GetPebAddress, um die Adresse des Prozessumgebungsblocks (PEB) abzurufen, der den aktuellen Prozess beschreibt. Beim Debuggen im Kernelmodus steht auch die KPROCESS-Struktur zur Beschreibung eines Prozesses zur Verfügung. Diese Struktur wird von GetCurrentProcessAddr zurückgegeben (beim Debuggen im Benutzermodus gibt GetCurrentProcessAddr die Adresse des PEB zurück).
Die GetCurrentProcessHandle-Methode gibt das Systemhandle für den aktuellen Prozess zurück.
Zusätzliche Informationen
Eine leistungsfähigere API für Threadbearbeitung und Prozessbearbeitung finden Sie unter Steuern von Threads und Prozessen im Abschnitt Verwenden der Debugger-Engine-API dieser Dokumentation.