Готовый инструмент
Сторонним инструментом для установки приоритетов ввода-вывода процесса, либо ручным действием пользователя, либо автоматизацией и постоянством, будет Process Lasso. Он может устанавливать практически любые параметры процесса и делать это постоянно или по правилам (например, когда это происходит, измените приоритет ввода / вывода для этого).
Программный ответ
Ответ - простой вызов API для Native API NTSetInformationProcess. Он определен как класс «IoPriority» в DDK 2008 года. В NT6 поддерживаются только два уровня: Очень низкий (фон) и Нормальный. Технически определены 5 уровней: критический, высокий, нормальный, низкий и очень низкий. Критический уровень зарезервирован для пейджинговых операций. Нет данных по остальным.
Тем не менее, правильный способ использования приоритета ввода / вывода состоит в том, чтобы запустить «фоновый режим» только через вызов Windows API SetProcessPriorityClass, предоставляющий PROCESSS_MODE_BACKGROUND_BEGIN. Это заставит его использовать очень низкий (фоновый) приоритет ввода / вывода вместе с классом приоритета ЦП IDLE. Когда закончите, вернитесь через PROCESS_MODE_BACKGROUND_END.
API-интерфейс SetThreadPriority также разрешит этот же фоновый режим для определенных потоков. Здесь вы должны указать THREAD_MODE_BACKGROUND_BEGIN/END.