Compartir a través de


!findthreads

La extensión !findthreads muestra información de resumen sobre uno o varios subprocesos en el sistema de destino en función de los criterios de búsqueda proporcionados. La información del subproceso se mostrará cuando las pilas asociadas hagan referencia al objeto proporcionado. Este comando solo se puede usar durante la depuración en modo kernel.

Sintaxis

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

Parámetros

-v
Muestra información detallada sobre todas las coincidencias de criterios.

-t **** Dirección del subproceso
Los criterios de búsqueda serán todos los módulos, objetos de espera e IRP para el subproceso, así como objetos de dispositivo y módulos generados a partir de los IRP conectados. Esta opción generalmente proporcionará los criterios de búsqueda más amplios.

-Yo **** Dirección IRP
Los criterios de búsqueda serán todos los módulos y dispositivos del IRP indicado, así como cualquier referencia al propio IRP.

-d **** Dirección del dispositivo
Los criterios de búsqueda se basarán desde el objeto de dispositivo. Esto incluirá el módulo asociado al objeto de dispositivo (a través del objeto driver), la extensión del dispositivo, cualquier IRP conectado al dispositivo y información similar para cualquier asociado al objeto de dispositivo.

-un **** Dirección del puntero
Añada una dirección base a los criterios. Si se especifica -e o -l correctamente, este valor será la base de un intervalo de memoria. De lo contrario, se interpreta como puntero.

-e **** Dirección final
Especifica la dirección final del intervalo de memoria especificado con -a.

-l **** Longitud del intervalo
Especifica la longitud del intervalo de memoria especificado con -a.

Archivo DLL

Windows 10 y versiones posteriores

Kdexts.dll

Información adicional

Para obtener información sobre subprocesos en modo kernel, consulte Cambio de contextos. Para obtener más información sobre el análisis de procesos y subprocesos, consulte Microsoft Windows Internals por Mark Russinovich y David Solomon.

Comentarios

A continuación se muestra un ejemplo de salida mediante las opciones -v y -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
...