Message349502
> How about adding a separate function such as nt.read_reparse_point()
If we support reading junctions, this should be using the substitute name (with \??\ replaced by \\?\) instead of the print name. For both symlinks and junctions, [MS-FSCC] 2.1.2 states that the print name SHOULD be informative, not that it MUST be, where SHOULD and MUST are defined by RFC2119. The print name can be non-informative for some reason (e.g. maybe to use the whole 16 KiB buffer for the target path.) For symlinks that's not normally observed, since CreateSymbolicLinkW is conservative. For junctions, applications and frameworks use a low-level IOCTL to set them, and they're not necessarily bothering to set a print name. For example, PowerShell omits it:
PS C:\Mount> new-item Spam -type junction -value C:\Temp\Spam | out-null
PS C:\Mount> fsutil.exe reparsepoint query spam
Reparse Tag Value : 0xa0000003
Tag value: Microsoft
Tag value: Name Surrogate
Tag value: Mount Point
Substitue Name offset: 0
Substitue Name length: 32
Print Name offset: 34
Print Name Length: 0
Substitute Name: \??\C:\Temp\Spam
This mount point works fine despite the lack of a print name. |
|
Date |
User |
Action |
Args |
2019-08-12 22:47:52 | eryksun | set | recipients:
+ eryksun, paul.moore, tim.golden, zach.ware, steve.dower |
2019-08-12 22:47:52 | eryksun | set | messageid: <1565650072.62.0.0941014718801.issue37834@roundup.psfhosted.org> |
2019-08-12 22:47:52 | eryksun | link | issue37834 messages |
2019-08-12 22:47:52 | eryksun | create | |
|