Eryk Sun added the comment:

> I'm inclined to believe that this is a bug in the ImDisk device driver

Junctions, and other filesystem reparse points, are implemented by volume 
devices, not disk devices. NTFS and ReFS support reparse points, but FAT, 
FAT32, and exFAT do not. Does the current filesystem claim to support reparse 
points? Here's how to check this:

    import ctypes
    kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)

    FILE_SUPPORTS_REPARSE_POINTS = 0x00000080

    def volume_supports_reparse_points(root_path):
        flags = ctypes.c_uint()
        if not kernel32.GetVolumeInformationW(root_path,
                                              None, 0, None, None,
                                              ctypes.byref(flags),
                                              None , 0):
            raise ctypes.WinError(ctypes.get_last_error())
        return bool(flags.value & FILE_SUPPORTS_REPARSE_POINTS)

For example:

    >>> volume_supports_reparse_points('C:\\')
    True

Win32JunctionTests creates a junction to the "Lib/test" directory in the 
current directory. It should create a temporary target directory instead of 
using "Lib/test". 

I installed ImDisk Virtual Disk 2.0.9 and was able to create a valid junction 
on an NTFS RAM disk. What are the steps required to reproduce the problem?

----------
nosy: +eryksun

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue26658>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to