CcCopyWriteEx, fonction (ntifs.h)
Le CcCopyWriteEx copie les données d’une mémoire tampon utilisateur vers un fichier mis en cache. Le nombre d’octets d’E/S pour l’opération est facturé au thread émettrice.
Syntaxe
BOOLEAN CcCopyWriteEx(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[in] BOOLEAN Wait,
[in] PVOID Buffer,
[in] PETHREAD IoIssuerThread
);
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’octets de départ dans le fichier mis en cache.
[in] Length
Longueur en octets des données à écrire.
[in] Wait
Définissez la valeur TRUE si l’appelant peut être placé dans un état d’attente jusqu’à ce que toutes les données aient été copiées, FALSE dans le cas contraire.
[in] Buffer
Pointeur vers la mémoire tampon à partir de laquelle les données doivent être copiées.
[in] IoIssuerThread
Thread qui émet la demande d’écriture. Pour un système de fichiers avec comptabilité d’E/S de disque activée, il s’agit du thread sur lequel les E/S sont facturées. Si IoIssuerThread a la valeur NULL, les E/S sont facturées au thread actuel.
Valeur de retour
La routine CcCopyWriteEx retourne TRUE si les données ont été copiées correctement, sinon FALSE.
Remarques
Si 'attente a la valeur TRUE, CcCopyWriteEx est garanti pour terminer la demande de copie et retourner TRUE. Si les pages requises du fichier mis en cache résident 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 'attente a la valeur FALSE, CcCopyWriteEx refusera de bloquer et retournera FALSE, si les pages requises du fichier mis en cache ne résident pas déjà en mémoire ou si l’indicateur FO_WRITE_THROUGH est défini sur l’objet fichier.
Si une défaillance se produit, CcCopyWriteEx déclenche une exception d’état pour cet échec particulier. Par exemple, si un échec d’allocation de pool se produit, CcCopyWriteEx déclenche une exception avec l’état STATUS_INSUFFICIENT_RESOURCES ; si une erreur d’E/S se produit, CcCopyWriteEx déclenche l’exception d’état de l’erreur d’E/S. Par conséquent, pour contrôler si une défaillance se produit, le pilote doit encapsuler l’appel à CcCopyWriteEx dans une instruction try-except try-except ou try-finally.
Pour mettre en cache un fichier, utilisez CcInitializeCacheMap.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 8 |
plateforme cible | Universel |
d’en-tête | ntifs.h (include Ntifs.h, FltKernel.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |