Partager via


CcSetFileSizes, fonction (ntifs.h)

Le CcSetFileSizes routine met à jour les mappages de cache et l’objet de section pour un fichier mis en cache dont la taille a changé. Utilisez CcSetFileSizesEx à la place, car il fournit un code de retour NTSTATUS avec de meilleures instructions pour la gestion des erreurs.

Syntaxe

void CcSetFileSizes(
  [in] PFILE_OBJECT   FileObject,
  [in] PCC_FILE_SIZES FileSizes
);

Paramètres

[in] FileObject

Pointeur vers un objet de fichier pour le fichier mis en cache.

[in] FileSizes

Pointeur vers une structure CC_FILE_SIZES contenant les nouvelles informations de taille de fichier.

Valeur de retour

Aucun

Remarques

Les systèmes de fichiers doivent appeler CcSetFileSizesEx ou CcSetFileSizes pour mettre à jour les structures de données du gestionnaire de cache chaque fois que l’une des modifications suivantes est apportée à un fichier mis en cache :

  • Sa taille d’allocation est augmentée.

  • Sa longueur de données valide est réduite.

  • Sa longueur de données valide est augmentée par une opération d’E/S non mise en cache.

  • Sa taille de fichier est augmentée ou réduite.

Si une défaillance se produit, CcSetFileSizes déclenche une exception d’état pour cet échec particulier. Par exemple, si un échec d’allocation de pool se produit, CcSetFileSizes déclenche une exception STATUS_INSUFFICIENT_RESOURCES. Par conséquent, pour contrôler si une défaillance se produit, le pilote doit encapsuler l’appel à CcSetFileSizes dans une instruction try-except ou try-finally.

Le système de fichiers doit s’assurer que le mappage de cache est valide et restera ainsi pendant la durée de cet appel.

Pour mettre en cache un fichier, utilisez CcInitializeCacheMap.

Pour obtenir la taille du fichier mis en cache, passez FileObject à CcGetFileSizePointer.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête ntifs.h (include Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe

Voir aussi

CcInitializeCacheMap

CcSetFileSizesEx