Message262591
> 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? |
|
Date |
User |
Action |
Args |
2016-03-29 06:40:51 | eryksun | set | recipients:
+ eryksun, paul.moore, vstinner, tim.golden, jkloth, zach.ware, steve.dower |
2016-03-29 06:40:51 | eryksun | set | messageid: <1459233651.74.0.873932090831.issue26658@psf.upfronthosting.co.za> |
2016-03-29 06:40:51 | eryksun | link | issue26658 messages |
2016-03-29 06:40:50 | eryksun | create | |
|