diff --git a/reactos/ntoskrnl/io/efi.c b/reactos/ntoskrnl/ex/efi.c
similarity index 100%
rename from reactos/ntoskrnl/io/efi.c
rename to reactos/ntoskrnl/ex/efi.c
diff --git a/reactos/ntoskrnl/include/internal/io.h b/reactos/ntoskrnl/include/internal/io.h
index 60fb3afc0f6..9db0286e0ab 100644
--- a/reactos/ntoskrnl/include/internal/io.h
+++ b/reactos/ntoskrnl/include/internal/io.h
@@ -324,6 +324,15 @@ typedef struct _IO_BUS_TYPE_GUID_LIST
} IO_BUS_TYPE_GUID_LIST, *PIO_BUS_TYPE_GUID_LIST;
extern PIO_BUS_TYPE_GUID_LIST IopBusTypeGuidList;
+//
+// Shutdown entry for registed devices
+//
+typedef struct _SHUTDOWN_ENTRY
+{
+ LIST_ENTRY ShutdownList;
+ PDEVICE_OBJECT DeviceObject;
+} SHUTDOWN_ENTRY, *PSHUTDOWN_ENTRY;
+
//
// Called on every visit of a node during a preorder-traversal of the device
// node tree.
diff --git a/reactos/ntoskrnl/io/adapter.c b/reactos/ntoskrnl/io/iomgr/adapter.c
similarity index 100%
rename from reactos/ntoskrnl/io/adapter.c
rename to reactos/ntoskrnl/io/iomgr/adapter.c
diff --git a/reactos/ntoskrnl/io/arcname.c b/reactos/ntoskrnl/io/iomgr/arcname.c
similarity index 100%
rename from reactos/ntoskrnl/io/arcname.c
rename to reactos/ntoskrnl/io/iomgr/arcname.c
diff --git a/reactos/ntoskrnl/io/bootlog.c b/reactos/ntoskrnl/io/iomgr/bootlog.c
similarity index 100%
rename from reactos/ntoskrnl/io/bootlog.c
rename to reactos/ntoskrnl/io/iomgr/bootlog.c
diff --git a/reactos/ntoskrnl/io/controller.c b/reactos/ntoskrnl/io/iomgr/controller.c
similarity index 100%
rename from reactos/ntoskrnl/io/controller.c
rename to reactos/ntoskrnl/io/iomgr/controller.c
diff --git a/reactos/ntoskrnl/io/device.c b/reactos/ntoskrnl/io/iomgr/device.c
similarity index 99%
rename from reactos/ntoskrnl/io/device.c
rename to reactos/ntoskrnl/io/iomgr/device.c
index 9fe14cd7823..3a8d4562ea7 100644
--- a/reactos/ntoskrnl/io/device.c
+++ b/reactos/ntoskrnl/io/iomgr/device.c
@@ -18,12 +18,6 @@
ULONG IopDeviceObjectNumber = 0;
-typedef struct _SHUTDOWN_ENTRY
-{
- LIST_ENTRY ShutdownList;
- PDEVICE_OBJECT DeviceObject;
-} SHUTDOWN_ENTRY, *PSHUTDOWN_ENTRY;
-
LIST_ENTRY ShutdownListHead, LastChanceShutdownListHead;
KSPIN_LOCK ShutdownListLock;
diff --git a/reactos/ntoskrnl/io/deviface.c b/reactos/ntoskrnl/io/iomgr/deviface.c
similarity index 100%
rename from reactos/ntoskrnl/io/deviface.c
rename to reactos/ntoskrnl/io/iomgr/deviface.c
diff --git a/reactos/ntoskrnl/io/disk.c b/reactos/ntoskrnl/io/iomgr/disk.c
similarity index 100%
rename from reactos/ntoskrnl/io/disk.c
rename to reactos/ntoskrnl/io/iomgr/disk.c
diff --git a/reactos/ntoskrnl/io/driver.c b/reactos/ntoskrnl/io/iomgr/driver.c
similarity index 100%
rename from reactos/ntoskrnl/io/driver.c
rename to reactos/ntoskrnl/io/iomgr/driver.c
diff --git a/reactos/ntoskrnl/io/error.c b/reactos/ntoskrnl/io/iomgr/error.c
similarity index 100%
rename from reactos/ntoskrnl/io/error.c
rename to reactos/ntoskrnl/io/iomgr/error.c
diff --git a/reactos/ntoskrnl/io/event.c b/reactos/ntoskrnl/io/iomgr/event.c
similarity index 100%
rename from reactos/ntoskrnl/io/event.c
rename to reactos/ntoskrnl/io/iomgr/event.c
diff --git a/reactos/ntoskrnl/io/file.c b/reactos/ntoskrnl/io/iomgr/file.c
similarity index 100%
rename from reactos/ntoskrnl/io/file.c
rename to reactos/ntoskrnl/io/iomgr/file.c
diff --git a/reactos/ntoskrnl/io/fs.c b/reactos/ntoskrnl/io/iomgr/fs.c
similarity index 100%
rename from reactos/ntoskrnl/io/fs.c
rename to reactos/ntoskrnl/io/iomgr/fs.c
diff --git a/reactos/ntoskrnl/io/iocomp.c b/reactos/ntoskrnl/io/iomgr/iocomp.c
similarity index 100%
rename from reactos/ntoskrnl/io/iocomp.c
rename to reactos/ntoskrnl/io/iomgr/iocomp.c
diff --git a/reactos/ntoskrnl/io/iofunc.c b/reactos/ntoskrnl/io/iomgr/iofunc.c
similarity index 100%
rename from reactos/ntoskrnl/io/iofunc.c
rename to reactos/ntoskrnl/io/iomgr/iofunc.c
diff --git a/reactos/ntoskrnl/io/iomgr.c b/reactos/ntoskrnl/io/iomgr/iomgr.c
similarity index 100%
rename from reactos/ntoskrnl/io/iomgr.c
rename to reactos/ntoskrnl/io/iomgr/iomgr.c
diff --git a/reactos/ntoskrnl/io/iowork.c b/reactos/ntoskrnl/io/iomgr/iowork.c
similarity index 100%
rename from reactos/ntoskrnl/io/iowork.c
rename to reactos/ntoskrnl/io/iomgr/iowork.c
diff --git a/reactos/ntoskrnl/io/irp.c b/reactos/ntoskrnl/io/iomgr/irp.c
similarity index 100%
rename from reactos/ntoskrnl/io/irp.c
rename to reactos/ntoskrnl/io/iomgr/irp.c
diff --git a/reactos/ntoskrnl/io/irq.c b/reactos/ntoskrnl/io/iomgr/irq.c
similarity index 100%
rename from reactos/ntoskrnl/io/irq.c
rename to reactos/ntoskrnl/io/iomgr/irq.c
diff --git a/reactos/ntoskrnl/io/mdl.c b/reactos/ntoskrnl/io/iomgr/mdl.c
similarity index 100%
rename from reactos/ntoskrnl/io/mdl.c
rename to reactos/ntoskrnl/io/iomgr/mdl.c
diff --git a/reactos/ntoskrnl/io/rawfs.c b/reactos/ntoskrnl/io/iomgr/rawfs.c
similarity index 100%
rename from reactos/ntoskrnl/io/rawfs.c
rename to reactos/ntoskrnl/io/iomgr/rawfs.c
diff --git a/reactos/ntoskrnl/io/remlock.c b/reactos/ntoskrnl/io/iomgr/remlock.c
similarity index 100%
rename from reactos/ntoskrnl/io/remlock.c
rename to reactos/ntoskrnl/io/iomgr/remlock.c
diff --git a/reactos/ntoskrnl/io/resource.c b/reactos/ntoskrnl/io/iomgr/resource.c
similarity index 100%
rename from reactos/ntoskrnl/io/resource.c
rename to reactos/ntoskrnl/io/iomgr/resource.c
diff --git a/reactos/ntoskrnl/io/symlink.c b/reactos/ntoskrnl/io/iomgr/symlink.c
similarity index 100%
rename from reactos/ntoskrnl/io/symlink.c
rename to reactos/ntoskrnl/io/iomgr/symlink.c
diff --git a/reactos/ntoskrnl/io/timer.c b/reactos/ntoskrnl/io/iomgr/timer.c
similarity index 100%
rename from reactos/ntoskrnl/io/timer.c
rename to reactos/ntoskrnl/io/iomgr/timer.c
diff --git a/reactos/ntoskrnl/io/util.c b/reactos/ntoskrnl/io/iomgr/util.c
similarity index 100%
rename from reactos/ntoskrnl/io/util.c
rename to reactos/ntoskrnl/io/iomgr/util.c
diff --git a/reactos/ntoskrnl/io/vpb.c b/reactos/ntoskrnl/io/iomgr/vpb.c
similarity index 100%
rename from reactos/ntoskrnl/io/vpb.c
rename to reactos/ntoskrnl/io/iomgr/vpb.c
diff --git a/reactos/ntoskrnl/io/plugplay.c b/reactos/ntoskrnl/io/pnpmgr/plugplay.c
similarity index 100%
rename from reactos/ntoskrnl/io/plugplay.c
rename to reactos/ntoskrnl/io/pnpmgr/plugplay.c
diff --git a/reactos/ntoskrnl/io/pnpdma.c b/reactos/ntoskrnl/io/pnpmgr/pnpdma.c
similarity index 100%
rename from reactos/ntoskrnl/io/pnpdma.c
rename to reactos/ntoskrnl/io/pnpmgr/pnpdma.c
diff --git a/reactos/ntoskrnl/io/pnpmgr.c b/reactos/ntoskrnl/io/pnpmgr/pnpmgr.c
similarity index 100%
rename from reactos/ntoskrnl/io/pnpmgr.c
rename to reactos/ntoskrnl/io/pnpmgr/pnpmgr.c
diff --git a/reactos/ntoskrnl/io/pnpnotify.c b/reactos/ntoskrnl/io/pnpmgr/pnpnotify.c
similarity index 100%
rename from reactos/ntoskrnl/io/pnpnotify.c
rename to reactos/ntoskrnl/io/pnpmgr/pnpnotify.c
diff --git a/reactos/ntoskrnl/io/pnpreport.c b/reactos/ntoskrnl/io/pnpmgr/pnpreport.c
similarity index 100%
rename from reactos/ntoskrnl/io/pnpreport.c
rename to reactos/ntoskrnl/io/pnpmgr/pnpreport.c
diff --git a/reactos/ntoskrnl/io/pnproot.c b/reactos/ntoskrnl/io/pnpmgr/pnproot.c
similarity index 100%
rename from reactos/ntoskrnl/io/pnproot.c
rename to reactos/ntoskrnl/io/pnpmgr/pnproot.c
diff --git a/reactos/ntoskrnl/ntoskrnl.rbuild b/reactos/ntoskrnl/ntoskrnl.rbuild
index c3b035a0d40..b44b89e8d39 100644
--- a/reactos/ntoskrnl/ntoskrnl.rbuild
+++ b/reactos/ntoskrnl/ntoskrnl.rbuild
@@ -123,6 +123,7 @@
callback.c
dbgctrl.c
error.c
+ efi.c
event.c
evtpair.c
fmutex.c
@@ -162,6 +163,7 @@
inbv.c
+
adapter.c
arcname.c
bootlog.c
@@ -170,33 +172,34 @@
deviface.c
disk.c
driver.c
- efi.c
error.c
event.c
- fs.c
- iocomp.c
- iomgr.c
- iowork.c
- irp.c
- irq.c
- mdl.c
- plugplay.c
- pnpdma.c
- pnpmgr.c
- pnpnotify.c
- pnpreport.c
- pnproot.c
- rawfs.c
- remlock.c
- resource.c
- util.c
- symlink.c
- timer.c
- vpb.c
- wmi.c
- file.c
+ file.c
+ fs.c
+ iocomp.c
iofunc.c
-
+ iomgr.c
+ iowork.c
+ irp.c
+ irq.c
+ mdl.c
+ rawfs.c
+ remlock.c
+ resource.c
+ util.c
+ symlink.c
+ timer.c
+ vpb.c
+
+
+ plugplay.c
+ pnpdma.c
+ pnpmgr.c
+ pnpnotify.c
+ pnpreport.c
+ pnproot.c
+
+
bochs.c
@@ -321,6 +324,9 @@
sid.c
token.c
+
+ wmi.c
+
ntoskrnl.rc
-nostartfiles
-nostdlib
diff --git a/reactos/ntoskrnl/io/wmi.c b/reactos/ntoskrnl/wmi/wmi.c
similarity index 100%
rename from reactos/ntoskrnl/io/wmi.c
rename to reactos/ntoskrnl/wmi/wmi.c