Funzione CcZeroData (ntifs.h)
La routine CcZeroData zero l'intervallo specificato di byte in un file memorizzato nella cache o non memorizzato nella cache.
Nota
Questa routine deve essere chiamata solo a zero parti di un file oltre la lunghezza di dati valida del file. CcZeroData non modifica i dati scritti in precedenza del file. Per zero dati scritti in precedenza che fanno parte del file fino alla lunghezza di dati valida del file, chiamare CcCopyWrite o una delle altre interfacce di scrittura memorizzate nella cache.
Sintassi
BOOLEAN CcZeroData(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER StartOffset,
[in] PLARGE_INTEGER EndOffset,
[in] BOOLEAN Wait
);
Parametri
[in] FileObject
Puntatore a un FILE_OBJECT per il file in cui deve essere zero un intervallo di byte.
[in] StartOffset
Puntatore a una variabile che specifica l'offset di byte all'interno del file al primo byte che deve essere zero.
[in] EndOffset
Puntatore a una variabile che specifica l'offset di byte all'interno del file all'ultimo byte che deve essere zero.
[in] Wait
Impostare su TRUE se il chiamante deve essere inserito in uno stato di attesa fino a quando l'intero intervallo di byte non è stato zero. In caso contrario, questo parametro è impostato su FALSE.
Valore restituito
CcZeroData restituisce TRUE se i dati sono zero; in caso contrario, restituisce FALSE.
Commenti
Il file da zero può essere memorizzato nella cache o non crittografato. Tuttavia, se il file non è incached, i valori di StartOffset e EndOffset devono essere entrambi multipli delle dimensioni del settore del volume.
Se si verifica un errore di allocazione del pool e Wait è stato specificato come TRUE, CcZeroData genera un'eccezione STATUS_INSUFFICIENT_RESOURCES. Se si verifica un errore di allocazione del pool e Wait è stato specificato come FALSE, CcZeroData restituisce FALSE, ma non genera un'eccezione.
Se l'oggetto FileObject fornito non dispone della memorizzazione nella cache abilitata, ma la memorizzazione nella cache esiste nel flusso , ovvero un altro oggetto file per lo stesso file ha abilitato la memorizzazione nella cache, l'zeroing verrà considerato come se la memorizzazione nella cache write-through sia abilitata.
Se Wait è impostato su TRUE, CcZeroData è garantito di completare la richiesta di dati zero e restituire TRUE. Se le pagine necessarie del file memorizzato nella cache sono già residenti in memoria, i dati verranno zero immediatamente e non si verificherà alcun blocco. Se le pagine necessarie non sono residenti, il chiamante verrà inserito in uno stato di attesa fino a quando tutte le pagine necessarie non sono state rese residenti e i dati possono essere zero.
Se Wait è FALSE e se le pagine necessarie del file memorizzato nella cache non sono già residenti in memoria, CcZeroData rifiuterà di bloccare e restituirà FALSE.
Se si verifica un errore di allocazione del pool, CcZeroData genera un'eccezione STATUS_INSUFFICIENT_RESOURCES. Se CcZeroData rileva altri errori, inclusi gli errori di I/O, gli errori verranno generati al chiamante.
Per Windows Vista e i sistemi operativi Windows successivi, il comportamento di CcZeroData è il seguente:
- Se il flusso viene memorizzato nella cache e write_through, StartOffset non deve essere allineato al settore.
- Se EndOffset non è allineato, verrà arrotondato fino alle dimensioni successive del settore.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000. Vedere Osservazioni per le modifiche apportate ai sistemi operativi Vista e versioni successive. |
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Fltkernel.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |