Funzione CcSetFileSizes (ntifs.h)

La routine CcSetFileSizes aggiorna le mappe della cache e l'oggetto sezione per un file memorizzato nella cache le cui dimensioni sono state modificate. Usare invece CcSetFileSizesEx perché fornisce un codice restituito NTSTATUS insieme a indicazioni migliori per la gestione degli errori.

Sintassi

void CcSetFileSizes(
  [in] PFILE_OBJECT   FileObject,
  [in] PCC_FILE_SIZES FileSizes
);

Parametri

[in] FileObject

Puntatore a un oggetto file per il file memorizzato nella cache.

[in] FileSizes

Puntatore a una struttura CC_FILE_SIZES contenente le informazioni sulle nuove dimensioni del file.

Valore restituito

nessuno

Osservazioni

I file system devono chiamare CcSetFileSizesEx o CcSetFileSizes per aggiornare le strutture dei dati di gestione cache ogni volta che viene apportata una delle modifiche seguenti a un file memorizzato nella cache:

  • Le dimensioni di allocazione sono aumentate.

  • La lunghezza dei dati valida viene ridotta.

  • La lunghezza dei dati valida viene aumentata da un'operazione di I/O non memorizzata nella cache.

  • Le dimensioni del file sono aumentate o ridotte.

Se si verifica un errore, CcSetFileSizes genera un'eccezione di stato per quel particolare errore. Ad esempio, se si verifica un errore di allocazione del pool, CcSetFileSizes genera un'eccezione STATUS_INSUFFICIENT_RESOURCES. Pertanto, per ottenere il controllo se si verifica un errore, il driver deve eseguire il wrapping della chiamata a CcSetFileSizes in un'istruzione try-except o try-finally .

Il file system deve assicurarsi che la mappa della cache sia valida e rimanga per tutta la durata della chiamata.

Per memorizzare nella cache un file, usare CcInitializeCacheMap.

Per ottenere le dimensioni del file memorizzato nella cache, passare FileObject a CcGetFileSizePointer.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe

Vedi anche

CcInitializeCacheMap

CcSetFileSizesEx