Existem muitas razões pelas quais um programa pode querer chegar a um deslocamento específico. Entre as razões pelas quais serviços como o Shadow Copy podem precisar fazer isso, e é impossível dizer por quê, a menos que vejamos o que eles estão realmente lendo. Um exemplo é usar cópia de sombra para espelhar um volume, então você faria um fluxo de dados (se observado seria um fluxo de dados hexadecimais), seqüenciais e você veria em ambas as unidades o seguinte processo:
1) Leitura do Offset 0, 4096 Bytes (Leia um bloco).
2) Escreva em outro local no Offset 0, 4096 Bytes (Escreva um bloco)
3) Leia do deslocamento 4096, 4096 Bytes ... E assim por diante, e em ... essencialmente pelo tempo Offset = Disk Size, você terá espelhado o volume.
Dito isso, isso pode ser um problema com o aplicativo observador verificando o que está sendo lido, na realidade, há camadas de abstração interagindo ali mesmo.
O programa solicita um arquivo- > verifica onde está localizado- > solicita ao sistema operacional para buscar o arquivo - > o SO solicita que o driver vá até lá e obtenha os bytes solicitados e, em seguida, o aplicativo recebe um ponteiro para os dados a serem usados.
Obviamente, simplifiquei o processo o máximo possível. Mas, essencialmente, toda vez que algo é feito em uma máquina, ele passou por muitas camadas de abstração e os dados que um aplicativo solicitou podem estar ou não nesses deslocamentos. Nós vimos isso enquanto trabalhamos com o fusível e interceptamos as chamadas de Read - Write em um volume. Eles não são seqüenciais, mas para explicar mais eu teria que ficar muito técnico, o que eu acho que não é o que você está perguntando.
Espero que esta resposta ajude, mesmo que tenha passado um ano desde que você perguntou.