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 |