Não, isso não é possível sem modificar o código do sistema.
Além disso, acho que você está superestimando o desperdício de tempo associado à varredura e à busca no espaço de endereço físico de origem e no espaço de acesso físico de destino no disco.
a menos que o sistema esteja desesperadamente curto na RAM, a "parte" que você colocou é muito grande, durante a qual apenas uma varredura / busca ocorreu. O resto é leitura seqüencial. Esses dados são enviados para o controlador IO e, em seguida, para o barramento do sistema, são armazenados em buffer na RAM e, em seguida, no Módulo IO da CPU para processamento. isso continua até que o buffer seja limpo e, em seguida, a CPU fornece instruções para gravar os dados no disco. Nesse ponto, temos outra varredura / busca para encontrar o espaço de endereço de destino e começar uma gravação seqüencial.
Assim, em geral, o tempo de IO sequencial de LEITURA / GRAVAÇÃO reduzirá o tempo de Acesso Aleatório para mudar de local. Quanto maior a "peça" lida, menos tempo da operação total é usada para reposicionar as cabeças.
O tempo de verificação e busca é um desempenho significativo, mas apenas com um grande número de arquivos menores, em que o disco precisa ser reposicionado com frequência para concluir a tarefa, em comparação com a quantidade de tempo que realmente transfere dados para a CPU . Além disso, para cada arquivo, os metadados NTFS devem ser lidos e talvez gravados, portanto, o disco deve reposicionar em pelo menos dois locais distintos para cada um.
Além disso, o Windows é um sistema multiprocesso, portanto, é provável que mais de uma parte peça ao disco para ler ou gravar em locais diferentes. Não há probabilidade de que o seu processo tenha acesso exclusivo aos recursos que impediriam a ocorrência de várias operações de E / S e fazer com que você reposicione toda vez que o processo adormecer, pulsar ou se tornar ativo. Se você alterasse a maneira como as janelas se comportavam, outros processos além da única cópia também usariam a unidade de cache o tempo todo, então o processo seria reposicioná-la com a mesma frequência que a unidade de origem durante a operação.
No final, a única maneira de sua abordagem funcionar, é se estiver acontecendo em segundo plano, prevendo que você deseja armazenar um arquivo em cache antecipadamente. caso contrário, você está apenas adicionando complicação e não obtendo nenhum benefício real.
Editar: Quanto ao que irá ajudá-lo, considere adquirir um pequeno SSD (32GB talvez) e usá-lo para armazenamento em cache do IO . O Windows irá preenchê-lo automaticamente, pois tem tempo e oportunidade, e quanto mais arquivos você armazenar em cache, menos tempo você gasta lendo do disco (embora mais cache signifique mais gerenciamento de cache necessário).
Mantenha seus discos mecânicos (não SSDs) bem desfragmentados e certifique-se de não estar preenchendo seus discos muito. O IO demora mais e os arquivos se fragmentam mais quando a unidade é preenchida.
ou o melhor de tudo, se você não precisar de grande capacidade, obter um SSD e resolver o problema!