!findthreads

Ekstensi !findthreads menampilkan informasi ringkasan tentang satu atau beberapa utas pada sistem target berdasarkan kriteria pencarian yang disediakan. Informasi utas akan ditampilkan ketika tumpukan terkait mereferensikan objek yang disediakan. Perintah ini hanya dapat digunakan selama penelusuran kesalahan mode kernel.

Sintaks

!findthreads [-v][-t  <Thread Address>|-i <IRP Address>|-d <Device Address>|( -a <Pointer Address> -e <End Address> | -l <Range Length>)] 

Parameter

-v
Menampilkan informasi verbose pada semua kecocokan kriteria.

-t **** Alamat Utas
Kriteria pencarian akan menjadi semua modul, objek tunggu, dan RUN untuk utas, serta objek dan modul perangkat yang dihasilkan dari IRP yang terpasang. Opsi ini umumnya akan memberikan kriteria pencarian terluas.

-saya **** Alamat IRP
Kriteria pencarian akan menjadi semua modul dan perangkat untuk IRP yang ditunjukkan, serta referensi apa pun ke IRP itu sendiri.

-d **** Alamat Perangkat
Kriteria pencarian akan didasarkan pada objek perangkat. Ini akan mencakup modul yang terkait dengan objek perangkat (melalui objek driver), ekstensi perangkat, IRP apa pun yang terpasang pada perangkat, dan informasi serupa untuk setiap yang terpasang pada objek perangkat.

-sebuah **** Alamat Penunjuk
Tambahkan alamat dasar ke kriteria. Jika -e atau -l ditentukan dengan benar, nilai ini akan menjadi dasar rentang memori. Jika tidak, itu ditafsirkan sebagai penunjuk.

-e **** Alamat Akhir
Menentukan alamat akhir rentang memori yang ditentukan dengan -a.

-L **** Panjang Rentang
Menentukan panjang rentang memori yang ditentukan dengan -a.

DLL

Windows 10 dan yang lebih baru

Kdexts.dll

Informasi Tambahan

Untuk informasi tentang utas dalam mode kernel, lihat Mengubah Konteks. Untuk informasi selengkapnya tentang menganalisis proses dan utas, lihat Microsoft Windows Internals, oleh Mark Russinovich dan David Solomon.

Keterangan

Berikut adalah contoh output menggunakan opsi -v dan -t:

kd> !findthreads -v -t ffffd001ee29cdc0

Added criterion for THREAD 0xffffd001ee29cdc0
  Added criterion for THREAD STACK 0xffffd001ee2bac20
  ERROR: Object 0xffffffffffffffe0 is not an IRP
ERROR: unable to completely walk thread IRP list.
  Added criterion for MODULE kdnic(0xfffff80013120000)

Found 63 threads matching the search criteria

Found 6 criteria matches for THREAD 0xffffe0016a383740, PROCESS 0xffffe0016a220200
  Kernel stack location 0xffffd001f026a0c0 references THREAD 0xffffd001ee29cdc0
  Kernel stack location 0xffffd001f026a418 references THREAD 0xffffd001ee29cdc0
  Kernel stack location 0xffffd001f026a460 references THREAD 0xffffd001ee29cdc0
  Kernel stack location 0xffffd001f026a4d0 references THREAD 0xffffd001ee29cdc0
  Kernel stack location 0xffffd001f026a4f0 references THREAD 0xffffd001ee29cdc0
  Kernel stack location 0xffffd001f026a670 references THREAD 0xffffd001ee29cdc0


    ffffd001f026a0e0 nt!KiSwapContext+76
    ffffd001f026a190 nt!KiSwapThread+1c8
    ffffd001f026a220 nt!KiCommitThreadWait+148
    ffffd001f026a2e0 nt!KeWaitForMultipleObjects+21e
    ffffd001f026a800 nt!ObWaitForMultipleObjects+2b7
    ffffd001f026aa80 nt!NtWaitForMultipleObjects+f6
    000000c8d220fa98 nt!KiSystemServiceCopyEnd+13
    000000c8d220fa98 ntdll!ZwWaitForMultipleObjects+a
...