structure COPYFILE2_EXTENDED_PARAMETERS_V2 (winbase.h)

Contient des fonctionnalités supplémentaires mises à jour au-delà de la structure COPYFILE2_EXTENDED_PARAMETERS pour la fonction CopyFile2 .

Syntaxe

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;

Membres

dwSize

Contient la taille de cette structure, sizeof(COPYFILE2_EXTENDED_PARAMETERS_V2).

dwCopyFlags

Contient une combinaison de zéro ou plus de ces valeurs d’indicateur.

Valeur Signification
COPY_FILE_FAIL_IF_EXISTS
0x00000001
Si le fichier de destination existe, l’opération de copie échoue immédiatement. S’il existe un fichier ou un répertoire portant le nom de destination, l’appel de fonction CopyFile2 échoue avec HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS) ou HRESULT_FROM_WIN32(ERROR_FILE_EXISTS). Si COPY_FILE_RESUME_FROM_PAUSE est également spécifié, un échec est déclenché uniquement si le fichier de destination n’a pas d’en-tête de redémarrage valide.
COPY_FILE_RESTARTABLE
0x00000002
Le fichier est copié d’une manière qui peut être redémarrée si les mêmes noms de fichiers source et de destination sont réutilisés. C’est plus lent.
COPY_FILE_OPEN_SOURCE_FOR_WRITE
0x00000004
Le fichier est copié et le fichier source est ouvert pour l’accès en écriture.
COPY_FILE_ALLOW_DECRYPTED_DESTINATION
0x00000008
La copie sera tentée même si le fichier de destination ne peut pas être chiffré.
COPY_FILE_COPY_SYMLINK
0x00000800
Si le fichier source est un lien symbolique, le fichier de destination est également un lien symbolique pointant vers le même fichier que le lien symbolique source.
COPY_FILE_NO_BUFFERING
0x00001000
La copie est effectuée à l’aide d’E/S sans débogage, en contournant les ressources du cache système. Cet indicateur est recommandé pour les copies de fichiers très volumineuses. Il n’est pas recommandé de suspendre les copies qui utilisent cet indicateur.
COPY_FILE_REQUEST_SECURITY_PRIVILEGES
0x00002000
La copie est tentée, en spécifiant ACCESS_SYSTEM_SECURITY pour le fichier source et ACCESS_SYSTEM_SECURITY \| WRITE_DAC \| WRITE_OWNER pour le fichier de destination. Si ces demandes sont refusées, la demande d’accès est réduite au niveau de privilège le plus élevé pour lequel l’accès est accordé. Pour plus d’informations, consultez Droit d’accès SACL. Cela peut être utilisé pour permettre au rappel CopyFile2ProgressRoutine d’effectuer des opérations nécessitant des privilèges plus élevés, telles que la copie des attributs de sécurité pour le fichier.
COPY_FILE_RESUME_FROM_PAUSE
0x00004000
Le fichier de destination est examiné pour voir s’il a été copié à l’aide de COPY_FILE_RESTARTABLE. Si tel est le cas, la copie est reprise. Si ce n’est pas le cas, le fichier sera entièrement copié.
COPY_FILE_NO_OFFLOAD
0x00040000
N’essayez pas d’utiliser le mécanisme de déchargement de copie Windows. Ceci n’est généralement pas recommandé.
COPY_FILE_IGNORE_EDP_BLOCK
0x00400000
Au lieu de bloquer, le fichier doit être copié et chiffré sur la destination si pris en charge par le système de fichiers de destination. Pris en charge sur Windows 10 et versions ultérieures.
COPY_FILE_IGNORE_SOURCE_ENCRYPTION
0x00800000
Ignorez l’état chiffré du fichier source. Pris en charge sur Windows 10 et versions ultérieures.
COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC
0x02000000
Ne demandez pas WRITE_DAC pour l’accès au fichier de destination. Pris en charge sur Windows 10 et versions ultérieures.
COPY_FILE_OPEN_AND_COPY_REPARSE_POINT
0x00200000
Copiez toujours le point d’analyse, quel que soit le type. Il incombe à l’appelant de comprendre la signification du point d’analyse. Pris en charge sur Windows 10, build 19041 et versions ultérieures.
COPY_FILE_DIRECTORY
0x00000080
Indique que le fichier source est un fichier de répertoire. Lorsqu’il est fourni, le fichier source est ouvert avec FILE_OPEN_FOR_BACKUP_INTENT. Le fichier de répertoire aura ses autres flux de données, ses informations de point d’analyse et ses EAs copiés comme un fichier normal. Pris en charge dans Windows 10, build 19041 et versions ultérieures.
COPY_FILE_SKIP_ALTERNATE_STREAMS
0x00008000
Ne copiez pas d’autres flux de données. Pris en charge dans Windows 10, build 19041 et versions ultérieures.
COPY_FILE_DISABLE_PRE_ALLOCATION
0x04000000
Ne préallouez pas la taille du fichier de destination avant d’effectuer la copie. Pris en charge dans Windows 10, build 19041 et versions ultérieures.
COPY_FILE_ENABLE_LOW_FREE_SPACE_MODE
0x08000000
Activez le mode LowFreeSpace. Aucune E/S qui se chevauche n’est utilisée. Le déchargement ODX et SMB n’est pas tenté. Pris en charge dans Windows 10, build 19041 et versions ultérieures.
COPY_FILE_REQUEST_COMPRESSED_TRAFFIC
0x10000000
Demandez au canal de transfert sous-jacent de compresser les données pendant l’opération de copie. La demande peut ne pas être prise en charge pour tous les supports, auquel cas elle est ignorée. Les attributs et paramètres de compression (complexité du calcul, utilisation de la mémoire) ne sont pas configurables via cette API et peuvent être modifiés entre différentes versions de système d’exploitation.

Cet indicateur a été introduit dans Windows 10, version 1903 et Windows Server 2022. Sur Windows 10, l’indicateur est pris en charge pour les fichiers résidant sur des partages SMB, où la version négociée du protocole SMB est SMB v3.1.1 ou ultérieure.
COPY_FILE_ENABLE_SPARSE_COPY
0x20000000
Activez la conservation de l’état éparse du fichier pendant la copie. Pris en charge dans Windows 11, build 22H2 et versions ultérieures.

pfCancel

Si cet indicateur a la valeur TRUE pendant l’opération de copie, l’opération de copie est annulée.

pProgressRoutine

Adresse facultative d’une fonction de rappel de type PCOPYFILE2_PROGRESS_ROUTINE appelée chaque fois qu’une autre partie du fichier a été copiée. Ce paramètre peut être NULL. Pour plus d’informations sur la fonction de rappel de progression, consultez la fonction de rappel CopyFile2ProgressRoutine . Si pProgressRoutineOld et pProgressRoutine sont fournis, pProgressRoutineOld est prioritaire.

pvCallbackContext

Pointeur vers les informations de contexte spécifiques à l’application à passer à CopyFile2ProgressRoutine.

dwCopyFlagsV2

Contient une combinaison de zéro ou plus de ces valeurs d’indicateur.

Valeur Signification
COPY_FILE2_V2_DONT_COPY_JUNCTIONS
0x00000001
Désactivez la copie des jonctions.

ioDesiredSize

facultatif. Taille demandée (en octets) pour chaque opération d’E/S (c’est-à-dire un cycle de lecture/écriture lors de la copie du fichier). Cela peut être réduit si la mémoire est insuffisante. Si zéro, la taille par défaut est utilisée. Cela peut être ignoré si ioDesiredRate est également fourni

ioDesiredRate

facultatif. Taux moyen d’E/S demandé, en kilo-octets par seconde. Si zéro, les copies sont effectuées aussi rapidement que possible.

pProgressRoutineOld

SourceOplockKeys

reserved[6]

reserved[7]

reserved[8]

pProgressRoutineOld. facultatif. Adresse d’une ancienne fonction de rappel de type LPPROGRESS_ROUTINE appelée chaque fois qu’une autre partie du fichier a été copiée. Ce paramètre peut être NULL. Pour plus d’informations, sur la fonction de rappel de progression, consultez LPPROGRESS_ROUTINE rappel. Si pProgressRoutineOld et pProgressRoutine sont fournis, pProgressRoutineOld est prioritaire.

Remarques

Pour compiler une application qui utilise cette structure, définissez la macro _WIN32_WINNT comme _WIN32_WINNT_WIN8 ou version ultérieure. Pour plus d’informations, consultez Utilisation des en-têtes Windows.

Configuration requise

   
Client minimal pris en charge Windows 11 [applications de bureau Applications UWP]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau Applications UWP]
En-tête winbase.h (inclure Windows.h)

Voir aussi

CopyFile2

COPYFILE2_EXTENDED_PARAMETERS

CopyFile2ProgressRoutine

Structures de gestion des fichiers

LPPROGRESS_ROUTINE

Utilisation des en-têtes Windows