Pilah Ulang Tag Titik

Setiap titik reparse memiliki tag pengidentifikasi sehingga Anda dapat membedakan secara efisien antara berbagai jenis titik reparse, tanpa harus memeriksa data yang ditentukan pengguna di titik pemilah ulang. Sistem ini menggunakan sekumpulan tag yang telah ditentukan sebelumnya dan berbagai tag yang disediakan untuk Microsoft. Jika Anda menggunakan salah satu tag yang dipesan saat mengatur titik pemisahan ulang, operasi akan gagal. Tag yang tidak disertakan dalam rentang ini tidak dicadangkan dan tersedia untuk aplikasi Anda.

Saat Anda mengatur titik pemilah ulang, Anda harus menandai data yang akan ditempatkan di titik pemilah ulang. Setelah titik pemilahan ulang dibuat, operasi set baru gagal jika tag untuk data baru tidak cocok dengan tag untuk data yang ada. Jika tag cocok, operasi set akan menimpa titik pemisahan ulang yang ada.

Untuk mengambil tag titik reparse, gunakan fungsi FindFirstFile . Jika anggota dwFileAttributes menyertakan atribut FILE_ATTRIBUTE_REPARSE_POINT , maka anggota dwReserved0 menentukan titik pemilah ulang.

Isi Tag

Tag reparse disimpan sebagai nilai DWORD . Bit menentukan atribut tertentu, seperti yang ditunjukkan dalam diagram berikut.

   3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
   1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
  +-+-+-+-+-----------------------+-------------------------------+
  |M|R|N|R|     Reserved bits     |      Reparse tag value        |
  +-+-+-+-+-----------------------+-------------------------------+

16 bit rendah menentukan jenis titik pemilah ulang. 16 bit tinggi memiliki 12 bit yang dicadangkan untuk digunakan di masa mendatang dan 4 bit yang menunjukkan atribut tertentu dari tag dan data yang diwakili oleh titik pemilahan ulang. Tabel berikut ini menjelaskan bit ini.

Bit Deskripsi
M Bit Microsoft. Jika bit ini diatur, tag dimiliki oleh Microsoft. Semua tag lain harus menggunakan nol untuk bit ini.
R Dipesan; harus nol untuk semua tag non-Microsoft.
N Nama bit pengganti. Jika bit ini diatur, file atau direktori mewakili entitas bernama lain dalam sistem.

Makro berikut ini ada untuk membantu dalam menguji tag:

Setiap makro mengembalikan nilai bukan nol jika bit terkait diatur.

Berikut ini adalah nilai tag pemisahan ulang Microsoft yang telah ditentukan sebelumnya; mereka didefinisikan dalam WinNT.h:

  • IO_REPARSE_TAG_AF_UNIX
  • IO_REPARSE_TAG_APPEXECLINK
  • IO_REPARSE_TAG_CLOUD
  • IO_REPARSE_TAG_CLOUD_1
  • IO_REPARSE_TAG_CLOUD_2
  • IO_REPARSE_TAG_CLOUD_3
  • IO_REPARSE_TAG_CLOUD_4
  • IO_REPARSE_TAG_CLOUD_5
  • IO_REPARSE_TAG_CLOUD_6
  • IO_REPARSE_TAG_CLOUD_7
  • IO_REPARSE_TAG_CLOUD_8
  • IO_REPARSE_TAG_CLOUD_9
  • IO_REPARSE_TAG_CLOUD_A
  • IO_REPARSE_TAG_CLOUD_B
  • IO_REPARSE_TAG_CLOUD_C
  • IO_REPARSE_TAG_CLOUD_D
  • IO_REPARSE_TAG_CLOUD_E
  • IO_REPARSE_TAG_CLOUD_F
  • IO_REPARSE_TAG_CLOUD_MASK
  • IO_REPARSE_TAG_CSV
  • IO_REPARSE_TAG_DEDUP
  • IO_REPARSE_TAG_DFS
  • IO_REPARSE_TAG_DFSR
  • IO_REPARSE_TAG_FILE_PLACEHOLDER
  • IO_REPARSE_TAG_GLOBAL_REPARSE
  • IO_REPARSE_TAG_HSM
  • IO_REPARSE_TAG_HSM2
  • IO_REPARSE_TAG_MOUNT_POINT
  • IO_REPARSE_TAG_NFS
  • IO_REPARSE_TAG_ONEDRIVE
  • IO_REPARSE_TAG_PROJFS
  • IO_REPARSE_TAG_PROJFS_TOMBSTONE
  • IO_REPARSE_TAG_SIS
  • IO_REPARSE_TAG_STORAGE_SYNC
  • IO_REPARSE_TAG_SYMLINK
  • IO_REPARSE_TAG_UNHANDLED
  • IO_REPARSE_TAG_WCI
  • IO_REPARSE_TAG_WCI_1
  • IO_REPARSE_TAG_WCI_LINK
  • IO_REPARSE_TAG_WCI_LINK_1
  • IO_REPARSE_TAG_WCI_TOMBSTONE
  • IO_REPARSE_TAG_WIM
  • IO_REPARSE_TAG_WOF

Untuk memastikan keunikan tag, Microsoft menyediakan mekanisme untuk mendistribusikan tag baru. Untuk informasi selengkapnya, lihat Kit Sistem File (IFS) yang Dapat Diinstal.