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

Se establece en TRUE si el autor de la llamada se puede colocar en un estado de espera hasta que pueda escribir en el archivo almacenado en caché; en caso contrario, FALSE.

[in] Retrying

Se establece en FALSE si 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; en caso contrario, FALSE.

Comentarios

Se debe llamar a CcCanIWrite 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 en la memoria 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 desfasadas de este archivo en la memoria caché del sistema.

Para almacenar en caché un archivo, use CcInitializeCacheMap.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe

Consulte también

CcCopyWrite

CcDeferWrite

CcFastCopyWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold