5

Я хочу уничтожить определенный поток, который потребляет около 30 процентов времени моего процессора. Вот скриншоты Processhacker:

screen1

Это происходит иногда, когда драйвер EXT2FSD, который позволяет мне читать разделы ext, пытается прочитать usb с поврежденной файловой системой. Так что процесс работает в фоновом режиме, и я не могу его остановить (даже отключив диск).

screen2

Есть ли способ остановить конкретный поток в Windows?

1 ответ1

4

Некоторые защищенные процессы, критические для стабильности ОС, не могут быть изменены программами пользовательского режима, даже работающими от имени администратора или учетной записи SYSTEM . Следовательно, вы не можете уничтожить или даже приостановить поток системного процесса, не написав драйвер режима ядра. Кнопка Kill на вкладке Threads в Process Explorer остановит поток, если сможет, но если вы попробуете, вы обнаружите, что это невозможно.

Даже если вы можете убить нить, вы не должны. Потоки могут удерживать эксклюзивные блокировки ресурсов, пока они делают что-то важное Если поток умирает в процессе выполнения чего-то подобного, все остальные потоки в процессе, скорее всего, останутся с этим ресурсом в несогласованном состоянии. Дальнейшее чтение: Понимание последствий WAIT_ABANDONED. Это достаточно плохо в стандартном процессе пользовательского режима, но делать это с ядром ОС было бы катастрофическим.

Если вы хотите, чтобы этот драйвер не использовал ресурсы вашего компьютера, вам следует удалить драйвер, как и любой другой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .