Return found FCB on successful file opening

svn path=/trunk/; revision=64678
This commit is contained in:
Pierre Schweitzer 2014-10-11 18:00:46 +00:00
parent 33bad414bc
commit 6df3ae7aff

View file

@ -78,14 +78,17 @@ static
NTSTATUS NTSTATUS
NtfsOpenFile(PDEVICE_EXTENSION DeviceExt, NtfsOpenFile(PDEVICE_EXTENSION DeviceExt,
PFILE_OBJECT FileObject, PFILE_OBJECT FileObject,
PWSTR FileName) PWSTR FileName,
PNTFS_FCB * FoundFCB)
{ {
PNTFS_FCB ParentFcb; PNTFS_FCB ParentFcb;
PNTFS_FCB Fcb; PNTFS_FCB Fcb;
NTSTATUS Status; NTSTATUS Status;
PWSTR AbsFileName = NULL; PWSTR AbsFileName = NULL;
DPRINT("NtfsOpenFile(%p, %p, %S)\n", DeviceExt, FileObject, FileName); DPRINT1("NtfsOpenFile(%p, %p, %S)\n", DeviceExt, FileObject, FileName);
*FoundFCB = NULL;
if (FileObject->RelatedFileObject) if (FileObject->RelatedFileObject)
{ {
@ -143,6 +146,8 @@ NtfsOpenFile(PDEVICE_EXTENSION DeviceExt,
if (AbsFileName) if (AbsFileName)
ExFreePool(AbsFileName); ExFreePool(AbsFileName);
*FoundFCB = Fcb;
return Status; return Status;
} }
@ -160,11 +165,11 @@ NtfsCreateFile(PDEVICE_OBJECT DeviceObject,
PFILE_OBJECT FileObject; PFILE_OBJECT FileObject;
ULONG RequestedDisposition; ULONG RequestedDisposition;
ULONG RequestedOptions; ULONG RequestedOptions;
// PFCB Fcb; PNTFS_FCB Fcb;
// PWSTR FileName; // PWSTR FileName;
NTSTATUS Status; NTSTATUS Status;
DPRINT("NtfsCreateFile() called\n"); DPRINT1("NtfsCreateFile(%p, %p) called\n", DeviceObject, Irp);
DeviceExt = DeviceObject->DeviceExtension; DeviceExt = DeviceObject->DeviceExtension;
ASSERT(DeviceExt); ASSERT(DeviceExt);
@ -213,7 +218,8 @@ NtfsCreateFile(PDEVICE_OBJECT DeviceObject,
Status = NtfsOpenFile(DeviceExt, Status = NtfsOpenFile(DeviceExt,
FileObject, FileObject,
FileObject->FileName.Buffer); FileObject->FileName.Buffer,
&Fcb);
/* /*
* If the directory containing the file to open doesn't exist then * If the directory containing the file to open doesn't exist then