Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten temat zawiera krótkie omówienie sposobu manipulowania wątkami i procesami przy użyciu interfejsu API WdbgExts. Aby zapoznać się z przeglądem wątków i procesów w aparacie debugera, zobacz Wątki i procesy w sekcji Omówienie aparatu debugera w dokumentacji.
Wątki
Aby uzyskać adres bloku środowiska wątku (TEB), który opisuje bieżący wątek, użyj metody GetTebAddress. W debugowaniu w trybie jądra struktura KTHREAD jest również dostępna do opisania wątku. Ta struktura jest zwracana przez polecenie GetCurrentThreadAddr (w debugowaniu w trybie użytkownika getCurrentThreadAddr zwraca adres TEB).
Kontekst wątku jest stanem zachowanym przez system Windows podczas przełączania wątków; jest reprezentowana przez strukturę CONTEXT. Ta struktura różni się w zależności od systemu operacyjnego i platformy i należy zachować ostrożność podczas korzystania ze struktury CONTEXT. Kontekst wątku jest zwracany przez funkcję GetContext i można go ustawić przy użyciu funkcji SetContext .
Aby zbadać ślad stosu dla bieżącego wątku, użyj funkcji StackTrace . Aby tymczasowo zmienić wątek używany do badania śladu stosu, użyj funkcji SetThreadForOperation lub SetThreadForOperation64. Zobacz Badanie śladu stosu w sekcji zatytułowanej Używanie interfejsu API aparatu debugera w tej dokumentacji, aby poznać dodatkowe metody badania stosu.
Aby uzyskać informacje o wątku systemu operacyjnego w obiekcie docelowym, użyj operacji IoctlIG_GET_THREAD_OS_INFO.
Procesy
Aby uzyskać adres bloku środowiska przetwarzania (PEB), który opisuje bieżący proces, użyj metody GetPebAddress. W debugowaniu w trybie jądra struktura KPROCESS jest również dostępna do opisania procesu. Ta struktura jest zwracana przez polecenie GetCurrentProcessAddr (w debugowaniu w trybie użytkownika GetCurrentProcessAddr zwraca adres PEB).
Metoda GetCurrentProcessHandle zwraca uchwyt systemowy dla bieżącego procesu.
Dodatkowe informacje
Aby uzyskać bardziej zaawansowany interfejs API manipulowania wątkami i manipulowania procesami, zobacz Kontrolowanie wątków i procesów w sekcji Korzystanie z interfejsu API aparatu debugera w tej dokumentacji.