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_EXISTS0x00000001 |
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 |
COPY_FILE_RESTARTABLE0x00000002 |
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_WRITE0x00000004 |
Il file viene copiato e il file di origine viene aperto per l'accesso in scrittura. |
COPY_FILE_ALLOW_DECRYPTED_DESTINATION0x00000008 |
La copia verrà tentata anche se il file di destinazione non può essere crittografato. |
COPY_FILE_COPY_SYMLINK0x00000800 |
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_BUFFERING0x00001000 |
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_PRIVILEGES0x00002000 |
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_PAUSE0x00004000 |
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_OFFLOAD0x00040000 |
Non tentare di usare il meccanismo di offload copia di Windows. Questo non è in genere consigliato. |
COPY_FILE_IGNORE_EDP_BLOCK0x00400000 |
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_ENCRYPTION0x00800000 |
Ignorare lo stato crittografato del file di origine. supportato in Windows 10 e versioni successive. |
COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC0x02000000 |
Non richiedere WRITE_DAC per l'accesso al file di destinazione. supportato in Windows 10 e versioni successive. |
COPY_FILE_OPEN_AND_COPY_REPARSE_POINT0x00200000 |
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_DIRECTORY0x00000080 |
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_STREAMS0x00008000 |
Non copiare flussi di dati alternativi. Supportato in Windows 10, build 19041 e versioni successive. |
COPY_FILE_DISABLE_PRE_ALLOCATION0x04000000 |
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_MODE0x08000000 |
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_TRAFFIC0x10000000 |
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_COPY0x20000000 |
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_JUNCTIONS0x00000001 |
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) |