struktur USN_RECORD_V4 (winioctl.h)
Berisi informasi untuk catatan nomor urutan pembaruan (USN) versi 4.0. Rekaman versi 2.0 dan 3.0 ditentukan oleh struktur USN_RECORD_V2 (juga disebut USN_RECORD) dan USN_RECORD_V3 .
Sintaks
typedef struct {
USN_RECORD_COMMON_HEADER Header;
FILE_ID_128 FileReferenceNumber;
FILE_ID_128 ParentFileReferenceNumber;
USN Usn;
DWORD Reason;
DWORD SourceInfo;
DWORD RemainingExtents;
WORD NumberOfExtents;
WORD ExtentSize;
USN_RECORD_EXTENT Extents[1];
} USN_RECORD_V4, *PUSN_RECORD_V4;
Anggota
Header
Struktur USN_RECORD_COMMON_HEADER yang menjelaskan panjang rekaman, versi utama, dan versi minor untuk rekaman.
FileReferenceNumber
Nomor ordinal 128-bit dari file atau direktori yang catatan catatan ini berubah.
Nilai ini adalah nilai yang ditetapkan secara acak yang mengaitkan rekaman jurnal dengan file.
ParentFileReferenceNumber
Nomor ordinal 128-bit direktori tempat file atau direktori yang terkait dengan rekaman ini berada.
Nilai ini adalah nilai yang ditetapkan secara semena-mena yang mengaitkan rekaman jurnal dengan direktori induk.
Usn
USN dari catatan ini.
Reason
Bendera yang mengidentifikasi alasan perubahan yang telah terakumulasi dalam rekaman file atau jurnal direktori ini sejak file atau direktori dibuka.
Saat file atau direktori ditutup, rekaman USN akhir dihasilkan dengan kumpulan bendera USN_REASON_CLOSE . Perubahan berikutnya (misalnya, setelah operasi atau penghapusan terbuka berikutnya) memulai rekaman baru dengan serangkaian bendera alasan baru.
Operasi ganti nama atau pemindahan menghasilkan dua rekaman USN, satu yang merekam direktori induk lama untuk item tersebut, dan yang merekam induk baru.
Tabel berikut mengidentifikasi kemungkinan bendera.
SourceInfo
Informasi tambahan tentang sumber perubahan, diatur oleh FSCTL_MARK_HANDLE operasi DeviceIoControl .
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 catatan USN yang hanya ditetapkan oleh sumber yang diketahui, misalnya, filter antivirus.
Salah satu nilai berikut dapat diatur.
RemainingExtents
Jumlah jangkauan yang tersisa setelah rekaman USN_RECORD_V4 saat ini. Beberapa rekaman versi 4.0 mungkin diperlukan untuk menjelaskan semua jangkauan yang dimodifikasi untuk file tertentu. Ketika anggota RemainingExtents adalah 0, rekaman USN_RECORD_V4 saat ini adalah rekaman USN_RECORD_V4 terakhir untuk file tersebut. Entri USN_RECORD_V4 terakhir untuk file tertentu selalu diikuti oleh catatan USN_RECORD_V3 dengan setidaknya set bendera USN_REASON_CLOSE .
NumberOfExtents
Jumlah jangkauan dalam entri USN_RECORD_V4 saat ini.
ExtentSize
Ukuran setiap struktur USN_RECORD_EXTENT dalam anggota Extents , dalam byte.
Extents[1]
Array struktur USN_RECORD_EXTENT yang mewakili jangkauan dalam entri USN_RECORD_V4 .
Keterangan
Rekaman USN_RECORD_V4 hanya output saat pelacakan rentang diaktifkan dan ukuran file sama atau lebih besar dari nilai anggota RangeTrackFileSizeThreshold . Pengguna selalu menerima satu atau beberapa catatan USN_RECORD_V4 diikuti oleh satu catatan USN_RECORD_V3 .
Untuk memberikan kompatibilitas penerusan jalur dalam klien jurnal perubahan, Microsoft menyediakan nomor versi utama dan minor dari perangkat lunak jurnal perubahan dalam struktur USN_RECORD_V4 . Kode Anda harus memeriksa nilai-nilai ini, memeriksa kompatibilitasnya sendiri dengan perangkat lunak jurnal perubahan, dan dengan anggun menangani ketidakcocokan jika perlu.
Perubahan nomor versi minor menunjukkan bahwa anggota struktur USN_RECORD_V4 yang ada masih valid, tetapi anggota baru mungkin telah ditambahkan antara anggota yang berpenulis dan yang terakhir, yang merupakan string panjang variabel.
Untuk menangani perubahan seperti itu dengan anggun, kode Anda tidak boleh melakukan aritmatika pointer waktu kompilasi yang bergantung pada lokasi anggota terakhir. Misalnya, perubahan nomor versi minor membuat panggilan tidak dapat diandalkan sizeof(USN_RECORD)
. Sebagai gantinya, mengandalkan penghitungan run-time yang menggunakan anggota RecordLength .
Peningkatan nomor versi utama dari perangkat lunak jurnal perubahan menunjukkan bahwa struktur USN_RECORD_V4 mungkin telah mengalami perubahan besar, dan bahwa definisi saat ini mungkin tidak dapat diandalkan. Jika kode Anda mendeteksi perubahan nomor versi utama perangkat lunak jurnal perubahan, kode tidak boleh berfungsi dengan jurnal perubahan.
Untuk informasi selengkapnya, lihat Membuat, Memodifikasi, dan Menghapus Journal Perubahan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8.1 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2012 R2 [hanya aplikasi desktop] |
Header | winioctl.h (termasuk Windows.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk