- Fix KiDispatchException to unmask KI_EXCEPTION_INTERNAL when setting the exception...
[reactos.git] / reactos / ntoskrnl / io / iomgr / iomgr.c
index 31a8732..c90778a 100644 (file)
@@ -13,7 +13,7 @@
 #define NDEBUG
 #include <internal/debug.h>
 
-ULONG IopTraceLevel = IO_IRP_DEBUG;
+ULONG IopTraceLevel = 0; //IO_API_DEBUG | IO_FILE_DEBUG;
 
 // should go into a proper header
 VOID
@@ -70,7 +70,7 @@ extern LIST_ENTRY DriverBootReinitListHead;
 extern LIST_ENTRY DriverReinitListHead;
 extern LIST_ENTRY PnpNotifyListHead;
 extern LIST_ENTRY FsChangeNotifyListHead;
-extern LIST_ENTRY IopLogListHead;
+extern LIST_ENTRY IopErrorLogListHead;
 extern LIST_ENTRY IopTimerQueueHead;
 extern KDPC IopTimerDpc;
 extern KTIMER IopTimer;
@@ -442,9 +442,6 @@ NTAPI
 IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
 {
     LARGE_INTEGER ExpireTime;
-    PDEVICE_NODE DeviceNode;
-    PDRIVER_OBJECT DriverObject;
-    LDR_DATA_TABLE_ENTRY ModuleObject;
     NTSTATUS Status;
     CHAR Buffer[256];
     ANSI_STRING NtBootPath, RootString;
@@ -470,7 +467,7 @@ IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
     InitializeListHead(&PnpNotifyListHead);
     InitializeListHead(&ShutdownListHead);
     InitializeListHead(&FsChangeNotifyListHead);
-    InitializeListHead(&IopLogListHead);
+    InitializeListHead(&IopErrorLogListHead);
     KeInitializeSpinLock(&CancelSpinLock);
     KeInitializeSpinLock(&IoVpbLock);
     KeInitializeSpinLock(&IoStatisticsLock);
@@ -497,66 +494,17 @@ IoInitSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
     /* Create Object Directories */
     if (!IopCreateRootDirectories()) return FALSE;
 
-    /*
-    * Initialize PnP manager
-    */
+    /* Initialize PnP manager */
     PnpInit();
 
-    PnpInit2();
-
-    IoCreateDriverList();
-
-    KeInitializeSpinLock (&IoStatisticsLock);
-
-    /* Initialize raw filesystem driver */
-
-    /* Use IopRootDeviceNode for now */
-    Status = IopCreateDeviceNode(IopRootDeviceNode, NULL, &DeviceNode);
-    if (!NT_SUCCESS(Status))
-    {
-        CPRINT("IopCreateDeviceNode() failed with status (%x)\n", Status);
-        return FALSE;
-    }
-
-    ModuleObject.DllBase = NULL;
-    ModuleObject.SizeOfImage = 0;
-    ModuleObject.EntryPoint = RawFsDriverEntry;
-
-    Status = IopInitializeDriverModule(DeviceNode,
-                                       &ModuleObject,
-                                       &DeviceNode->ServiceName,
-                                       TRUE,
-                                       &DriverObject);
-    if (!NT_SUCCESS(Status))
-    {
-        IopFreeDeviceNode(DeviceNode);
-        CPRINT("IopInitializeDriver() failed with status (%x)\n", Status);
-        return FALSE;
-    }
-
-    Status = IopInitializeDevice(DeviceNode, DriverObject);
-    if (!NT_SUCCESS(Status))
-    {
-        IopFreeDeviceNode(DeviceNode);
-        CPRINT("IopInitializeDevice() failed with status (%x)\n", Status);
-        return FALSE;
-    }
-
-    Status = IopStartDevice(DeviceNode);
-    if (!NT_SUCCESS(Status))
-    {
-        IopFreeDeviceNode(DeviceNode);
-        CPRINT("IopInitializeDevice() failed with status (%x)\n", Status);
-        return FALSE;
-    }
-
-    /*
-    * Initialize PnP root releations
-    */
+    /* Initialize PnP root relations */
     IoSynchronousInvalidateDeviceRelations(IopRootDeviceNode->
                                            PhysicalDeviceObject,
                                            BusRelations);
 
+    /* Create the group driver list */
+    IoCreateDriverList();
+
     /* Load boot start drivers */
     IopInitializeBootDrivers();