https://git.reactos.org/?p=reactos.git;a=commitdiff;h=15b9a6aa4c131b99ada2bccfe79e319e0daed750

commit 15b9a6aa4c131b99ada2bccfe79e319e0daed750
Author:     Pierre Schweitzer <[email protected]>
AuthorDate: Wed Oct 3 21:28:11 2018 +0200
Commit:     Pierre Schweitzer <[email protected]>
CommitDate: Wed Oct 3 21:29:12 2018 +0200

    [NTOSKRNL] Call IoCreateFileSpecifyDeviceObjectHint with the hint if it was 
specified
---
 ntoskrnl/io/iomgr/iofunc.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/ntoskrnl/io/iomgr/iofunc.c b/ntoskrnl/io/iomgr/iofunc.c
index 2ee72479cf..58a6316751 100644
--- a/ntoskrnl/io/iomgr/iofunc.c
+++ b/ntoskrnl/io/iomgr/iofunc.c
@@ -905,14 +905,16 @@ IopOpenLinkOrRenameTarget(OUT PHANDLE Handle,
                                RenameInfo->RootDirectory,
                                NULL);
 
-    /* And open its parent directory */
+    /* And open its parent directory
+     * Use hint if specified
+     */
     if (FileObject->Flags & FO_FILE_OBJECT_HAS_EXTENSION)
     {
+        PFILE_OBJECT_EXTENSION FileObjectExtension;
+
         ASSERT(!(FileObject->Flags & FO_DIRECT_DEVICE_OPEN));
-#if 0
-        /* Commented out - we don't support FO extension yet
-         * FIXME: Corrected last arg when it's supported
-         */
+
+        FileObjectExtension = FileObject->FileObjectExtension;
         Status = IoCreateFileSpecifyDeviceObjectHint(&TargetHandle,
                                                      DesiredAccess | 
SYNCHRONIZE,
                                                      &ObjectAttributes,
@@ -927,12 +929,7 @@ IopOpenLinkOrRenameTarget(OUT PHANDLE Handle,
                                                      CreateFileTypeNone,
                                                      NULL,
                                                      IO_FORCE_ACCESS_CHECK | 
IO_OPEN_TARGET_DIRECTORY | IO_NO_PARAMETER_CHECKING,
-                                                     FileObject->DeviceObject);
-#else
-        ASSERT(FALSE);
-        UNIMPLEMENTED;
-        return STATUS_NOT_IMPLEMENTED;
-#endif
+                                                     
FileObjectExtension->TopDeviceObjectHint);
     }
     else
     {

Reply via email to