NTFS 重解析點，微軟官方也譯作 zhcn 重分析點、重新解析點、重新分析點；zhtw 重新分析點、重新剖析點、重新分析指標httpswwwmicrosoftcomLanguagezhtwSearchaspx reparse point，是 NTFS 檔案系統中的一種物件型別。它在 Windows 2000 及之後版本中的 NTFS v30 及以上版本中可用。重解析點提供一種擴充套件 NTFS 檔案系統的方法。一個重解析點包含一個重解析標籤和資料，檔案系統過濾器（file system filter）可以按標籤解讀它。微軟提供了幾個預設標籤，包括 NTFS 符號連結、和 NTFS 卷掛載點。另外，在 Windows 2000 的中，重解析點被用作已移動檔案的佔位符。此外，它也可以被用作硬連結，並且不僅限於指向同分卷中的檔案，還可以指向任何本地分卷中的目錄。Microsoft Windows Vista Client Configuration Study Guide Wiley Publishing Inc 2007 p285 設計 一般情況： 硬連結：連結到一個檔案（MFT 記錄）。只要存在至少一個指向它的連結，資料會保持可用。 軟連結：連結到檔名（檔案路徑）。 軟連結 Windows Vista 支援新的符號連結能力。它取代了 Windows 2000 和 Windows XP 中的。它的設計目的是幫助遷移和提升與 UNIX 作業系統的應用程式的相容性。不同於，符號連結也可以指向一個檔案或遠端 SMB 網路路徑。此外，NTFS 符號連結提供了跨檔案系統的連結支援。但是，啟用跨主機的符號連結功能需要遠端系統也支援它，這使支援限制在 Windows Vista 及更高版本的 Windows 作業系統。 NTFS 符號連結 SYMLINK：本地或遠端，相對或絕對 SMB 檔案或路徑。Windows Server 2008 使用軟連線重定向 UsersAll Users ProgramData。符號連結可以指向不存在的目標，因為作業系統不會檢查目標是否存在。使用 mklink 或 mklink D 時，相對符號連結僅限於單個卷。 ，也稱軟連結：可用於同一臺計算機的同一個卷或不同卷的目錄的連結。不能用於對檔案的連線。底層用重解析點實現。使用 mklink J 建立 junction 點後，使用 Windows 資源管理器刪除它時，如果使用了 ShiftDelete，將立即刪除目標檔案 Windows 2000XP2003。 del my_junction 命令不應該使用，因為它會刪除目標目錄中的所有檔案。在 Windows Vista 及更高版本中，使用 junction 刪除是安全的。 卷裝載點（Volume Mount Points）：卷裝載點和前 2 者類似，只是更進一層：它能建立對整個卷的連結。 遠端儲存伺服器（Microsoft Remote Storage Server）：Windows 2000 的這個特效能利用一些規則來移除 NTFS 捲上不常用的檔案，放到存檔介質裡（比如 CDRW 或磁帶）。當它把檔案移出到 線下 或 半線下 的儲存介質上時，RSS 會自動建立指向這個存檔檔案的重解析點，以備日後使用。 硬連結 NTFS 硬連結：從 Windows NT 4 開始：多個路徑指向同一驅動器上的檔案。從 Windows 2000 開始，Windows API 包括一個 CreateHardLink 函式來建立硬連結，並且可用 DeleteFile 移除。所有 Windows NT 版本都可以使用 GetFileInformationByHandle 來確定一個檔案已關聯的硬連結數量。硬連結需要 NTFS 分割槽。執行在 Windows 上的類 Unix 模擬或軟體相容層（如 Cygwin 和基於 UNIX 應用程式的子系統）允許在 Windows 上使用 POSIX 介面。大多數現代作業系統不允許硬連結目錄，以避免無限遞迴目錄；而且，硬連結目錄可能導致父目錄的條目不一致；通常使用符號連結和達到此目的。硬連結只能對同一檔案系統上的檔案建立。如果需要建立到另一檔案系統的連結，應該使用符號連結。硬連結可以使用 mklink H 命令建立。 硬連結使用與原檔案相同的 MFT 記錄。新增一個硬連結會建立一個新的檔名屬性並增加硬連結計數器（每個新建立的檔案 1）。刪除一個硬連結會移除相應的檔名並將硬連結計數器 1。當計數器歸零時，檔案系統將刪除該檔案、釋放其佔用的磁碟空間及其 MFT 記錄。所有名稱屬性是獨立的，因此刪除、移動或重新命名檔案不會影響其他硬連結。 特性 卷掛載點 NTFS 卷掛載點類似 Unix 掛載點，將另一個檔案系統的根附加到一個目錄。在 NTFS 中，這允許額外的檔案系統不逐一佔用驅動器號（如 C、D）並掛載。 如果一個卷被掛在到另一個卷的現有目錄上，該目錄以前列出的內容將被隱藏，已掛載卷的根目錄將取代它。已掛載卷仍然有自己單獨分配的驅動器號。檔案系統不允許卷被手動互相掛載。卷掛載點可以持久或非持久存在，兩者區別是系統重啟後是否會自動重新掛載。 已掛載卷可能使用非 NTFS 的檔案系統，並可能有自己的安全設定和根據遠端檔案系統策略重新對映的訪問許可權。 目錄交接點 類似卷掛載點，但引用目標為檔案系統中的其他目錄而非其他卷。舉例來說，目錄 Cexampledir 有一個目錄 junction 屬性，其包含到 Dlinkeddir 的連結，因此當它被使用者模式的應用程式訪問時，將會自動引用 Dlinkeddir 目錄。此功能在概念上類似 Unix 中對目錄的符號連結，除了 NTFS 中的目標必須始終是另一個目錄（典型的 Unix 檔案系統允許符號連結的目標是任何型別的檔案）。 目錄交接點（可以在命令列提示符中使用 MKLINK J junctionName targetDirectory 建立，以及用 RMDIR junctionName 移除）是持久的，並在伺服器側解析，它們與本地檔案系統或掛載內容所在的父卷共享相同的安全領域；不過目錄交接點本身可能有不同的安全設定。取消一個目錄交接點連結不會刪除目標目錄中的檔案。 某些目錄交接點在 Windows Vista 上已預設安裝，目的是保證對以前 Windows 版本的相容性，例如系統分割槽根目錄中的 Documents and Settings 就是連結到同個卷根目錄中的的 Users 物理目錄。不過它在預設情況下是隱藏的，並且設定了安全設定以要求 Windows 檔案資源管理器拒絕在外殼和大多數應用程式中開啟它，除了本地內建的 SYSTEM 使用者或本地管理員組（這兩個使用者帳戶用於在系統中安裝軟體）。這個額外的安全性限制是為了避免使用者誤入此目錄和看到、誤以為並刪除明顯重複的檔案。目錄交接點的語義不同於硬連結，對目標內容和引用容器本身都不存在引用計數。 目錄交接點是一種軟連結（它們可以持久存在，哪怕目標目錄被刪除），可以作為一種有限的符號連結使用（對目標位置有所約束），但它是一個最佳化的版本，重解析點的設計允許更快地處理它，比 NTFS 符號連結具有更小的系統開銷，並且可以在伺服器側解析（當發現於遠端共享目錄時）。 符號連結 符號連結（或軟連結）在 Windows Vista 中被引入。符號連結在客戶端側解析。因此當符號連結被共享時，目標受到客戶端而非伺服器的訪問限制。 符號連結的建立可以指向檔案（用 MKLINK 符號連結 目標檔案 建立）或目錄（用 MKLINK D 符號連結 目標目錄 建立），但不同於 Unix 符號連結，建立連結時必須提供連結的型別。符號連結建立時不需要目標存在或可用：在符號連結可用時才會檢查可用性，NTFS 也會在那時檢查型別（檔案 目錄）是否正確；如果現有目標的型別錯誤，將會返回 找不到 錯誤。 它們還可引用遠端主機上的共享目錄或檔案，以及共享項目錄中的子目錄：它們的目標不會立即掛載，只在使用 CodeOpenFile Code 或 CodeCreateFile Code API 時臨時請求。 分散式連結跟蹤（DLT） 分散式連結跟蹤允許應用程式跟蹤檔案、快捷方式和 OLE 連結，即使它已被重新命名或移動到同個機器、域或工作組中的另一個分卷。跟蹤實現為一個系統服務，使用物件識別符號（OID）的索引儲存在一個元檔案中。當應用程式請求跟蹤一個檔案或目錄時，跟蹤服務建立指向該檔案的 OID 記錄。在檔案被重新命名、複製或移動到一個 NTFS v3 分卷時，物件 ID 也將被複制。因此跟蹤服務最終能找到目標檔案。 單例項儲存（SIS） 當多個目錄有不同但類似的檔案時，這些檔案可能有著相同的內容。單例項儲存允許相同的檔案被合併為一個檔案，並建立一個到合併後文件的引用。SIS 包括：一個檔案系統篩選器，它管理複製、修改和合並檔案；一個使用者空間服務（或稱 groveler），它搜尋相同並需要合併的檔案。SIS 的主要設計目的是遠端安裝的伺服器，其存在的多個安裝映象可能包含許多相同的檔案，SISK 可以合併這些。不同於硬連結，每個檔案仍然是不同的；對一個副本的更改不會改變其他的副本。這類似於寫時複製，但那個技術是記憶體複製並未真正完成，直至副本被修改。 分層儲存管理（HSM） 是一種轉移檔案的手段，它根據檔案熱度將資料在普通與昂貴的儲存介質間轉移。在下次訪問該檔案時，該檔案的重解析點會確定所需的儲存介質並從那裡檢索。citation needed 原生結構化儲存（NSS） NSS 原是 ActiveX 文件儲存技術，它已被微軟停止使用。它允許 ActiveX 文件儲存在 ActiveX 內部使用的多流格式中。NSS 檔案系統篩選器可以被載入並處理透明傳輸到應用該程式的多個流，並在檔案被傳輸到非 NTFS 格式的磁碟卷時將多個流變為單個流。Saville John date unknown Windows Vista（及其後）的預設資料夾位置變化 與 Windows XP（Windows NT 5x）相比，在 Windows 7、Windows 10 等作業系統（Windows NT 6xWindows NT 10x）中，存放使用者資料（user data）和系統資料（system data）的預設資料夾位置發生變化。例如，在 Windows XP 中存放使用者資料的檔案為 SystemDriveDocuments and Settings；在 Windows 7 中則為 SystemDriverUser。這樣的變化無疑對以前應用程式能否在 Windows 7 下順利執行帶來相容性問題。為了最大程度地保證對以前在 Windows XP 執行的程式的相容性，在 Windows 7 中採用了 junction points（連線點）技術。透過這個技術，原來在 Windows XP 下執行的程式對 SystemDriveDocuments and Settings 資料夾下的資料存取操作，能自動地更改到 SystemDriverUser 資料夾。 xp、windows2003 中的路徑 win7、windows2008 中的路徑 Documents and Settings Users Documents and SettingsDefault User 或 LOGONSERVERNETLOGONDefault User UsersDefault 或 LOGONSERVERNETLOGONDefault Documents and SettingsuserMy Documents UsersuserDocuments Documents and SettingsuserMy DocumentsMy Pictures UsersuserPictures Documents and SettingsuserMy DocumentsMy Music UsersuserMusic Documents and SettingsuserFavorites UsersuserFavorites NA UsersuserContacts NA UsersuserDownloads NA UsersuserSavedGames Documents and SettingsuserApplication Data UsersuserAppDataRoaming Documents and SettingsuserLocal SettingsApplication Data UsersuserAppDataLocal Documents and SettingsuserStart Menu UsersuserAppDataRoamingMicrosoftWindowsStart Menu Documents and SettingsAll Users UsersPublic Documents and SettingsAll UsersStart Menu ProgramDataMicrosoftWindowsStart Menu Documents and SettingsAll UsersDesktop UsersPublicDesktop 程式設計解析 重解析點 tag 是個 DWORD，為獲取它，使用 FindFirstFile 函式，如果輸出引數的 dwFileAttributes 結構域包含了 FILE_ATTRIBUTE_REPARSE_POINT 屬性，那麼 dwReserved0 結構域就是重解析點的 tag 值。 為判斷檔案系統是否支援重解析點，呼叫 GetVolumeInformation 函式檢查 FILE_SUPPORTS_REPARSE_POINTS 位元標誌。 DeviceIoControl 函式可以設定、修改、獲取、刪除重解析點。 GetFileAttributes 函式可判斷一個檔案或目錄是否包含重解析點。 CreateFile 函式帶著 FILE_FLAG_OPEN_REPARSE_POINT，可以開啟一個重解析點檔案。 參見 NTFS 符號連結 NTFS junction 點 NTFS 卷掛載點 符號連結 參考資料 外部連結 Reparse Point Support in Windows 2000Based Clusters Reparse Points in the Microsoft Developer Network MSDN Library Category 磁碟檔案系統 Category 微軟磁碟檔案系統