update for HEAD-2003091401
[reactos.git] / ntoskrnl / io / dir.c
index 174eb03..ee69630 100644 (file)
@@ -21,6 +21,9 @@
 
 
 
+/*
+ * @unimplemented
+ */
 NTSTATUS
 STDCALL
 NtNotifyChangeDirectoryFile (
@@ -39,6 +42,9 @@ NtNotifyChangeDirectoryFile (
 }
 
 
+/*
+ * @implemented
+ */
 NTSTATUS
 STDCALL 
 NtQueryDirectoryFile(
@@ -85,7 +91,7 @@ NtQueryDirectoryFile(
    PDEVICE_OBJECT DeviceObject;
    PFILE_OBJECT FileObject;
    NTSTATUS Status;
-   PIO_STACK_LOCATION IoStack;
+   PEXTENDED_IO_STACK_LOCATION IoStack;
    IO_STATUS_BLOCK IoSB;
    
    DPRINT("NtQueryDirectoryFile()\n");
@@ -111,13 +117,15 @@ NtQueryDirectoryFile(
        return STATUS_UNSUCCESSFUL;
      }
    
+   //trigger FileObject/Event dereferencing
+   Irp->Tail.Overlay.OriginalFileObject = FileObject;
    
    Irp->UserIosb = &IoSB;
    Irp->UserEvent = &FileObject->Event;
    KeResetEvent( &FileObject->Event );
    Irp->UserBuffer=FileInformation;
    
-   IoStack = IoGetNextIrpStackLocation(Irp);
+   IoStack = (PEXTENDED_IO_STACK_LOCATION) IoGetNextIrpStackLocation(Irp);
    
    IoStack->MajorFunction = IRP_MJ_DIRECTORY_CONTROL;
    IoStack->MinorFunction = IRP_MN_QUERY_DIRECTORY;
@@ -138,7 +146,7 @@ NtQueryDirectoryFile(
      {
        IoStack->Flags = IoStack->Flags | SL_INDEX_SPECIFIED;
      }
-   
+
    IoStack->Parameters.QueryDirectory.FileInformationClass = 
      FileInformationClass;
    IoStack->Parameters.QueryDirectory.FileName = FileName;