Fonction CcCanIWrite (ntifs.h)

La routine CcCanIWrite détermine si l’appelant peut écrire dans un fichier mis en cache.

Syntaxe

BOOLEAN CcCanIWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        BytesToWrite,
  [in] BOOLEAN      Wait,
  [in] UCHAR        Retrying
);

Paramètres

[in] FileObject

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

[in] BytesToWrite

Nombre d’octets à écrire.

[in] Wait

Définissez la valeur TRUE si l’appelant peut être placé dans un état d’attente jusqu’à ce qu’il puisse écrire dans le fichier mis en cache, FALSE sinon.

[in] Retrying

Définissez sur FALSE si c’est la première fois que CcCanIWrite est appelé pour cette demande d’écriture, TRUE sinon.

Valeur retournée

CcCanIWrite retourne TRUE si le gestionnaire de cache peut accepter la demande d’écriture, FALSE dans le cas contraire.

Remarques

CcCanIWrite doit être appelé avant d’appeler CcCopyWrite ou CcFastCopyWrite.

Si CcCanIWrite retourne TRUE, l’appelant peut immédiatement appeler CcCopyWrite ou CcFastCopyWrite.

Si CcCanIWrite retourne FALSE, l’appelant doit à la place appeler CcDeferWrite pour différer la demande d’écriture.

En règle générale, le gestionnaire de cache peut accepter une demande d’écriture si les conditions suivantes sont remplies :

  • La quantité de données à écrire n’est pas trop importante.

  • La mémoire est suffisante pour effectuer l’opération d’écriture.

  • Le nombre de pages sale dans le cache système ne dépasse pas le seuil de page sale (CcDirtyPageThreshold).

  • Si un seuil de page par fichier sale existe pour ce fichier, il n’est pas dépassé par le nombre de pages sale pour ce fichier dans le cache système.

Pour mettre en cache un fichier, utilisez CcInitializeCacheMap.

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

CcCopyWrite

CcDeferWrite

CcFastCopyWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold