Compartir a través de


Función CcCanIWrite (ntifs.h)

La rutina CcCanIWrite determina si el autor de la llamada puede escribir en un archivo almacenado en caché.

Sintaxis

BOOLEAN CcCanIWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        BytesToWrite,
  [in] BOOLEAN      Wait,
  [in] UCHAR        Retrying
);

Parámetros

[in] FileObject

Puntero a un objeto de archivo para el archivo almacenado en caché.

[in] BytesToWrite

Número de bytes que se van a escribir.

[in] Wait

Establézcalo en TRUE si el autor de la llamada puede colocarse en un estado de espera hasta que pueda escribir en el archivo almacenado en caché; de lo contrario, FALSE.

[in] Retrying

Establézcalo en FALSE si esta es la primera vez que se llama a ccCanIWrite para esta solicitud de escritura; de lo contrario, es TRUE.

Valor devuelto

ccCanIWrite devuelve TRUE si el administrador de caché puede aceptar la solicitud de escritura, FALSE en caso contrario.

Observaciones

ccCanIWrite debe llamarse antes de llamar a ccCopyWrite o ccFastCopyWrite.

Si ccCanIWrite devuelve TRUE, el autor de la llamada puede llamar inmediatamente a ccCopyWrite o CcFastCopyWrite.

Si ccCanIWrite devuelve FALSE, el autor de la llamada debe llamar a ccDeferWrite para aplazar la solicitud de escritura.

Por lo general, el administrador de caché puede aceptar una solicitud de escritura si se cumplen las condiciones siguientes:

  • La cantidad de datos que se van a escribir no es demasiado grande.

  • Hay suficiente memoria para realizar la operación de escritura.

  • El número de páginas desfasadas de la caché del sistema no supera el umbral de página desfasada (CcDirtyPageThreshold).

  • Si existe un umbral de página desfasada por archivo para este archivo, no se supera por el número de páginas sucias para este archivo en la memoria caché del sistema.

Para almacenar en caché un archivo, use CcInitializeCacheMap.

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

ccCopyWrite

ccDeferWrite

ccFastCopyWrite de

ccInitializeCacheMap

CcSetDirtyPageThreshold