Bagikan melalui


FSCTL_DELETE_USN_JOURNAL IOCTL (winioctl.h)

Menghapus jurnal perubahan nomor urutan pembaruan (USN) pada volume, atau menunggu pemberitahuan penghapusan jurnal perubahan.

C++
BOOL 
WINAPI 
DeviceIoControl( (HANDLE) hDevice,              // handle to volume
                 FSCTL_DELETE_USN_JOURNAL,      // dwIoControlCode(LPVOID) lpInBuffer,           // input buffer
                 (DWORD) nInBufferSize,         // size of input buffer
                 NULL,                          // lpOutBuffer0,                             // nOutBufferSize(LPDWORD) lpBytesReturned,     // number of bytes returned
                 (LPOVERLAPPED) lpOverlapped ); // OVERLAPPED structure

Komentar

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

Anda dapat menggunakan FSCTL_DELETE_USN_JOURNAL untuk menghapus jurnal perubahan. Sistem file NTFS memulai operasi penghapusan dan segera kembali ke proses panggilan, kecuali bendera USN_DELETE_FLAG_NOTIFY diatur dalam DeleteFlags anggota DELETE_USN_JOURNAL_DATA.

Jika bendera USN_DELETE_FLAG_NOTIFY dan USN_DELETE_FLAG_DELETE diatur, panggilan ke FSCTL_DELETE_USN_JOURNAL memulai proses penghapusan. Kemudian panggilan memblokir utas panggilan dan menunggu penghapusan (pada panggilan sinkron atau tidak tumpang tindih), atau menyiapkan pemberitahuan peristiwa dengan menggunakan port penyelesaian I/O atau mekanisme lain, dan mengembalikan (pada panggilan asinkron atau tumpang tindih).

Anda juga dapat menggunakan FSCTL_DELETE_USN_JOURNAL untuk menerima pemberitahuan bahwa penghapusan jurnal perubahan selesai, dengan mengatur hanya USN_DELETE_FLAG_NOTIFY. Jika Anda melakukannya, operasi FSCTL_DELETE_USN_JOURNAL menunggu hingga penghapusan selesai sebelum kembali (pada panggilan sinkron atau tidak tumpang tindih), atau menyiapkan pemberitahuan peristiwa dengan menggunakan port penyelesaian I/O atau mekanisme lain (pada panggilan asinkron atau tumpang tindih).

Penghapusan di mana aplikasi menerima pemberitahuan mungkin telah dimulai oleh proses saat ini, atau beberapa proses lainnya. Misalnya, ketika aplikasi dimulai, aplikasi dapat menggunakan FSCTL_DELETE_USN_JOURNAL untuk menentukan apakah penghapusan yang dimulai oleh beberapa proses lain sedang berlangsung dan jika ya, keluar.

Penghapusan lengkap jurnal perubahan memerlukan pemindaian volume tempat jurnal perubahan berada, yang mungkin memakan waktu lama pada volume dengan banyak file. Operasi terus selesai bahkan di seluruh sistem dimulai ulang. Upaya untuk membuat, memodifikasi, menghapus, atau mengkueri jurnal perubahan saat penghapusan sedang berlangsung gagal dan mengembalikan kode kesalahan ERROR_JOURNAL_DELETE_IN_PROGRESS.

Operasi FSCTL_DELETE_USN_JOURNAL memiliki biaya performa yang signifikan, sehingga harus digunakan dengan hemat. Administrator harus menghapus jurnal ketika nilai USN saat ini mendekati nilai USN maksimum yang mungkin.

Untuk informasi selengkapnya, lihat Membuat, Memodifikasi, dan Menghapus Change Journal.

Untuk mengambil handel ke volume, panggil CreateFile dengan parameter lpFileName diatur ke string dalam formulir berikut:

\\.\X:

Dalam string sebelumnya, X adalah huruf yang mengidentifikasi drive tempat volume muncul. Volume harus NTFS.

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

Teknologi Didukung
Protokol Server Message Block (SMB) 3.0 Tidak
Failover Transparan (TFO) SMB 3.0 Tidak
SMB 3.0 dengan Scale-out File Shares (SO) Tidak
Sistem File Volume Bersama Kluster (CsvFS) Ya

Persyaratan

Syarat Nilai
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

CREATE_USN_JOURNAL_DATA

Mengubah Jurnal

CreateFile

DELETE_USN_JOURNAL_DATA

DeviceIoControl

FSCTL_CREATE_USN_JOURNAL

TUMPANG TINDIH

Kode Kontrol Manajemen Volume