COPYFILE2_EXTENDED_PARAMETERS structure (winbase.h)

Contient des paramètres étendus pour la fonction CopyFile2.

Syntaxe

typedef struct COPYFILE2_EXTENDED_PARAMETERS {
  DWORD                       dwSize;
  DWORD                       dwCopyFlags;
  BOOL                        *pfCancel;
  PCOPYFILE2_PROGRESS_ROUTINE pProgressRoutine;
  PVOID                       pvCallbackContext;
} COPYFILE2_EXTENDED_PARAMETERS;

Membres

dwSize

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

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 utilisés à nouveau. 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 est 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 non chiffrées, 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 reprend. 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. Cela 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 s’il est 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 EA 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éallouer 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 superposée 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é de calcul, utilisation de la mémoire) ne sont pas configurables via cette API et peuvent être modifiés entre différentes versions du système d’exploitation. Pris en charge dans Windows Server 2022 et Windows 10, build 1903 et versions ultérieures. (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 version ultérieure.)
COPY_FILE_ENABLE_SPARSE_COPY
0x20000000
Activez la conservation de l’état partiellement alloué du fichier lors de la copie. Pris en charge dans Windows 11, build 22H2 et versions ultérieures.

pfCancel

Si cet indicateur est défini sur 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 .

pvCallbackContext

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

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

Condition requise Valeur
Client minimal pris en charge Windows 8 [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

CopyFile2ProgressRoutine

Structures de gestion des fichiers

COPYFILE2_EXTENDED_PARAMETERS_V2