Función CcCoherencyFlushAndPurgeCache (ntifs.h)
La rutina CcCoherencyFlushAndPurgeCache vacía, o vacía y purga, la memoria caché para garantizar la coherencia de la memoria caché.
Sintaxis
void CcCoherencyFlushAndPurgeCache(
[in] PSECTION_OBJECT_POINTERS SectionObjectPointer,
[in, optional] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[out] PIO_STATUS_BLOCK IoStatus,
[in, optional] ULONG Flags
);
Parámetros
[in] SectionObjectPointer
Puntero a una estructura SECTION_OBJECT_POINTERS que contiene los punteros de objeto de sección del objeto de archivo.
[in, optional] FileOffset
Puntero a una variable que especifica el desplazamiento de bytes inicial que se va a vaciar, o para vaciar y purgar.
[in] Length
Longitud en bytes de los datos que se van a vaciar o vaciar y purgar, empezando por FileOffset. Este parámetro se omite si se pasa un puntero NULL a FileOffset.
[out] IoStatus
Puntero a una estructura de IO_STATUS_BLOCK asignada por el autor de la llamada que recibe el estado de finalización final e información sobre la operación.
[in, optional] Flags
Máscara de bits de las marcas siguientes que especifican cómo se va a realizar la operación:
Valor | Significado |
---|---|
CC_FLUSH_AND_PURGE_NO_PURGE | Vacíe, pero no purgue la memoria caché. Esto es útil para los vaciados de la coherencia de lectura. |
CC_FLUSH_AND_PURGE_GATHER_DIRTY_BITS | Reservado para uso del sistema; no use. |
CC_FLUSH_AND_PURGE_WRITEABLE_VIEWS_NOTSEEN | El autor de la llamada puede establecer esta marca cuando no hay asignaciones en el archivo fuera del administrador de caché, con el fin de omitir el costoso funcionamiento de los conjuntos de trabajo del proceso de recorte. |
Valor devuelto
None
Observaciones
Use CcCoherencyFlushAndPurgeCache cuando sea posible en lugar de una secuencia explícita de llamadas de vaciado y purga, ya que invalidará las vistas asignadas por el usuario para evitar daños en los datos. CcCoherencyFlushAndPurgeCache garantiza la coherencia de la memoria caché; por lo tanto, no hay ninguna opción para realizar una purga solo a través de esta función.
El archivo debe adquirirse exclusivamente antes de llamar a CcCoherencyFlushAndPurgeCache.
Puede vaciar, o vaciar y purgar, cualquier intervalo de bytes dentro de un archivo mediante los parámetros FileOffset y Length . O bien, puede vaciar, o vaciar y purgar, un archivo completo si pasa un puntero NULL al parámetro FileOffset .
Una llamada a CcCoherencyFlushAndPurgeCache es una operación sincrónica (de bloqueo), no una operación asincrónica (sin bloqueo).
Un valor ioStatus-Status> de STATUS_CACHE_PAGE_LOCKED indica que se produjo un error en la invalidación de página. Tenga en cuenta que se puede producir un error en la invalidación de página incluso si se pasa CC_FLUSH_AND_PURGE_NO_PURGE en el parámetro Flags . Tenga en cuenta que STATUS_CACHE_PAGE_LOCKED es un estado correcto (es decir, probarlo con la macro NT_SUCCESS devolvería TRUE).
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7 |
Plataforma de destino | Universal |
Encabezado | ntifs.h (incluya Ntifs.h, FltKernel.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |