Udostępnij za pośrednictwem


Ponowne analizy tagów punktów

Każdy punkt ponownej analizy ma tag identyfikatora, dzięki czemu można efektywnie rozróżniać różne typy punktów ponownej analizy bez konieczności badania danych zdefiniowanych przez użytkownika w punkcie ponownej analizy. System używa zestawu wstępnie zdefiniowanych tagów i zakresu tagów zarezerwowanych dla firmy Microsoft. Jeśli podczas ustawiania punktu ponownej analizy użyjesz dowolnego z tagów zarezerwowanych, operacja zakończy się niepowodzeniem. Tagi nieuwzględniane w tych zakresach nie są zastrzeżone i są dostępne dla aplikacji.

Po ustawieniu punktu ponownej analizy należy oznaczyć dane, które mają zostać umieszczone w punkcie ponownej analizy. Po ustanowieniu punktu ponownej analizy nowa operacja zestawu zakończy się niepowodzeniem, jeśli tag dla nowych danych nie jest zgodny z tagiem dla istniejących danych. Jeśli tagi są zgodne, operacja ustawiania zastępuje istniejący punkt ponownej analizy.

Aby pobrać tag punktu ponownej analizy, użyj funkcji FindFirstFile. Jeśli element członkowski dwFileAttributes zawiera atrybut FILE_ATTRIBUTE_REPARSE_POINT, wówczas element członkowski dwReserved0 określa punkt ponownej analizy.

Zawartość tagu

Tagi ponownej analizy są przechowywane jako wartości DWORD. Bity definiują pewne atrybuty, jak pokazano na poniższym diagramie.

   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        |
  +-+-+-+-+-----------------------+-------------------------------+

Niski 16 bitów określa rodzaj punktu ponownej analizy. Wysokie 16 bitów mają 12 bitów zarezerwowanych do użycia w przyszłości i 4 bity, które oznaczają określone atrybuty tagów i dane reprezentowane przez punkt ponownej analizy. W poniższej tabeli opisano te bity.

Bit Opis
M Microsoft bit. Jeśli ten bit jest ustawiony, tag jest własnością firmy Microsoft. Wszystkie inne tagi muszą używać zera dla tego bitu.
R Zastrzeżony; musi być zero dla wszystkich tagów innych niż Microsoft.
N Nazwa bitu zastępczego. Jeśli ten bit jest ustawiony, plik lub katalog reprezentuje inną nazwę jednostki w systemie.

Istnieją następujące makra ułatwiające testowanie tagów:

Każde makro zwraca wartość niezerową, jeśli skojarzony bit jest ustawiony.

Poniżej przedstawiono wstępnie zdefiniowane wartości tagów ponownej analizy firmy Microsoft; są zdefiniowane w pliku 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

Aby zapewnić unikatowość tagów, firma Microsoft udostępnia mechanizm dystrybucji nowych tagów. Aby uzyskać więcej informacji, zobacz Installable File System (IFS) Kit.