Condividi tramite


struttura COPYFILE2_EXTENDED_PARAMETERS_V2 (winbase.h)

Contiene funzionalità aggiuntive aggiornate oltre la struttura di COPYFILE2_EXTENDED_PARAMETERS per la funzione CopyFile2.

Sintassi

typedef struct COPYFILE2_EXTENDED_PARAMETERS_V2 {
  DWORD                         dwSize;
  DWORD                         dwCopyFlags;
  BOOL                          *pfCancel;
  PCOPYFILE2_PROGRESS_ROUTINE   pProgressRoutine;
  PVOID                         pvCallbackContext;
  DWORD                         dwCopyFlagsV2;
  ULONG                         ioDesiredSize;
  ULONG                         ioDesiredRate;
  LPPROGRESS_ROUTINE            pProgressRoutineOld;
  PCOPYFILE2_CREATE_OPLOCK_KEYS SourceOplockKeys;
#if ...
  PVOID                         reserved[6];
#elif
  PVOID                         reserved[7];
#else
  PVOID                         reserved[8];
#endif
} COPYFILE2_EXTENDED_PARAMETERS_V2;

Membri

dwSize

Contiene le dimensioni di questa struttura, sizeof(COPYFILE2_EXTENDED_PARAMETERS_V2).

dwCopyFlags

Contiene una combinazione di zero o più di questi valori di flag.

Valore Significato
COPY_FILE_FAIL_IF_EXISTS
0x00000001
Se il file di destinazione esiste, l'operazione di copia non riesce immediatamente. Se esiste un file o una directory con il nome di destinazione, la chiamata di funzione CopyFile2 avrà esito negativo con o . Se viene specificato anche COPY_FILE_RESUME_FROM_PAUSE, viene attivato un errore solo se il file di destinazione non dispone di un'intestazione di riavvio valida.
COPY_FILE_RESTARTABLE
0x00000002
Il file viene copiato in modo che possa essere riavviato se vengono usati di nuovo gli stessi nomi file di origine e di destinazione. Questo è più lento.
COPY_FILE_OPEN_SOURCE_FOR_WRITE
0x00000004
Il file viene copiato e il file di origine viene aperto per l'accesso in scrittura.
COPY_FILE_ALLOW_DECRYPTED_DESTINATION
0x00000008
La copia verrà tentata anche se il file di destinazione non può essere crittografato.
COPY_FILE_COPY_SYMLINK
0x00000800
Se il file di origine è un collegamento simbolico, il file di destinazione è anche un collegamento simbolico che punta allo stesso file del collegamento simbolico di origine.
COPY_FILE_NO_BUFFERING
0x00001000
La copia viene eseguita usando operazioni di I/O non memorizzate nel buffer, ignorando le risorse della cache di sistema. Questo flag è consigliato per le copie di file molto grandi. Non è consigliabile sospendere le copie che usano questo flag.
COPY_FILE_REQUEST_SECURITY_PRIVILEGES
0x00002000
Viene tentata la copia, specificando ACCESS_SYSTEM_SECURITY per il file di origine e ACCESS_SYSTEM_SECURITY \| WRITE_DAC \| WRITE_OWNER per il file di destinazione. Se queste richieste vengono negate, la richiesta di accesso verrà ridotta al livello di privilegi più elevato per il quale viene concesso l'accesso. Per altre informazioni, vedere SACL Access Right. Questa operazione può essere usata per consentire all'CopyFile2ProgressRoutine di di eseguire operazioni che richiedono privilegi più elevati, ad esempio la copia degli attributi di sicurezza per il file.
COPY_FILE_RESUME_FROM_PAUSE
0x00004000
Il file di destinazione viene esaminato per verificare se è stato copiato usando COPY_FILE_RESTARTABLE. In caso affermativo, la copia viene ripresa. Se non il file verrà copiato completamente.
COPY_FILE_NO_OFFLOAD
0x00040000
Non tentare di usare il meccanismo di offload copia di Windows. Questo non è in genere consigliato.
COPY_FILE_IGNORE_EDP_BLOCK
0x00400000
Invece di bloccare, il file deve essere copiato e crittografato nella destinazione, se supportato dal file system di destinazione. supportato in Windows 10 e versioni successive.
COPY_FILE_IGNORE_SOURCE_ENCRYPTION
0x00800000
Ignorare lo stato crittografato del file di origine. supportato in Windows 10 e versioni successive.
COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC
0x02000000
Non richiedere WRITE_DAC per l'accesso al file di destinazione. supportato in Windows 10 e versioni successive.
COPY_FILE_OPEN_AND_COPY_REPARSE_POINT
0x00200000
Copiare sempre il punto reparse indipendentemente dal tipo. È responsabilità del chiamante comprendere il significato del punto di reparse. Supportato in Windows 10, build 19041 e versioni successive.
COPY_FILE_DIRECTORY
0x00000080
Indica che il file di origine è un file di directory. Se specificato, il file di origine viene aperto con FILE_OPEN_FOR_BACKUP_INTENT. Il file di directory avrà flussi di dati alternativi, informazioni sul punto di riferimento e EA copiati come un file normale. Supportato in Windows 10, build 19041 e versioni successive.
COPY_FILE_SKIP_ALTERNATE_STREAMS
0x00008000
Non copiare flussi di dati alternativi. Supportato in Windows 10, build 19041 e versioni successive.
COPY_FILE_DISABLE_PRE_ALLOCATION
0x04000000
Non preallocare le dimensioni del file di destinazione prima di eseguire la copia. Supportato in Windows 10, build 19041 e versioni successive.
COPY_FILE_ENABLE_LOW_FREE_SPACE_MODE
0x08000000
Abilitare la modalità LowFreeSpace. Non vengono usate operazioni di I/O sovrapposte. L'offload ODX e SMB non viene tentato. Supportato in Windows 10, build 19041 e versioni successive.
COPY_FILE_REQUEST_COMPRESSED_TRAFFIC
0x10000000
Richiedere il canale di trasferimento sottostante comprimere i dati durante l'operazione di copia. La richiesta potrebbe non essere supportata per tutti i supporti, nel qual caso viene ignorata. Gli attributi e i parametri di compressione (complessità computazionale, utilizzo della memoria) non sono configurabili tramite questa API e sono soggetti a modifiche tra versioni diverse del sistema operativo.

Questo flag è stato introdotto in Windows 10, versione 1903 e Windows Server 2022. In Windows 10 il flag è supportato per i file che risiedono in condivisioni SMB, in cui la versione del protocollo SMB negoziata è SMB v3.1.1 o versione successiva.
COPY_FILE_ENABLE_SPARSE_COPY
0x20000000
Abilitare la conservazione dello stato sparse del file durante la copia. supportato in Windows 11, build 22H2 e versioni successive.

pfCancel

Se questo flag è impostato su TRUE durante l'operazione di copia, l'operazione di copia viene annullata.

pProgressRoutine

Indirizzo facoltativo di una funzione di callback di tipo PCOPYFILE2_PROGRESS_ROUTINE che viene chiamato ogni volta che è stata copiata un'altra parte del file. Questo parametro può essere NULL. Per altre informazioni sulla funzione di callback di stato, vedere la CopyFile2ProgressRoutine funzione di callback. Se vengono forniti sia pProgressRoutineOld che pProgressRoutine, pProgressRoutineOld ha la precedenza.

pvCallbackContext

Puntatore alle informazioni sul contesto specifiche dell'applicazione da passare all'CopyFile2ProgressRoutine.

dwCopyFlagsV2

Contiene una combinazione di zero o più di questi valori di flag.

Valore Significato
COPY_FILE2_V2_DONT_COPY_JUNCTIONS
0x00000001
Disabilitare la copia delle giunzioni.

ioDesiredSize

Opzionale. Dimensioni richieste (in byte) per ogni operazione di I/O (ovvero un ciclo di lettura/scrittura durante la copia del file). Questa operazione può essere ridotta se è disponibile memoria insufficiente. Se zero, viene utilizzata la dimensione predefinita. Questo può essere ignorato se viene fornito anche ioDesiredRate

ioDesiredRate

Opzionale. Velocità di I/O media richiesta, espressa in kilobyte al secondo. Se zero, le copie vengono eseguite il più velocemente possibile.

pProgressRoutineOld

SourceOplockKeys

reserved[6]

reserved[7]

reserved[8]

pProgressRoutineOld. Opzionale. Indirizzo di una funzione di callback di tipo precedente di tipo LPPROGRESS_ROUTINE chiamata ogni volta che è stata copiata un'altra parte del file. Questo parametro può essere NULL. Per altre informazioni, sulla funzione di callback di stato, vedere LPPROGRESS_ROUTINE callback. Se vengono forniti sia pProgressRoutineOld che pProgressRoutine, pProgressRoutineOld ha la precedenza.

Osservazioni

Per compilare un'applicazione che usa questa struttura, definire la macro _WIN32_WINNT come _WIN32_WINNT_WIN8 o versione successiva. Per altre informazioni, vedere Uso delle intestazioni di Windows.

Fabbisogno

Requisito Valore
client minimo supportato Windows 11 [app desktop | App UWP]
server minimo supportato Windows Server 2012 [app desktop | App UWP]
intestazione winbase.h (include Windows.h)

Vedere anche

CopyFile2

COPYFILE2_EXTENDED_PARAMETERS

copyFile2ProgressRoutine

strutture di gestione file

LPPROGRESS_ROUTINE

uso delle intestazioni di Windows