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 |