3. Dowiązania w Windowsie

Twarde dowiązania w systemie operacyjnym Windows nie są obsługiwane na katalogach. Aby stworzyć twarde dowiązanie, należy użyć funkcji CreateHardLink lub ln.

Dodatkowo występują także dowiązanie miękkie, czyli tak zwane junctions. "Tłumaczą" one ścieżki w taki sposób, że jeżeli przykładowo katalog c:\temp jest dowiązaniem wskazującym na c:\windows\temp, to program czytający plik c:\temp\a.in naprawdę przeczyta plik c:\windows\temp\a.in. Jest to bardzo użyteczne nie tylko do lepszego układania danych, ale także do stworzenia prostych ścieżek do katalogów, które znajdują się głęboko w hierarchii.

Dowiązania miękkie bazują na mechanizmie reparse points (nie istnieje znane nam dobre polskie tłumaczenie tego terminu, więc pozostaniemy przy oryginale anglojęzycznym). Reparse point to plik lub katalog który posiada atrybut reparse data, w którym jest informacja o lokalizacji oryginalnego pliku. Dodatkowo każdy plik reparse posiada unikalny reparse tag, dzięki czemu jeżeli następuje po raz któryś odwołanie do tego samego pliku reparse, to system nie musi odczytywać informacji z reparse data.

Kiedy NTFS napotyka plik typu reparse to zwraca reparse status code, który informuje system plików, aby ten przegjrzał reparse data. Program odpowiedzialny za dostarczanie danych (czyli system plików lub wejścia/wyjścia) wybiera wówczas jedną z dwóch możliwości: