Partager via


Fonction CcSetFileSizes (ntifs.h)

La routine CcSetFileSizes 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 ainsi que 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 de CC_FILE_SIZES contenant les nouvelles informations de taille de fichier.

Valeur de retour

None

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.

En cas d’échec, CcSetFileSizes déclenche une exception status 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 du cache est valide et le restera pendant toute 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.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête ntifs.h (inclure Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe

Voir aussi

CcInitializeCacheMap

CcSetFileSizesEx