Compartir a través de


Función CcDeferWrite (ntifs.h)

La rutina CcDeferWrite aplaza la escritura en un archivo almacenado en caché. El administrador de caché llama a la rutina posterior proporcionada cuando puede acomodar la operación de escritura.

Sintaxis

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

Parámetros

[in] FileObject

Puntero a un objeto de archivo para el archivo almacenado en caché al que se van a escribir los datos.

[in] PostRoutine

Dirección de una rutina para que el administrador de caché llame a para escribir en el archivo almacenado en caché. Tenga en cuenta que es posible que se llame inmediatamente a esta rutina, incluso si CcCanIWrite acaba de devolver FALSE .

La rutina post se define en ntifs.h como:

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

Se puede llamar a esta función con el campo TopLevelIrp en el IRP actual establecido en FSRTL_MOD_WRITE_TOP_LEVEL_IRP.

[in] Context1

Primer parámetro para la rutina post en PostRoutine.

[in] Context2

Segundo parámetro para la rutina post en PostRoutine.

[in] BytesToWrite

Número de bytes de datos que se van a escribir.

[in] Retrying

Establézcalo en FALSE si la solicitud se publica por primera vez, TRUE de lo contrario.

Valor devuelto

Ninguno

Observaciones

Normalmente, un sistema de archivos llamaría a ccDeferWrite después de recibir un valor devuelto de FALSE de CcCanIWrite.

Para almacenar en caché un archivo, use CcInitializeCacheMap.

Los parámetros de contexto pasados a PostRoutine suelen ser la solicitud de E/S y los datos de contexto relacionados.

Requisitos

Requisito Valor
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe

Consulte también

CcCanIWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold