Compartir a través de


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

Consulte también

CcFlushCache

CcPurgeCacheSection