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_OBJECT

FILE_REPARSE_POINT_INFORMATION

FLT_PARAMETERS untuk IRP_MJ_FILE_SYSTEM_CONTROL

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltTagFile

FltTagFileEx

FltUntagFile

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER_EX

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile