MOVE_FILE_DATA structure (winioctl.h)

Contient des données d’entrée pour le code de contrôle FSCTL_MOVE_FILE.

Syntaxe

typedef struct {
  HANDLE        FileHandle;
  LARGE_INTEGER StartingVcn;
  LARGE_INTEGER StartingLcn;
  DWORD         ClusterCount;
} MOVE_FILE_DATA, *PMOVE_FILE_DATA;

Membres

FileHandle

Handle vers le fichier à déplacer.

Pour récupérer un handle dans un fichier, utilisez CreateFile.

Si le fichier est chiffré, le handle doit avoir le droit d’accès FILE_READ_DATA, FILE_WRITE_DATA, FILE_APPEND_DATA ou FILE_EXECUTE . Pour plus d’informations, consultez Sécurité des fichiers et droits d’accès.

StartingVcn

Un VCN (numéro de cluster relatif au début d’un fichier) du premier cluster à déplacer.

StartingLcn

LCN (numéro de cluster sur un volume) vers lequel le VCN doit être déplacé.

ClusterCount

Nombre de clusters à déplacer.

Remarques

Pour récupérer les données à remplir dans cette structure, utilisez la fonction DeviceIoControl avec le code de contrôle FSCTL_GET_RETRIEVAL_POINTERS .

Impossible de déplacer le premier cluster d’un répertoire sur un volume de système de fichiers FAT.

Dans la mesure du possible, déplacez les données dans des blocs alignés les uns par rapport aux autres par incréments de 16 kilo-octets (Ko). Cela réduit la surcharge de copie sur écriture lorsque les clichés instantanés sont activés, car l’espace de cliché instantané est augmenté et les performances sont réduites lorsque les conditions suivantes se produisent :

  • La taille du bloc de demande de déplacement est inférieure ou égale à 16 Ko.
  • Le delta de déplacement n’est pas par incréments de 16 Ko.
Le delta de déplacement est le nombre d’octets entre le début du bloc source et le début du bloc cible. En d’autres termes, un bloc commençant au décalage X (sur disque) peut être déplacé vers un décalage de départ Y si la valeur absolue de X moins Y est un multiple pair de 16 Ko. Ainsi, en supposant des clusters de 4 Ko, un passage du cluster 3 au cluster 27 sera optimisé, mais pas un passage du cluster 18 au cluster 24. Notez que mod(3,4) = 3 = mod(27,4). Mod 4 est choisi, car quatre clusters de 4 Ko chacun équivalent au total à 16 Ko. Par conséquent, un volume mis en forme à une taille de cluster de 16 Ko entraîne l’optimisation de tous les fichiers de déplacement.

Pour plus d’informations sur les clichés instantanés, consultez Service de cliché instantané des volumes (VSS).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
En-tête winioctl.h (inclure Windows.h)

Voir aussi

Défragmentation des fichiers

FSCTL_GET_RETRIEVAL_POINTERS

FSCTL_MOVE_FILE

GetFileAttributes

GetFileAttributesEx

GetFileInformationByHandle