Почему процесс считывает смещение / длину с диска C:?

204
Tyler Durden

Ниже представлен клип SysInternals Filemon в действии.

Я не понимаю, почему различные процессы читают диск C: со смещением, а не читают определенные файлы.

processes reading offsets

Я заметил, что Windows Explorer делает то же самое, хотя у меня не открыт файловый менеджер.

0

1 ответ на вопрос

0
ddemuro

Есть много причин, по которым программа может захотеть достичь определенного смещения. Среди причин, по которым сервисам, таким как Shadow Copy, может потребоваться это, невозможно сказать почему, если мы не увидим, что они на самом деле читают. Примером является использование теневого копирования для зеркального отображения тома, затем вы выполняете поток данных (если бы наблюдался поток шестнадцатеричных данных), последовательный, и вы увидите на обоих дисках следующий процесс:

1) Чтение со смещения 0, 4096 байт (чтение одного блока).

2) Запись в другое место со смещением 0, 4096 байт (запись одного блока)

3) Считать со смещения 4096, 4096 байт ... И так далее, и далее ... по существу к моменту Offset = Disk Size, вы будете зеркально отражать том.

Тем не менее, это может быть проблемой с приложением-наблюдателем, проверяющим то, что читается, на самом деле есть уровни абстракции, взаимодействующие прямо там.

Программа запрашивает файл -> проверяет, где он находится -> запрашивает у ОС запросить файл -> ОС запрашивает драйвер, чтобы пойти туда и получить запрошенные байты, а затем приложение получает указатель на эти данные, которые будут использоваться.

Очевидно, я максимально упростил этот процесс. Но, по сути, каждый раз, когда что-то делается на машине, оно проходит через множество уровней абстракции, и данные, запрошенные приложением, могут быть или не быть в этих смещениях. Мы видели это во время работы с предохранителем и перехвата вызовов чтения - записи на томе. Они не последовательны, но чтобы объяснить дальше, я должен был бы стать слишком техническим, что я думаю, это не то, что вы просите.

Надеюсь, этот ответ поможет, хотя с тех пор, как вы спросили, прошел год.