From 85b85921b8095cca908b84e7eb5839de798bd318 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Fri, 26 Sep 2014 18:12:24 +0000 Subject: [PATCH] [NTFS] - 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 | 22 +++++++++++++++------- reactos/drivers/filesystems/ntfs/ntfs.h | 7 +++++++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/mft.c b/reactos/drivers/filesystems/ntfs/mft.c index 7e99ab2fa6d..9b587f4f7f5 100644 --- a/reactos/drivers/filesystems/ntfs/mft.c +++ b/reactos/drivers/filesystems/ntfs/mft.c @@ -645,18 +645,17 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, ULONGLONG MFTIndex, PUNICODE_STRING Fil } 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; - 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) @@ -695,4 +694,13 @@ NtfsLookupFile(PDEVICE_EXTENSION Vcb, 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 */ diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/reactos/drivers/filesystems/ntfs/ntfs.h index 5b1b3abce7f..22cadd4e771 100644 --- a/reactos/drivers/filesystems/ntfs/ntfs.h +++ b/reactos/drivers/filesystems/ntfs/ntfs.h @@ -634,6 +634,13 @@ NtfsLookupFile(PDEVICE_EXTENSION Vcb, 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 -- 2.17.1