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 |