Allow direct opening of a reparse point, but don't handle yet reparse itself

svn path=/trunk/; revision=65580
This commit is contained in:
Pierre Schweitzer 2014-12-07 14:05:47 +00:00
parent ce76daabd9
commit 14863b54d6

View file

@ -245,6 +245,23 @@ NtfsCreateFile(PDEVICE_OBJECT DeviceObject,
return STATUS_NOT_A_DIRECTORY;
}
/* Properly handle reparse points:
* - likely overwrite FO name
* - return STATUS_REPARSE to IO manager
* - Do we have to attach reparse data to Irp->Tail.Overlay.AuxiliaryBuffer?
* See: http://www.osronline.com/showThread.cfm?link=6623
*
* If it is a reparse point & FILE_OPEN_REPARSE_POINT, then allow opening it
* as a normal file.
*/
if (NtfsFCBIsReparsePoint(Fcb) &&
((RequestedOptions & FILE_OPEN_REPARSE_POINT) != FILE_OPEN_REPARSE_POINT))
{
DPRINT1("Reparse point not handled!\n");
NtfsCloseFile(DeviceExt, FileObject);
return STATUS_NOT_IMPLEMENTED;
}
/* HUGLY HACK: remain RO so far... */
if (RequestedDisposition == FILE_OVERWRITE ||
RequestedDisposition == FILE_OVERWRITE_IF ||