NTFS Junctions, trouble understanding the API

2020-04-11 07:54发布

问题:

Update: This question has evolved into a question about the NTFS filesystem filter driver how to use the Win32 API in backup applications and other programs that need to know what a file really is on disk? Junctions and reparse points are key concepts that I needed to consider and are the most confusing thing in the NTFS filesystem.

The original question follows:


  1. What is the Win32 API used to detect if a directory is a junction?
  2. 'Where' (for lack of better understanding) in the NTFS hierarchy are junctions stored?
  3. If I create a junction c:\thejunction_mydir do both directories become junctions of one-another? i.e. the created and the referenced

回答1:

How do I detect a reparse point?

Determining Whether a Directory Is a Mounted Folder is the answer. It shows how to determine whether a folder is a reparse point, and thus if it is also potentially: a Junction or a Symlink or a Mount-point.