Bagikan melalui


FSCTL_MARK_HANDLE IOCTL (winioctl.h)

Menandai file atau direktori tertentu dan rekaman jurnal perubahannya dengan informasi tentang perubahan pada file atau direktori tersebut.

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

BOOL DeviceIoControl(
  (HANDLE) hDevice,             // handle to file or directory
  FSCTL_MARK_HANDLE,            // 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 .

FSCTL_MARK_HANDLE adalah satu-satunya operasi jurnal perubahan yang beroperasi pada file atau direktori individual. Ini tidak memengaruhi apa pun yang dapat dilakukan pengguna dengan item. Sebaliknya, ia menambahkan informasi ke file atau direktori, baik memberikan informasi tentang bagaimana sistem operasi mengubah item atau menambahkan aliran data privat ke item.

Jika ada perubahan pada file atau direktori, informasi yang ditambahkan dengan FSCTL_MARK_HANDLE juga disalin ke dalam catatan USN yang dibuat untuk file atau direktori. Perhatikan bahwa kedua operasi ini dapat terjadi secara independen satu sama lain—misalnya, catatan USN tidak perlu ada untuk dapat menandai file karena tidak dapat didefragmentasi dan tidak perlu menandai file atau direktori untuk memperbarui konten rekaman USN yang sesuai. Untuk detail tentang informasi yang FSCTL_MARK_HANDLE dapat menandai item (lihat MARK_HANDLE_INFO untuk informasi selengkapnya).

Ini bukan kesalahan untuk menggunakan FSCTL_MARK_HANDLE saat jurnal perubahan volume sedang dihapus atau tidak aktif. Informasi yang sesuai diterapkan ke file atau direktori terlepas dari status jurnal perubahan, selama jurnal perubahan ada.

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

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
SMB 3.0 Transparent Failover (TFO) Tidak
SMB 3.0 dengan Scale-out File Shares (SO) Tidak
Sistem File Volume Bersama Kluster (CsvFS) Ya

CsvF selalu mengeluarkan USN_SOURCE_REPLICATION_MANAGEMENT dan MARK_HANDLE_PROTECT_CLUSTERS untuk file yang memenuhi syarat untuk IO langsung.

Persyaratan

Persyaratan 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