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 |