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