структура COPY_INFORMATION (ntifs.h)

Структура COPY_INFORMATION сопоставляет вызовы чтения и записи с операцией копирования из NtCopyFileChunk.

Синтаксис

typedef struct _COPY_INFORMATION {
  PFILE_OBJECT SourceFileObject;
  LONGLONG     SourceFileOffset;
} COPY_INFORMATION, *PCOPY_INFORMATION;

Члены

SourceFileObject

Объект исходного файла копии.

SourceFileOffset

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

Комментарии

Операции чтения и записи копии содержат одинаковые сведения в соответствующих расширениях IRP, поэтому корреляцию можно выполнить с помощью COPY_INFORMATION для всех операций записи с расширением IopCopyInformationType IRP.

Если операции чтения и записи коррелируются и копируемые данные проверяются, то записанный целевой файл можно считать полной и достоверной копией источника. Это означает, что доверие можно передать из исходного файла в назначение.

Обычно копии выполняются блоками. Чтобы проверить всю копию файла, выполните следующие действия:

  • Каждый блок (каждый вызов NtCopyFileChunk) должен иметь свою операцию записи, коррелированную с предыдущей операцией чтения.

  • Все фрагменты, скопированные вместе, должны охватывать весь диапазон файла.

Фильтр может проверить правильность скопированных данных с помощью исходных сведений, предоставленных в расширении IRP записи, следующим образом:

  • Убедитесь, что в SourceFileObject произошло соответствующее чтение.
  • Убедитесь, что SourceFileOffset соответствует смещению файла операции записи.

Дополнительные сведения см. в разделе Копирование файлов в режиме ядра и обнаружение сценариев копирования файлов .

Требования

Требование Значение
Минимальная версия клиента Windows 11 версии 22H2
Верхняя часть ntifs.h

См. также раздел

FltGetCopyInformationFromCallbackData

IoCheckFileObjectOpenedAsCopySource

IoCheckFileObjectOpenedAsCopyDestination

NtCopyFileChunk

NtCreateFile