struktur REPARSE_DATA_BUFFER (ntifs.h)
Struktur REPARSE_DATA_BUFFER berisi data titik pemilah ulang untuk titik pemilah ulang Microsoft. Anda dapat menggunakan REPARSE_DATA_BUFFER_EX sebagai gantinya. (Pemilik titik reparse pihak ketiga harus menggunakan struktur REPARSE_GUID_DATA_BUFFER sebagai gantinya.)
Sintaks
typedef struct _REPARSE_DATA_BUFFER {
ULONG ReparseTag;
USHORT ReparseDataLength;
USHORT Reserved;
union {
struct {
USHORT SubstituteNameOffset;
USHORT SubstituteNameLength;
USHORT PrintNameOffset;
USHORT PrintNameLength;
ULONG Flags;
WCHAR PathBuffer[1];
} SymbolicLinkReparseBuffer;
struct {
USHORT SubstituteNameOffset;
USHORT SubstituteNameLength;
USHORT PrintNameOffset;
USHORT PrintNameLength;
WCHAR PathBuffer[1];
} MountPointReparseBuffer;
struct {
UCHAR DataBuffer[1];
} GenericReparseBuffer;
} DUMMYUNIONNAME;
} REPARSE_DATA_BUFFER, *PREPARSE_DATA_BUFFER;
Anggota
ReparseTag
Pilah ulang tag titik. Harus berupa tag titik pemilah ulang Microsoft. (Lihat bagian Keterangan berikut.)
ReparseDataLength
Ukuran, dalam byte, dari data yang dipilah ulang di buffer tempat DataBuffer menunjuk.
Reserved
Panjang, dalam byte, dari bagian yang tidak dipisahkan dari nama file yang diarahkan oleh anggota FileName dari objek file terkait. Untuk informasi selengkapnya tentang anggota FileName , lihat FILE_OBJECT<. Anggota ini hanya valid untuk membuat operasi ketika I/O gagal dengan STATUS_REPARSE. Untuk semua tujuan lain, seperti mengatur atau mengkueri titik pemilah ulang untuk data yang dipilah ulang, anggota ini diperlakukan sebagai dicadangkan.
DUMMYUNIONNAME
DUMMYUNIONNAME.SymbolicLinkReparseBuffer
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameOffset
Offset, dalam byte, dari string nama pengganti di array PathBuffer . Perhatikan bahwa offset ini harus dibagi berdasarkan sizeof(WCHAR) untuk mendapatkan indeks array.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.SubstituteNameLength
Panjang, dalam byte, dari string nama pengganti. Jika string ini dihentikan NULL, SubstituteNameLength tidak menyertakan ruang untuk terminator UNICODE_NULL.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameOffset
Offset, dalam byte, dari string nama cetak di array PathBuffer . Perhatikan bahwa offset ini harus dibagi berdasarkan sizeof(WCHAR) untuk mendapatkan indeks array.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PrintNameLength
Panjang, dalam byte, dari string nama cetak. Jika string ini dihentikan NULL, PrintNameLength tidak menyertakan ruang untuk terminator UNICODE_NULL.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.Flags
Menunjukkan apakah tautan simbolis absolut atau relatif. Jika Bendera berisi SYMLINK_FLAG_RELATIVE, tautan simbolis yang terkandung dalam array PathBuffer (pada offset SubstituteNameOffset) diproses sebagai tautan simbolis relatif; jika tidak, ini diproses sebagai tautan simbolis absolut.
DUMMYUNIONNAME.SymbolicLinkReparseBuffer.PathBuffer[1]
Karakter pertama string jalur. Karakter ini diikuti dalam memori oleh sisa string. String jalur berisi string nama pengganti dan string nama cetak. Nama pengganti dan string nama cetak dapat muncul dalam urutan apa pun di PathBuffer. Untuk menemukan string nama pengganti dan nama cetak di PathBuffer, gunakan anggota SubstituteNameOffset, SubstituteNameLength, PrintNameOffset, dan PrintNameLength .
DUMMYUNIONNAME.MountPointReparseBuffer
DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameOffset
Offset, dalam byte, dari string nama pengganti di array PathBuffer . Perhatikan bahwa offset ini harus dibagi berdasarkan sizeof(WCHAR) untuk mendapatkan indeks array.
DUMMYUNIONNAME.MountPointReparseBuffer.SubstituteNameLength
Panjang, dalam byte, dari string nama pengganti. Jika string ini dihentikan NULL, SubstituteNameLength tidak menyertakan ruang untuk terminator UNICODE_NULL.
DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameOffset
Offset, dalam byte, dari string nama cetak di array PathBuffer . Perhatikan bahwa offset ini harus dibagi berdasarkan sizeof(WCHAR) untuk mendapatkan indeks array.
DUMMYUNIONNAME.MountPointReparseBuffer.PrintNameLength
Panjang, dalam byte, dari string nama cetak. Jika string ini dihentikan NULL, PrintNameLength tidak menyertakan ruang untuk terminator UNICODE_NULL.
DUMMYUNIONNAME.MountPointReparseBuffer.PathBuffer[1]
Karakter pertama string jalur. Karakter ini diikuti dalam memori oleh sisa string. String jalur berisi string nama pengganti dan string nama cetak. Nama pengganti dan string nama cetak dapat muncul dalam urutan apa pun di PathBuffer. Untuk menemukan string nama pengganti dan nama cetak di PathBuffer, gunakan anggota SubstituteNameOffset, SubstituteNameLength, PrintNameOffset, dan PrintNameLength .
DUMMYUNIONNAME.GenericReparseBuffer
DUMMYUNIONNAME.GenericReparseBuffer.DataBuffer[1]
Penunjuk ke buffer yang berisi data yang ditentukan Microsoft untuk titik pemilah ulang.
Keterangan
Struktur REPARSE_DATA_BUFFER digunakan oleh sistem file Microsoft, filter, dan driver minifilter, serta manajer I/O, untuk menyimpan data untuk titik pemisahan ulang.
Struktur ini hanya dapat digunakan untuk titik pemisahan ulang Microsoft. Pemilik titik reparse pihak ketiga harus menggunakan struktur REPARSE_GUID_DATA_BUFFER sebagai gantinya.
Titik reparse Microsoft dapat menggunakan struktur REPARSE_DATA_BUFFER atau struktur REPARSE_GUID_DATA_BUFFER.
Dari penyatuan, Anda dapat menggunakan struktur GenericReparseBuffer untuk menginterpretasikan payload untuk tag IO_REPARSE_TAG_XXX apa pun, atau secara opsional menggunakan salah satu struktur lain dalam serikat sebagai berikut:
Gunakan struktur SymbolicLinkReparseBuffer saat FileTag IO_REPARSE_TAG_SYMLINK.
Gunakan struktur MountPointReparseBuffer saat FileTag IO_REPARSE_TAG_MOUNT_POINT.
Untuk informasi selengkapnya tentang tag titik pemilah ulang, lihat dokumentasi Microsoft Windows SDK.
Persyaratan
Persyaratan | Nilai |
---|---|
Header | ntifs.h (termasuk Ntifs.h, Fltkernel.h) |
Lihat juga
FILE_REPARSE_POINT_INFORMATION
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