Share via


struttura COPY_INFORMATION (ntifs.h)

La struttura COPY_INFORMATION correla le chiamate di lettura e scrittura a un'operazione di copia da NtCopyFileChunk.

Sintassi

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

Members

SourceFileObject

Oggetto file di origine della copia.

SourceFileOffset

Offset del file di origine della copia. Questo valore può essere confrontato con l'offset del file di destinazione durante la scrittura per garantire che la copia sia completa e fedele.

Commenti

Le operazioni di lettura e scrittura di una copia contengono le stesse informazioni nelle rispettive estensioni IRP, quindi la correlazione può essere eseguita usando COPY_INFORMATION per tutte le scritture con estensione IopCopyInformationType IRP.

Se le operazioni di lettura e scrittura sono correlate e i dati copiati vengono verificati, il file di destinazione scritto può essere considerato una copia completa e fedele dell'origine. Ciò significa che l'attendibilità può essere passata dal file di origine alla destinazione.

Le copie vengono in genere eseguite in blocchi. Per convalidare l'intera copia file:

  • Ogni blocco (ogni chiamata a NtCopyFileChunk) deve avere la relativa operazione di scrittura correlata a un'operazione di lettura precedente.

  • Tutti i blocchi copiati insieme devono coprire l'intero intervallo del file.

Un filtro può verificare la correttezza dei dati copiati con le informazioni di origine fornite nell'estensione IRP della scrittura come indicato di seguito:

  • Verificare che si sia verificata una lettura corrispondente in SourceFileObject.
  • Verificare che SourceFileOffset corrisponda all'offset del file dell'operazione di scrittura.

Per altre informazioni, vedere Copiare e rilevare scenari di file in modalità kernel .

Requisiti

Requisito Valore
Client minimo supportato Windows 11 versione 22H2
Intestazione ntifs.h

Vedi anche

FltGetCopyInformationFromCallbackData

IoCheckFileObjectOpenedAsCopySource

IoCheckFileObjectOpenedAsCopyDestination

NtCopyFileChunk

NtCreateFile