Проводник процесса может показать эффективный приоритет IO данного потока, но не изменить его. При наблюдении, поскольку приоритетная поддержка IO является сравнительно новой возможностью, большинство программ не устанавливает свои собственные приоритеты IO. Кажется, что по умолчанию приоритет IO получен из приоритета потока (а не приоритет процесса), который Проводник Процесса не может изменить также.
Есть ли какие-либо другие инструменты там, которые могут помочь мне изменить приоритет IO данного потока / все потоки данного процесса?
Готовый инструмент
Сторонняя программа для установки обрабатывает приоритеты ввода-вывода, или ручным пользовательским действием или автоматизацией и персистентностью, было бы Лассо Процесса. Это может установить почти любую установку процесса и делать так постоянно, или по правилам (например, когда это происходит, изменение приоритет ввода-вывода этого).
Программный ответ
Ответ является простым вызовом API Встроенного API NT, NTSetInformationProcess. Это определяется как класс 'IoPriority' в DDK 2008. В NT6 только два уровня поддерживали: Очень Низкий (фон) и Нормальный. Существует технически 5 определенных уровней - Очень важны, Высоки, Нормальны, Низко, и Очень Низко. Критический уровень резервируется для операций страничного обмена. Никакие данные по другим.
Однако надлежащий способ использовать приоритет ввода-вывода только для запуска 'фонового режима' через вызов к Windows API SetProcessPriorityClass, предоставляя PROCESSS_MODE_BACKGROUND_BEGIN. Это заставит это использовать очень Низкое (фон) приоритет ввода-вывода, наряду с НЕАКТИВНЫМ классом приоритета ЦП. При выполнении вернитесь через PROCESS_MODE_BACKGROUND_END.
SetThreadPriority API также позволит этот тот же фоновый режим для определенных потоков. Здесь Вы предоставили бы THREAD_MODE_BACKGROUND_BEGIN/END.
Я разработал это после наблюдения никого побеспокоенного им: https://sourceforge.net/projects/iopriority/(открытый исходный код)
Эта программа может установить приоритет ввода-вывода процесса, и все потоки затрагиваются им сразу. Довольно легко изменить его для работы с потоками вместо процессов.
ProcessHacker является инструментом GUI, который может изменить приоритет IO произвольного процесса.