How can I create an NTFS junction point in Windows XP?
Try junction utility from Sysinternals, it's available on W2k+
Is your definition of junction point a directory that is hardlinked to another one?
If so it is simple
mklink /J <new directory to be linked> <target directory>
After this there is no distinction between the directories. They have the same MFT_REF (from http://en.wikipedia.org/wiki/NTFS_symbolic_link).
fsutil can also be helpful to query reparse-points and make hardlinks.
If you wanted to know how to programmatically do this, you can us NTFS storage driver IOCTL calls on the volume handle. But it would be easier to just call
Be advised that you have to have write and modify privileges for the target directory. You will need to run cmd.exe elevated for it to work.
You may also use Link Shell Extension as a GUI-oriented interface. It can create junctions, hard links and even symlinks on Windows XP if you install the NTFS 5 filter driver from Masatoshi Kimura as described. http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Here's the "live" link for junction.exe.
NATIVE Windows XP, 7, & 8 COMMAND:
mklink /J <oldpath(link)> <newpath(target)>
newpath absolute, you'll be able to move link without breaking the pointer to the
newpath. If you make the
newpath relative, you'll be able prevent breaking the link, as long as you move BOTH the link and target TOGETHER and maintain their relative paths.
You create junction point with
REPARSE_MOUNTPOINT_DATA_BUFFER* pReparseInfo = // ... pReparseInfo->ReparseTag = IO_REPARSE_TAG_MOUNT_POINT; // ... DeviceIoControl(..., FSCTL_SET_REPARSE_POINTFSCTL_SET_REPARSE_POINT, pReparseInfo, ...
pReparseInfo points to
REPARSE_MOUNTPOINT_DATA_BUFFER structure you need to provide.
MSDN article has a community provided code snippet at the bottom of the page that shows how to use the API.
You can make NTFS junction with special software. I recommend Link Shell Extension (LSE). It is freeware and easy to use. It also has good documentation with screenshots of all steps.