GetCompressedFileSizeTransactedW, fonction (winbase.h)

[Microsoft recommande vivement aux développeurs d’utiliser d’autres moyens pour répondre aux besoins de votre application. De nombreux scénarios utilisant TxF peuvent être réalisés à l’aide de techniques plus simples et plus facilement disponibles. En outre, TxF peut ne pas être disponible dans les versions à venir de Microsoft Windows. Pour plus d’informations et les alternatives à TxF, consultez Alternatives à l’utilisation de Transactionnel NTFS.]

Récupère le nombre réel d’octets de stockage sur disque utilisés pour enregistrer un fichier spécifié en tant qu’opération transactionnelle. Si le fichier se trouve sur un volume qui prend en charge la compression et que le fichier est compressé, la valeur obtenue est la taille compressée du fichier spécifié. Si le fichier se trouve sur un volume qui prend en charge les fichiers partiellement alloués et s’il s’agit d’un fichier partiellement alloué, la valeur obtenue est la taille éparse du fichier spécifié.

Syntaxe

DWORD GetCompressedFileSizeTransactedW(
  [in]            LPCWSTR lpFileName,
  [out, optional] LPDWORD lpFileSizeHigh,
  [in]            HANDLE  hTransaction
);

Paramètres

[in] lpFileName

Nom du fichier.

Ne spécifiez pas le nom d’un fichier sur un appareil non actif, tel qu’un canal ou un périphérique de communication, car sa taille de fichier n’a aucune signification.

Le fichier doit résider sur l’ordinateur local ; sinon, la fonction échoue et le dernier code d’erreur est défini sur ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.

[out, optional] lpFileSizeHigh

Pointeur vers une variable qui reçoit le DWORD d’ordre élevé de la taille de fichier compressé. La valeur de retour de la fonction est la valeur DWORD de bas ordre de la taille de fichier compressée.

Ce paramètre peut être NULL si le DWORD d’ordre élevé de la taille de fichier compressé n’est pas nécessaire. Les fichiers d’une taille inférieure à 4 gigaoctets n’ont pas besoin du DWORD d’ordre élevé.

[in] hTransaction

Handle de la transaction. Ce handle est retourné par la fonction CreateTransaction .

Valeur retournée

Si la fonction réussit, la valeur de retour est la valeur DWORD d’ordre inférieur du nombre réel d’octets de stockage sur disque utilisé pour stocker le fichier spécifié, et si lpFileSizeHigh n’a pas la valeur NULL, la fonction place le DWORD d’ordre élevé de cette valeur réelle dans le DWORD pointé par ce paramètre. Il s’agit de la taille du fichier compressé pour les fichiers compressés, de la taille de fichier réelle pour les fichiers non compressés.

Si la fonction échoue et que lpFileSizeHigh a la valeur NULL, la valeur de retour est INVALID_FILE_SIZE. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Si la valeur de retour est INVALID_FILE_SIZE et que lpFileSizeHigh n’a pas la valeur NULL, une application doit appeler GetLastError pour déterminer si la fonction a réussi (la valeur est NO_ERROR) ou a échoué (la valeur n’est pas NO_ERROR).

Remarques

Une application peut déterminer si un volume est compressé en appelant GetVolumeInformation, puis en vérifiant la status de l’indicateur FS_VOL_IS_COMPRESSED dans la valeur DWORD pointée par le paramètre lpFileSystemFlags de cette fonction.

Si le fichier ne se trouve pas sur un volume qui prend en charge la compression ou les fichiers épars, ou si le fichier n’est pas compressé ou un fichier partiellement alloué, la valeur obtenue est la taille réelle du fichier, identique à la valeur retournée par un appel à GetFileSize.

Liens symboliques : Si le chemin pointe vers un lien symbolique, la fonction retourne la taille de fichier de la cible.

Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.

Technologie Prise en charge
Protocole Server Message Block (SMB) 3.0 No
Basculement transparent SMB 3.0 (TFO) No
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) No
Système de fichiers du volume partagé de cluster (CsvFS) No
Système de fichiers résilient (ReFS) No
 

SMB 3.0 ne prend pas en charge TxF.

Notes

L’en-tête winbase.h définit GetCompressedFileSizeTransacted en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Compression et décompression de fichiers

Fonctions de gestion des fichiers

GetFileSize

GetVolumeInformation

Liens symboliques

Gestion des transactions