Author: pschweitzer
Date: Sun Dec 7 14:05:47 2014
New Revision: 65580
URL:
http://svn.reactos.org/svn/reactos?rev=65580&view=rev
Log:
[NTFS]
Allow direct opening of a reparse point, but don't handle yet reparse itself
Modified:
trunk/reactos/drivers/filesystems/ntfs/create.c
Modified: trunk/reactos/drivers/filesystems/ntfs/create.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/c…
==============================================================================
--- trunk/reactos/drivers/filesystems/ntfs/create.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/ntfs/create.c [iso-8859-1] Sun Dec 7 14:05:47 2014
@@ -245,6 +245,23 @@
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 ||