- FS Devices don't need a device queue, optimize the call away. Modified: trunk/reactos/ntoskrnl/io/device.c _____
Modified: trunk/reactos/ntoskrnl/io/device.c --- trunk/reactos/ntoskrnl/io/device.c 2005-08-05 21:16:51 UTC (rev 17084) +++ trunk/reactos/ntoskrnl/io/device.c 2005-08-05 21:25:52 UTC (rev 17085) @@ -545,7 +545,20 @@
}
/* Create the Device Queue */ - KeInitializeDeviceQueue(&CreatedDeviceObject->DeviceQueue); + if (CreatedDeviceObject->DeviceType == FILE_DEVICE_DISK_FILE_SYSTEM || + CreatedDeviceObject->DeviceType == FILE_DEVICE_FILE_SYSTEM || + CreatedDeviceObject->DeviceType == FILE_DEVICE_CD_ROM_FILE_SYSTEM || + CreatedDeviceObject->DeviceType == FILE_DEVICE_NETWORK_FILE_SYSTEM || + CreatedDeviceObject->DeviceType == FILE_DEVICE_TAPE_FILE_SYSTEM) + { + /* Simple FS Devices, they don't need a real Device Queue */ + InitializeListHead(&CreatedDeviceObject->Queue.ListEntry); + } + else + { + /* An actual Device, initialize its DQ */ + KeInitializeDeviceQueue(&CreatedDeviceObject->DeviceQueue); + }
/* Insert the Object */ Status = ObInsertObject(CreatedDeviceObject,