Ferramenta pronta
Uma ferramenta de terceiros para definir prioridades de E / S do processo, por ação manual do usuário ou automação e persistência, seria o Process Lasso . Ele pode definir quase qualquer configuração de processo e fazê-lo persistentemente ou por regras (por exemplo, quando isso acontece, altere a prioridade de E / S).
Resposta programática
A resposta é uma simples chamada de API para uma API nativa do NT, NTSetInformationProcess . É definida como a classe 'IoPriority' no DDK de 2008. No NT6, apenas dois níveis são suportados: Muito Baixo (segundo plano) e Normal . Tecnicamente, existem 5 níveis definidos - Crítico, Alto, Normal, Baixo e Muito Baixo. O nível Crítico é reservado para operações de paginação. Não há dados sobre os outros.
No entanto, a maneira correta de usar a prioridade I / O é apenas para iniciar um 'modo de fundo' através de uma chamada para a API do Windows SetProcessPriorityClass , fornecendo PROCESSS_MODE_BACKGROUND_BEGIN. Isso fará com que ele use a prioridade de E / S muito baixa (em segundo plano), junto com uma classe de prioridade da CPU IDLE. Quando terminar, reverta via PROCESS_MODE_BACKGROUND_END.
A API SetThreadPriority também permitirá esse mesmo modo de segundo plano para threads específicos. Aqui você forneceria THREAD_MODE_BACKGROUND_BEGIN / END.