- 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,