Share via


FSCTL_SET_ZERO_DATA IOCTL (winioctl.h)

Riempie un intervallo specificato di un file con zeri (0). Se il file è di tipo sparse o compresso, il file system NTFS può deallocare lo spazio su disco nel file. In questo modo l'intervallo di byte viene impostato su zero (0) senza estendere le dimensioni del file.

Per eseguire questa operazione, chiamare la funzione DeviceIoControl con i parametri seguenti.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to a file
  FSCTL_SET_ZERO_DATA,              // dwIoControlCode
  (LPVOID) lpInBuffer,              // input buffer
  (DWORD) nInBufferSize,            // size of input buffer
  NULL,                             // lpOutBuffer
  0,                                // nOutBufferSize
  (LPDWORD) lpBytesReturned,        // number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

Commenti

Per le implicazioni dell'I/O sovrapposto in questa operazione, vedere la sezione Osservazioni dell'argomento DeviceIoControl .

Se si usa la funzione WriteFile per scrivere zeri (0) in un file sparse, il file system alloca spazio su disco per i dati scritti. Se si usa il codice di controllo FSCTL_SET_ZERO_DATA per scrivere zeri (0) in un file sparse e l'area zero (0) è sufficientemente grande, il file system potrebbe non allocare spazio su disco.

Se si usa il codice di controllo FSCTL_SET_ZERO_DATA per scrivere zeri (0) in un file non sparse, i zeri (0) vengono scritti nel file. Il sistema alloca l'archiviazione su disco per tutti gli intervalli zero (0), equivalente all'uso della funzione WriteFile per scrivere zeri (0) in un file.

I timestamp potrebbero non essere aggiornati correttamente per un file remoto. Per garantire risultati coerenti, usare l'I/O non memorizzato nel buffer.

In Windows 8 e Windows Server 2012 questo codice è supportato dalle tecnologie seguenti.

Tecnologia Supportato
Protocollo SMB (Server Message Block) 3.0
Failover trasparente SMB 3.0 (TFO)
SMB 3.0 con condivisioni file di scalabilità orizzontale (SO)
File system del volume condiviso cluster (CsvFS)
Resilient File System (ReFS)

Requisiti

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Intestazione winioctl.h (include Windows.h)

Vedi anche