From 8b651ad6d96f21df3ba2a42c6b2a75cbc89c2add Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Mon, 24 Aug 2015 09:52:30 +0000 Subject: [PATCH] [NTFS] Support full data stream name on open (i.e., stream name finished with :$DATA) svn path=/trunk/; revision=68811 --- reactos/drivers/filesystems/ntfs/fcb.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/reactos/drivers/filesystems/ntfs/fcb.c b/reactos/drivers/filesystems/ntfs/fcb.c index 4a4d79bdb67..a1a47b28fcd 100644 --- a/reactos/drivers/filesystems/ntfs/fcb.c +++ b/reactos/drivers/filesystems/ntfs/fcb.c @@ -545,7 +545,7 @@ NtfsDirFindFile(PNTFS_VCB Vcb, UNICODE_STRING File; PFILE_RECORD_HEADER FileRecord; ULONGLONG MFTIndex; - PWSTR Colon; + PWSTR Colon, OldColon; PNTFS_ATTR_CONTEXT DataContext; USHORT Length = 0; @@ -561,6 +561,23 @@ NtfsDirFindFile(PNTFS_VCB Vcb, Length = File.Length; File.Length = (Colon - FileToFind) * sizeof(WCHAR); + if (_wcsicmp(Colon + 1, L"$DATA") == 0) + { + OldColon = Colon; + Colon[0] = UNICODE_NULL; + Colon = wcsrchr(FileToFind, L':'); + if (Colon != NULL) + { + Length = File.Length; + File.Length = (Colon - FileToFind) * sizeof(WCHAR); + } + else + { + Colon = OldColon; + Colon[0] = L':'; + } + } + /* Skip colon */ ++Colon; DPRINT1("Will now look for file '%wZ' with stream '%S'\n", &File, Colon);