Funzione CcCoherencyFlushAndPurgeCache (ntifs.h)

La routine CcCoherencyFlushAndPurgeCache scarica o scarica e elimina la cache per garantire la coerenza 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 dei byte iniziale da scaricare o 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 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 ripulisci la cache. Ciò è utile per leggere gli scaricamenti di coerenza.
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 dei working set di processi di taglio.

Valore restituito

nessuno

Osservazioni

Usare CcCoherencyFlushAndPurgeCache quando possibile anziché una sequenza di chiamata di scaricamento ed eliminazione esplicita perché invaliderà le visualizzazioni mappate dall'utente per evitare il danneggiamento dei dati. CcCoherencyFlushAndPurgeCache garantisce la coesistenza 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 Length . 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 Flags . Si noti che STATUS_CACHE_PAGE_LOCKED è uno stato di esito positivo , ovvero il test con la macro NT_SUCCESS restituirà TRUE.

Requisiti

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

Vedi anche

CcFlushCache

CcPurgeCacheSection