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 |