Compartir a través de


Función CcCoherencyFlushAndPurgeCache (ntifs.h)

El CcCoherencyFlushAndPurgeCache vaciado de rutina, o vaciado 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 inicial de bytes que se va a vaciar o para vaciar y purgar.

[in] Length

Longitud en bytes de los datos que se van a vaciar, o para 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 Vaciado, pero no purgue la memoria caché. Esto es útil para vaciar 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 ninguna asignación al archivo fuera del administrador de caché, para omitir la costosa operación de recorte conjuntos de trabajo de procesos.

Valor devuelto

Ninguno

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 caché; como tal, 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, vaciar o 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 de 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 >Estado valor de STATUS_CACHE_PAGE_LOCKED indica que se produjo un error de invalidación de página. Tenga en cuenta que la invalidación de página puede producir un error incluso si 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 Valor
cliente mínimo admitido Windows 7
de la plataforma de destino de Universal
encabezado de ntifs.h (incluya Ntifs.h, FltKernel.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL

Consulte también

CcFlushCache

CcPurgeCacheSection