estrutura COPY_INFORMATION (ntifs.h)

A estrutura COPY_INFORMATION correlaciona chamadas de leitura e gravação a uma operação de cópia de NtCopyFileChunk.

Sintaxe

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

Membros

SourceFileObject

O objeto de arquivo de origem da cópia.

SourceFileOffset

O deslocamento de arquivo do arquivo de origem da cópia. Esse valor pode ser comparado ao deslocamento de arquivo do destino durante a gravação para garantir que a cópia seja completa e fiel.

Comentários

As operações de leitura e gravação de uma cópia contêm as mesmas informações em suas respectivas extensões IRP, portanto, a correlação pode ser feita usando COPY_INFORMATION para todas as gravações que têm a extensão IRP IopCopyInformationType .

Se as operações de leitura e gravação estiverem correlacionadas e os dados copiados forem verificados, o arquivo de destino gravado poderá ser considerado uma cópia completa e fiel da origem. Isso significa que a confiança pode ser passada do arquivo de origem para o destino.

As cópias geralmente acontecem em partes. Para validar a cópia inteira do arquivo:

  • Cada parte (cada chamada para NtCopyFileChunk) deve ter sua operação de gravação correlacionada a uma operação de leitura anterior.

  • Todas as partes copiadas juntas devem abranger todo o intervalo do arquivo.

Um filtro pode verificar a exatidão dos dados copiados com as informações de origem fornecidas na extensão IRP da gravação da seguinte maneira:

  • Verifique se ocorreu uma leitura correspondente em SourceFileObject.
  • Verifique se SourceFileOffset corresponde ao deslocamento de arquivo da operação de gravação.

Confira Copiar arquivo no modo kernel e detectar cenários de arquivo de cópia para obter mais informações.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 11, versão 22H2
Cabeçalho ntifs.h

Confira também

FltGetCopyInformationFromCallbackData

IoCheckFileObjectOpenedAsCopySource

IoCheckFileObjectOpenedAsCopyDestination

NtCopyFileChunk

NtCreateFile