Bagikan melalui


FSCTL_SET_ZERO_DATA IOCTL (winioctl.h)

Mengisi rentang file tertentu dengan nol (0). Jika file jarang atau terkompresi, sistem file NTFS dapat membatalkan alokasi ruang disk dalam file. Ini mengatur rentang byte ke nol (0) tanpa memperpanjang ukuran file.

Untuk melakukan operasi ini, panggil fungsi DeviceIoControl dengan parameter berikut.

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
);

Keterangan

Untuk implikasi I/O yang tumpang tindih pada operasi ini, lihat bagian Keterangan dari topik DeviceIoControl .

Jika Anda menggunakan fungsi WriteFile untuk menulis nol (0) ke file jarang, sistem file mengalokasikan ruang disk untuk data yang Anda tulis. Jika Anda menggunakan kode kontrol FSCTL_SET_ZERO_DATA untuk menulis nol (0) ke file jarang dan wilayah nol (0) cukup besar, sistem file mungkin tidak mengalokasikan ruang disk.

Jika Anda menggunakan kode kontrol FSCTL_SET_ZERO_DATA untuk menulis nol (0) ke file yang tidak jarang, nol (0) ditulis ke file. Sistem mengalokasikan penyimpanan disk untuk semua rentang nol (0), yang setara dengan menggunakan fungsi WriteFile untuk menulis nol (0) ke file.

Stempel waktu mungkin tidak diperbarui dengan benar untuk file jarak jauh. Untuk memastikan hasil yang konsisten, gunakan I/O yang tidak dibuffer.

Di Windows 8 dan Windows Server 2012, kode ini didukung oleh teknologi berikut.

Teknologi Didukung
Protokol Server Message Block (SMB) 3.0 Ya
SMB 3.0 Transparent Failover (TFO) Ya
SMB 3.0 dengan Berbagi File Peluasan Skala (SO) Ya
Sistem File Volume Bersama Kluster (CsvFS) Ya
Sistem File Tangguh (ReFS) Ya

Persyaratan

   
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header winioctl.h (termasuk Windows.h)

Lihat juga