From: Trevor Thompson Date: Thu, 27 Jul 2017 11:35:50 +0000 (+0000) Subject: [NTFS] - After creating a new file, update creation disposition before calling NtfsCr... X-Git-Tag: 0.4.9-dev~693^2~15 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=9cef425464df506c5475a47e3723f9de507f1341 [NTFS] - After creating a new file, update creation disposition before calling NtfsCreateFile() recursively. This fixes creating a file via right-clicking in a folder. svn path=/branches/GSoC_2016/NTFS/; revision=75423 --- diff --git a/drivers/filesystems/ntfs/create.c b/drivers/filesystems/ntfs/create.c index f5ca1027fc0..a98afc67b7f 100644 --- a/drivers/filesystems/ntfs/create.c +++ b/drivers/filesystems/ntfs/create.c @@ -580,8 +580,18 @@ NtfsCreateFile(PDEVICE_OBJECT DeviceObject, return Status; } - // Now we should be able to open the file - return NtfsCreateFile(DeviceObject, IrpContext); + // Before we open the file we just created, we need to change the disposition (upper 8 bits of ULONG) + // from create to open, since we already created the file + Stack->Parameters.Create.Options = (ULONG)FILE_OPEN << 24 | RequestedOptions; + + // Now we should be able to open the file using NtfsCreateFile() + Status = NtfsCreateFile(DeviceObject, IrpContext); + if (NT_SUCCESS(Status)) + { + // We need to change Irp->IoStatus.Information to reflect creation + Irp->IoStatus.Information = FILE_CREATED; + } + return Status; } }