Partager via


CcDeferWrite, fonction (ntifs.h)

Le CcDeferWrite routine reporte l’écriture dans un fichier mis en cache. La routine de publication fournie est appelée par le gestionnaire de cache lorsqu’elle peut prendre en charge l’opération d’écriture.

Syntaxe

void CcDeferWrite(
  [in] PFILE_OBJECT            FileObject,
  [in] PCC_POST_DEFERRED_WRITE PostRoutine,
  [in] PVOID                   Context1,
  [in] PVOID                   Context2,
  [in] ULONG                   BytesToWrite,
  [in] BOOLEAN                 Retrying
);

Paramètres

[in] FileObject

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

[in] PostRoutine

Adresse d’une routine pour que le gestionnaire de cache appelle pour écrire dans le fichier mis en cache. Notez qu’il est possible que cette routine soit appelée immédiatement, même si CcCanIWrite vient de retourner FAUX.

La routine post est définie dans ntifs.h comme suit :

typedef
VOID (*PCC_POST_DEFERRED_WRITE) (
    _In_ PVOID Context1,
    _In_ PVOID Context2
    );

Cette fonction peut être appelée avec le champ TopLevelIrp dans l’IRP actuel défini sur FSRTL_MOD_WRITE_TOP_LEVEL_IRP.

[in] Context1

Premier paramètre de la routine post à PostRoutine.

[in] Context2

Deuxième paramètre de la routine post à PostRoutine.

[in] BytesToWrite

Nombre d’octets de données à écrire.

[in] Retrying

Définissez la valeur FALSE si la demande est publiée pour la première fois, TRUE sinon.

Valeur de retour

Aucun

Remarques

Un système de fichiers appelle normalement CcDeferWrite après avoir reçu une valeur de retour FALSE de CcCanIWrite.

Pour mettre en cache un fichier, utilisez CcInitializeCacheMap.

Les paramètres de contexte passés à PostRoutine sont généralement la requête d’E/S et les données de contexte associées.

Exigences

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

Voir aussi

CcCanIWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold