Condividi tramite


Funzione CcCoherencyFlushAndPurgeCache (ntifs.h)

Il CcCoherencyFlushAndPurgeCache scaricamenti di routine o scarica e elimina, la cache per garantire la coescenza della cache.

Sintassi

void CcCoherencyFlushAndPurgeCache(
  [in]           PSECTION_OBJECT_POINTERS SectionObjectPointer,
  [in, optional] PLARGE_INTEGER           FileOffset,
  [in]           ULONG                    Length,
  [out]          PIO_STATUS_BLOCK         IoStatus,
  [in, optional] ULONG                    Flags
);

Parametri

[in] SectionObjectPointer

Puntatore a una struttura SECTION_OBJECT_POINTERS che contiene i puntatori a oggetti sezione dell'oggetto file.

[in, optional] FileOffset

Puntatore a una variabile che specifica l'offset di byte iniziale da scaricare o per scaricare ed eliminare.

[in] Length

Lunghezza in byte dei dati da scaricare o per scaricare ed eliminare, a partire da FileOffset. Questo parametro viene ignorato se un puntatore NULL viene passato a FileOffset.

[out] IoStatus

Puntatore a una struttura di IO_STATUS_BLOCK allocata dal chiamante che riceve lo stato di completamento finale e le informazioni sull'operazione.

[in, optional] Flags

Maschera di bit dei flag seguenti che specificano la modalità di esecuzione dell'operazione:

Valore Significato
CC_FLUSH_AND_PURGE_NO_PURGE Scarica, ma non elimina la cache. Ciò è utile per leggere gli scaricamenti di coesistenza.
CC_FLUSH_AND_PURGE_GATHER_DIRTY_BITS Riservato per l'uso del sistema; non usare.
CC_FLUSH_AND_PURGE_WRITEABLE_VIEWS_NOTSEEN Il chiamante può impostare questo flag quando non sono presenti mapping al file all'esterno della gestione cache, per ignorare l'operazione costosa di taglio dei set di lavoro processo.

Valore restituito

Nessuno

Osservazioni

Usare CcCoherencyFlushAndPurgeCache quando possibile invece di una sequenza di chiamata di scaricamento e eliminazione esplicita, perché invaliderà le visualizzazioni mappate dall'utente per evitare il danneggiamento dei dati. CcCoherencyFlushAndPurgeCache garantisce la coerenza della cache; di conseguenza, non è possibile eseguire un'eliminazione solo tramite questa funzione.

Il file deve essere acquisito esclusivamente prima di chiamare CcCoherencyFlushAndPurgeCache.

È possibile scaricare o scaricare ed eliminare qualsiasi intervallo di byte all'interno di un file usando i parametri FileOffset e Lunghezza. In alternativa, è possibile scaricare o scaricare ed eliminare un intero file se si passa un puntatore NULL al parametro FileOffset.

Una chiamata a CcCoherencyFlushAndPurgeCache è un'operazione sincrona (bloccante), non un'operazione asincrona (non bloccante).

Un valore IoStatus->Status di STATUS_CACHE_PAGE_LOCKED indica che l'invalidazione della pagina non è riuscita. Tenere presente che l'invalidazione della pagina può avere esito negativo anche se si passa CC_FLUSH_AND_PURGE_NO_PURGE nel parametro flag . Si noti che STATUS_CACHE_PAGE_LOCKED è uno stato di esito positivo, ovvero il test con la macro NT_SUCCESS restituirà TRUE.

Fabbisogno

Requisito Valore
client minimo supportato Windows 7
piattaforma di destinazione Universale
intestazione ntifs.h (include Ntifs.h, FltKernel.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL PASSIVE_LEVEL

Vedere anche

CcFlushCache

CcPurgeCacheSection