update for HEAD-2003091401
[reactos.git] / ntoskrnl / io / file.c
index 098356f..c84382f 100644 (file)
@@ -26,6 +26,9 @@
 
 /* FUNCTIONS *****************************************************************/
 
+/*
+ * @implemented
+ */
 NTSTATUS STDCALL
 NtQueryInformationFile(HANDLE FileHandle,
                       PIO_STATUS_BLOCK IoStatusBlock,
@@ -80,6 +83,9 @@ NtQueryInformationFile(HANDLE FileHandle,
        return(STATUS_INSUFFICIENT_RESOURCES);
      }
    
+   //trigger FileObject/Event dereferencing
+   Irp->Tail.Overlay.OriginalFileObject = FileObject;
+
    Irp->AssociatedIrp.SystemBuffer = SystemBuffer;
    Irp->UserIosb = &IoSB;
    Irp->UserEvent = &FileObject->Event;
@@ -126,6 +132,9 @@ NtQueryInformationFile(HANDLE FileHandle,
 }
 
 
+/*
+ * @implemented
+ */
 NTSTATUS STDCALL
 IoQueryFileInformation(IN PFILE_OBJECT FileObject,
                       IN FILE_INFORMATION_CLASS FileInformationClass,
@@ -161,6 +170,9 @@ IoQueryFileInformation(IN PFILE_OBJECT FileObject,
        ObDereferenceObject(FileObject);
        return STATUS_INSUFFICIENT_RESOURCES;
      }
+
+   //trigger FileObject/Event dereferencing
+   Irp->Tail.Overlay.OriginalFileObject = FileObject;
    
    Irp->AssociatedIrp.SystemBuffer = FileInformation;
    Irp->UserIosb = &IoStatusBlock;
@@ -201,6 +213,9 @@ IoQueryFileInformation(IN PFILE_OBJECT FileObject,
 }
 
 
+/*
+ * @implemented
+ */
 NTSTATUS STDCALL
 NtSetInformationFile(HANDLE FileHandle,
                     PIO_STATUS_BLOCK IoStatusBlock,
@@ -293,6 +308,9 @@ NtSetInformationFile(HANDLE FileHandle,
                      FileInformation,
                      Length);
    
+   //trigger FileObject/Event dereferencing
+   Irp->Tail.Overlay.OriginalFileObject = FileObject;
+
    Irp->AssociatedIrp.SystemBuffer = SystemBuffer;
    Irp->UserIosb = &IoSB;
    Irp->UserEvent = &FileObject->Event;
@@ -410,6 +428,9 @@ NtQueryFullAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes,
 }
 
 
+/*
+ * @unimplemented
+ */
 NTSTATUS STDCALL
 NtQueryEaFile(IN HANDLE FileHandle,
              OUT PIO_STATUS_BLOCK IoStatusBlock,
@@ -426,6 +447,9 @@ NtQueryEaFile(IN HANDLE FileHandle,
 }
 
 
+/*
+ * @unimplemented
+ */
 NTSTATUS STDCALL
 NtSetEaFile(IN HANDLE FileHandle,
            IN PIO_STATUS_BLOCK IoStatusBlock,