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

Vedi anche

CcInitializeCacheMap

CcIsFileCached

FILE_OBJECT