Condividi tramite


Funzione CcSetFileSizes (ntifs.h)

Il CcSetFileSizes routine aggiorna le mappe della cache e l'oggetto sezione per un file memorizzato nella cache le cui dimensioni sono state modificate. Usare invece CcSetFileSizesEx poiché 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 aumentano.

  • 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 aumentano o diminuiscono.

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 così per la durata di questa chiamata.

Per memorizzare nella cache un file, usare CcInitializeCacheMap.

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

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione ntifs.h (include Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe

Vedere anche

CcInitializeCacheMap

CcSetFileSizesEx