[NTFS]
authorPierre Schweitzer <pierre@reactos.org>
Fri, 26 Sep 2014 18:12:24 +0000 (18:12 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Fri, 26 Sep 2014 18:12:24 +0000 (18:12 +0000)
- Divert NtfsLookupFile() as NtfsLookupFileAt() to allow opening relatives to a current MFT record.
- Reimplement NtfsLookupFile() using NtfsLookupFileAt()

svn path=/trunk/; revision=64316

reactos/drivers/filesystems/ntfs/mft.c
reactos/drivers/filesystems/ntfs/ntfs.h

index 7e99ab2..9b587f4 100644 (file)
@@ -645,18 +645,17 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, ULONGLONG MFTIndex, PUNICODE_STRING Fil
 }
 
 NTSTATUS
 }
 
 NTSTATUS
-NtfsLookupFile(PDEVICE_EXTENSION Vcb,
-               PUNICODE_STRING PathName,
-               PFILE_RECORD_HEADER *FileRecord,
-               PNTFS_ATTR_CONTEXT *DataContext)
+NtfsLookupFileAt(PDEVICE_EXTENSION Vcb,
+                 PUNICODE_STRING PathName,
+                 PFILE_RECORD_HEADER *FileRecord,
+                 PNTFS_ATTR_CONTEXT *DataContext,
+                 ULONGLONG CurrentMFTIndex)
 {
 {
-    ULONGLONG CurrentMFTIndex;
     UNICODE_STRING Current, Remaining;
     NTSTATUS Status;
 
     UNICODE_STRING Current, Remaining;
     NTSTATUS Status;
 
-    DPRINT1("NtfsLookupFile(%p, %wZ, %p)\n", Vcb, PathName, FileRecord);
+    DPRINT1("NtfsLookupFileAt(%p, %wZ, %p, %p, %I64x)\n", Vcb, PathName, FileRecord, DataContext, CurrentMFTIndex);
 
 
-    CurrentMFTIndex = NTFS_FILE_ROOT;
     FsRtlDissectName(*PathName, &Current, &Remaining);
 
     while (Current.Length != 0)
     FsRtlDissectName(*PathName, &Current, &Remaining);
 
     while (Current.Length != 0)
@@ -695,4 +694,13 @@ NtfsLookupFile(PDEVICE_EXTENSION Vcb,
 
     return STATUS_SUCCESS;
 }
 
     return STATUS_SUCCESS;
 }
+
+NTSTATUS
+NtfsLookupFile(PDEVICE_EXTENSION Vcb,
+               PUNICODE_STRING PathName,
+               PFILE_RECORD_HEADER *FileRecord,
+               PNTFS_ATTR_CONTEXT *DataContext)
+{
+    return NtfsLookupFileAt(Vcb, PathName, FileRecord, DataContext, NTFS_FILE_ROOT);
+}
 /* EOF */
 /* EOF */
index 5b1b3ab..22cadd4 100644 (file)
@@ -634,6 +634,13 @@ NtfsLookupFile(PDEVICE_EXTENSION Vcb,
                PFILE_RECORD_HEADER *FileRecord,
                PNTFS_ATTR_CONTEXT *DataContext);
 
                PFILE_RECORD_HEADER *FileRecord,
                PNTFS_ATTR_CONTEXT *DataContext);
 
+NTSTATUS
+NtfsLookupFileAt(PDEVICE_EXTENSION Vcb,
+                 PUNICODE_STRING PathName,
+                 PFILE_RECORD_HEADER *FileRecord,
+                 PNTFS_ATTR_CONTEXT *DataContext,
+                 ULONGLONG CurrentMFTIndex);
+
 /* misc.c */
 
 BOOLEAN
 /* misc.c */
 
 BOOLEAN