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 |