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 |