Partager via


Fonction CcCopyWrite (ntifs.h)

La routine CcCopyWrite copie les données d’une mémoire tampon utilisateur vers un fichier mis en cache.

Syntaxe

BOOLEAN CcCopyWrite(
  [in] PFILE_OBJECT   FileObject,
  [in] PLARGE_INTEGER FileOffset,
  [in] ULONG          Length,
  [in] BOOLEAN        Wait,
  [in] PVOID          Buffer
);

Paramètres

[in] FileObject

Pointeur vers un objet de fichier pour le fichier mis en cache dans lequel les données doivent être écrites.

[in] FileOffset

Pointeur vers une variable qui spécifie le décalage d’octet de début dans le fichier mis en cache.

[in] Length

Longueur en octets des données à écrire.

[in] Wait

Définissez sur TRUE si l’appelant peut être placé dans un état d’attente jusqu’à ce que toutes les données soient copiées, FALSE sinon.

[in] Buffer

Pointeur vers la mémoire tampon à partir de laquelle les données doivent être copiées.

Valeur retournée

La routine CcCopyWrite retourne TRUE si les données ont été copiées correctement, FALSE dans le cas contraire.

Remarques

Si Wait a la valeur TRUE, CcCopyWrite est garanti pour terminer la demande de copie et retourner TRUE. Si les pages requises du fichier mis en cache sont déjà en mémoire, les données sont copiées immédiatement et aucun blocage ne se produit. Si les pages nécessaires ne sont pas résidentes, l’appelant est placé dans un état d’attente jusqu’à ce que toutes les pages requises aient été rendues résidentes et que les données puissent être copiées.

Si Wait a la valeur FALSE, CcCopyWrite refuse de bloquer et retourne FALSE si les pages requises du fichier mis en cache ne résident pas déjà dans la mémoire ou si l’indicateur FO_WRITE_THROUGH est défini sur l’objet fichier.

En cas d’échec, CcCopyWrite déclenche une exception status pour cette défaillance particulière. Par exemple, si un échec d’allocation de pool se produit, CcCopyWrite déclenche une exception STATUS_INSUFFICIENT_RESOURCES ; si une erreur d’E/S se produit, CcCopyWrite déclenche l’exception status de l’erreur E/S. Par conséquent, pour contrôler si une défaillance se produit, le pilote doit encapsuler l’appel à CcCopyWrite dans une instruction try-except ou try-finally .

Pour mettre en cache un fichier, utilisez CcInitializeCacheMap.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000
Plateforme cible Universal
En-tête ntifs.h (inclure Ntifs.h, FltKernel.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

CcInitializeCacheMap