Revert most of IoCreateStreamFileObject... it's wrong but needs to be wrong for now. Modified: trunk/reactos/ntoskrnl/io/file.c _____
Modified: trunk/reactos/ntoskrnl/io/file.c --- trunk/reactos/ntoskrnl/io/file.c 2005-05-09 22:12:43 UTC (rev 15194) +++ trunk/reactos/ntoskrnl/io/file.c 2005-05-09 22:35:43 UTC (rev 15195) @@ -994,16 +994,16 @@
* * @implemented */ -PFILE_OBJECT +PFILE_OBJECT STDCALL IoCreateStreamFileObject(PFILE_OBJECT FileObject, PDEVICE_OBJECT DeviceObject) { PFILE_OBJECT CreatedFileObject; NTSTATUS Status; - - /* FIXME: This function should call ObInsertObject. The "Lite" version - doesnt. This function is also called from IoCreateFile for some + + /* FIXME: This function should call ObInsertObject. The "Lite" version + doesnt. This function is also called from IoCreateFile for some reason. These hacks need to be removed. */
@@ -1030,12 +1030,17 @@ /* Choose Device Object */ if (FileObject) DeviceObject = FileObject->DeviceObject; DPRINT("DeviceObject %x\n", DeviceObject); - + + /* HACK */ + DeviceObject = IoGetAttachedDevice(DeviceObject); + /* Set File Object Data */ - CreatedFileObject->DeviceObject = DeviceObject; + CreatedFileObject->DeviceObject = DeviceObject; CreatedFileObject->Vpb = DeviceObject->Vpb; CreatedFileObject->Type = IO_TYPE_FILE; - CreatedFileObject->Flags = FO_STREAM_FILE; + /* HACK */ + CreatedFileObject->Flags |= FO_DIRECT_DEVICE_OPEN; + //CreatedFileObject->Flags = FO_STREAM_FILE;
/* Initialize Lock and Event */ KeInitializeEvent(&CreatedFileObject->Event, NotificationEvent, FALSE); @@ -1057,6 +1062,7 @@ UNIMPLEMENTED; return 0; } + /* * @unimplemented */