Bagikan melalui


struktur MARK_HANDLE_INFO (winioctl.h)

Berisi informasi yang digunakan untuk menandai file atau direktori tertentu, dan nomor urutan pembaruannya (USN) mengubah catatan jurnal dengan data tentang perubahan. Ini digunakan oleh kode kontrol FSCTL_MARK_HANDLE.

Sintaksis

typedef struct _MARK_HANDLE_INFO {
  union {
    DWORD UsnSourceInfo;
    DWORD CopyNumber;
  } DUMMYUNIONNAME;
  DWORD  UsnSourceInfo;
  HANDLE VolumeHandle;
  DWORD  HandleInfo;
} MARK_HANDLE_INFO, *PMARK_HANDLE_INFO;

Anggota

DUMMYUNIONNAME

DUMMYUNIONNAME.UsnSourceInfo

DUMMYUNIONNAME.CopyNumber

UsnSourceInfo

Jenis perubahan yang sedang dilakukan.

Operasi tidak mengubah file atau direktori secara eksternal dari sudut pandang aplikasi yang membuatnya.

Saat utas menulis catatan USN baru, informasi sumber ditandai dalam catatan sebelumnya terus ada hanya jika utas juga mengatur bendera tersebut. Oleh karena itu, struktur informasi sumber memungkinkan aplikasi untuk memfilter rekaman USN yang hanya ditetapkan oleh sumber yang diketahui, seperti filter antivirus.

Nilai berikut ditentukan.

Nilai Arti
USN_SOURCE_DATA_MANAGEMENT
0x00000001
Operasi ini menyediakan informasi tentang perubahan pada file atau direktori yang dibuat oleh sistem operasi.

Penggunaan umum adalah ketika Penyimpanan Jarak Jauh memindahkan data dari penyimpanan eksternal ke lokal. Penyimpanan Jarak Jauh adalah perangkat lunak manajemen penyimpanan hierarkis. Pemindahan seperti itu biasanya minimal menambahkan bendera USN_REASON_DATA_OVERWRITE ke rekaman USN. Namun, data tidak berubah dari sudut pandang pengguna. Dengan mencatat USN_SOURCE_DATA_MANAGEMENT di SourceInfo anggota struktur USN_RECORD yang menyimpan rekaman, Anda dapat menentukan bahwa meskipun operasi tulis dilakukan pada item, data tidak berubah.

USN_SOURCE_AUXILIARY_DATA
0x00000002
Operasi menambahkan aliran data privat ke file atau direktori.

Contohnya mungkin detektor virus yang menambahkan informasi checksum. Saat detektor virus memodifikasi item, sistem menghasilkan rekaman USN. USN_SOURCE_AUXILIARY_DATA menunjukkan bahwa modifikasi tidak mengubah data aplikasi.

USN_SOURCE_REPLICATION_MANAGEMENT
0x00000004
Operasi membuat atau memperbarui konten file yang direplikasi.

Misalnya, layanan replikasi file mengatur bendera ini saat membuat atau memperbarui file dalam direktori yang direplikasi.

USN_SOURCE_CLIENT_REPLICATION_MANAGEMENT
0x00000008
Replikasi sedang dilakukan pada sistem klien baik dari cloud atau server.

VolumeHandle

Handel volume ke volume tempat file atau direktori berada. Untuk informasi selengkapnya tentang mendapatkan handel volume, lihat bagian Keterangan.

Handel ini diperlukan untuk memeriksa hak istimewa untuk operasi ini.

Pemanggil harus memiliki hak istimewa SE_MANAGE_VOLUME_NAME. Untuk informasi selengkapnya, lihat Hak Istimewa .

HandleInfo

Bendera yang menentukan informasi tambahan tentang file atau direktori yang diidentifikasi oleh nilai handel di anggota VolumeHandle.

Nilai Arti
MARK_HANDLE_PROTECT_CLUSTERS
0x00000001
File ditandai sebagai tidak dapat didefragmentasi hingga handel ditutup.

Setelah handel yang ditandai MARK_HANDLE_PROTECT_CLUSTERS ditutup, tidak ada jaminan bahwa kluster file tidak akan bergerak.

MARK_HANDLE_TXF_SYSTEM_LOG
0x00000004
File ditandai sebagai tidak dapat didefragmentasi hingga handel ditutup.

Windows Server 2003: Bendera ini tidak didukung hingga Windows Server 2003 dengan SP1.

Windows XP: Bendera ini tidak didukung.

MARK_HANDLE_NOT_TXF_SYSTEM_LOG
0x00000008
File ditandai sebagai tidak dapat didefragmentasi hingga handel ditutup.

Windows Server 2003: Bendera ini tidak didukung hingga Windows Server 2003 dengan SP1.

Windows XP: Bendera ini tidak didukung.

MARK_HANDLE_REALTIME
0x00000020
File ditandai untuk perilaku baca real time terlepas dari jenis file aktual. File yang ditandai dengan bendera ini harus dibuka untuk I/O yang tidak dibuffer.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Bendera ini tidak didukung.

MARK_HANDLE_NOT_REALTIME
0x00000040
File yang sebelumnya ditandai untuk perilaku baca real time menggunakan bendera MARK_HANDLE_REALTIME dapat tidak ditandai menggunakan bendera ini, menghapus perilaku real-time. File yang ditandai dengan bendera ini harus dibuka untuk I/O yang tidak dibuffer.

Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Bendera ini tidak didukung.

MARK_HANDLE_READ_COPY
0x00000080
Menunjukkan nomor salinan yang ditentukan dalam anggota CopyNumber harus digunakan untuk pembacaan. File yang ditandai dengan bendera ini harus dibuka untuk I/O yang tidak dibuffer.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Bendera ini tidak didukung hingga Windows 8 dan Windows Server 2012.

MARK_HANDLE_NOT_READ_COPY
0x00000100
File yang sebelumnya ditandai untuk perilaku baca-salin menggunakan bendera MARK_HANDLE_READ_COPY dapat tidak ditandai menggunakan bendera ini, menghapus perilaku baca-salin. File yang ditandai dengan bendera ini harus dibuka untuk I/O yang tidak dibuffer.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 dan Windows XP: Bendera ini tidak didukung hingga Windows 8 dan Windows Server 2012.

MARK_HANDLE_RETURN_PURGE_FAILURE
0x00000400
Saat mengintermiks IO memori yang dipetakan/di-cache dengan IO yang tidak di-cache, ketika io yang tidak di-cache dikeluarkan, untuk menghapus menyeluruh pemetaan memori untuk rentang IO yang tidak di-cache. Jika pembersihan ini gagal, sistem biasanya tidak mengembalikan kegagalan ke pemanggil yang dapat menyebabkan status rusak (itulah sebabnya dokumentasi mengatakan untuk tidak melakukan ini). Bendera ini memberi tahu sistem untuk mengembalikan kegagalan penghapusan menyeluruh untuk handel yang diberikan sehingga aplikasi dapat menangani situasi ini dengan lebih baik

Bendera ini tidak didukung hingga Windows 8 dan Windows Server 2012.

MARK_HANDLE_DISABLE_FILE_METADATA_OPTIMIZATION
0x00001000
File yang sangat terfragmentasi di NTFS menggunakan beberapa rekaman MFT untuk menjelaskan semua tingkat untuk file. Daftar rekaman MFT anak ini (juga dikenal sebagai catatan FRS) dikontrol oleh struktur yang dikenal sebagai daftar atribut. Daftar atribut dibatasi hingga ukuran 128K. Ketika ukuran daftar atribut mencapai ambang batas tertentu NTFS akan memicu pemadatan latar belakang pada tingkat sehingga jumlah minimum catatan FRS anak akan digunakan. Bendera ini menonaktifkan fitur pemadatan FRS ini untuk file yang diberikan.

Bendera ini tidak didukung hingga Windows 10.

MARK_HANDLE_ENABLE_USN_SOURCE_ON_PAGING_IO
0x00002000
Memberi tahu NTFS untuk mengatur nilai UsnSourceInfo yang diberikan pada penulisan Paging di Jurnal USN. Biasanya ini tidak dilakukan pada penulisan halaman karena sistem tidak tahu utas apa yang membuat perubahan yang diberikan. Ini adalah penimpaan. Ini hanya berfungsi jika FileObject yang digunakan manajer memori memiliki status ini yang terkait dengannya.

Bendera ini tidak didukung hingga Windows 10.

MARK_HANDLE_SKIP_COHERENCY_SYNC_DISALLOW_WRITES
0x00004000
Menyetel bendera ini memberi tahu sistem bahwa penulisan tidak diperbolehkan pada file ini. Jika aplikasi mencoba membuka file untuk akses tulis, operasi gagal dengan STATUS_ACCESS_DENIED. Jika penulisan terlihat operasi gagal dengan STATUS_MARKED_TO_DISALLOW_WRITES

Bendera ini tidak didukung hingga Windows 10.

Komentar

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.

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

FSCTL_MARK_HANDLE

USN_RECORD