État de compression
Chaque fichier et répertoire d’un volume qui prend en charge la compression pour les fichiers et répertoires individuels a un état de compression.
Alors que l’attribut de compression d’un fichier ou d’un répertoire indique simplement si le fichier ou le répertoire est compressé ou non compressé, l’état de compression spécifie également le format des données compressées.
Utilisez le code de contrôle FSCTL_GET_COMPRESSION pour déterminer l’état de compression d’un fichier ou d’un répertoire.
L’état de compression est encodé en tant que valeur 16 bits. Une valeur d’état de compression de COMPRESSION_FORMAT_NONE indique qu’un fichier n’est pas compressé. Une valeur de COMPRESSION_FORMAT_DEFAULT indique qu’un fichier est compressé à l’aide du format de compression par défaut. Toute autre valeur indique qu’un fichier est compressé, à l’aide du format de compression spécifié par la valeur d’état de compression.
Utilisez le code de contrôle FSCTL_SET_COMPRESSION pour définir l’état de compression d’un fichier ou d’un répertoire. Cette opération définit également l’attribut de compression du fichier ou du répertoire.
La définition de l’état de compression d’un fichier sur une valeur différente de zéro compresse le fichier à l’aide du format de compression encodé par la valeur d’état de compression. La définition de l’état de compression d’un fichier sur zéro décompresse le fichier. Il s’agit d’opérations synchrones. Le fichier est compressé ou décompressé immédiatement lorsque vous définissez son état de compression.
La définition de l’état de compression d’un répertoire n’entraîne aucune compression ou décompression immédiate. Au lieu de cela, la définition de l’état de compression d’un répertoire définit un état de compression par défaut qui sera attribué à tous les fichiers et sous-répertoires nouvellement créés.