Compartilhar via


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.

Observações

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 IopCopyInformationType IRP.

Se as operações de leitura e gravação estiverem correlacionadas e os dados copiados forem verificados, o arquivo de destino escrito 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 ocorrem 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 correçã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.

Consulte cópia de arquivo no modo Kernel e detectando cenários de arquivo de cópia para obter mais informações.

Requisitos

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

Consulte também

FltGetCopyInformationFromCallbackData

IoCheckFileObjectOpenedAsCopySource

IoCheckFileObjectOpenedAsCopyDestination

NtCopyFileChunk

NtCreateFile