Partager via


CcCanIWrite, fonction (ntifs.h)

Le CcCanIWrite routine 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éfini sur 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 la valeur FALSE si c’est la première fois que CcCanIWrite est appelé pour cette demande d’écriture, TRUE sinon.

Valeur de retour

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

Remarques

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

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

Si CcCanIWrite retourne la valeur 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 grande.

  • Il y a suffisamment de mémoire pour effectuer l’opération d’écriture.

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

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

Pour mettre en cache un fichier, utilisez CcInitializeCacheMap.

Exigences

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

Voir aussi

CcCopyWrite

ccDeferWrite

CcFastCopyWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold