diff --git a/reactos/bootdata/hivesys.inf b/reactos/bootdata/hivesys.inf
index e81eea04bbc..06ee0b32241 100644
--- a/reactos/bootdata/hivesys.inf
+++ b/reactos/bootdata/hivesys.inf
@@ -578,15 +578,13 @@ HKLM,"SYSTEM\CurrentControlSet\Services\Fs_Rec","Type",0x00010001,0x00000008
;HKLM,"SYSTEM\CurrentControlSet\Services\Ide","Type",0x00010001,0x00000001
; i8042 port driver
-HKLM,"SYSTEM\CurrentControlSet\Services\i8042Prt","ErrorControl",0x00010001,0x00000000
-HKLM,"SYSTEM\CurrentControlSet\Services\i8042Prt","Group",0x00000000,"Keyboard Port"
-HKLM,"SYSTEM\CurrentControlSet\Services\i8042Prt","ImagePath",0x00020000,"system32\drivers\i8042prt.sys"
-HKLM,"SYSTEM\CurrentControlSet\Services\i8042Prt","Start",0x00010001,0x00000001
-HKLM,"SYSTEM\CurrentControlSet\Services\i8042Prt","Type",0x00010001,0x00000001
-
-HKLM,"SYSTEM\CurrentControlSet\Services\i8042Prt\Parameters","SampleRate",0x00010001,0x0000003c
-HKLM,"SYSTEM\CurrentControlSet\Services\i8042Prt\Parameters","BreakOnSysRq",0x00010001,0x00000001
-HKLM,"SYSTEM\CurrentControlSet\Services\i8042Prt\Parameters","MouseResolution",0x00010001,0x00000003
+HKLM,"SYSTEM\CurrentControlSet\Services\i8042prt","ErrorControl",0x00010001,0x00000000
+HKLM,"SYSTEM\CurrentControlSet\Services\i8042prt","Start",0x00010001,0x00000001
+HKLM,"SYSTEM\CurrentControlSet\Services\i8042prt","Type",0x00010001,0x00000001
+HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0303\0000","Service",0x00000000,"i8042prt"
+HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0303\0000","ClassGUID",0x00000000,"{4D36E96B-E325-11CE-BFC1-08002BE10318}"
+HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0F13\0000","Service",0x00000000,"i8042prt"
+HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0F13\0000","ClassGUID",0x00000000,"{4D36E96F-E325-11CE-BFC1-08002BE10318}"
; Keyboard class driver
HKLM,"SYSTEM\CurrentControlSet\Services\kbdclass","ErrorControl",0x00010001,0x00000000
@@ -596,19 +594,6 @@ HKLM,"SYSTEM\CurrentControlSet\Services\kbdclass","Start",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\kbdclass","Type",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}","UpperFilters",0x00010000,"kbdclass"
-; Serial port enumerator
-HKLM,"SYSTEM\CurrentControlSet\Services\serenum","ErrorControl",0x00010001,0x00000001
-HKLM,"SYSTEM\CurrentControlSet\Services\serenum","Group",0x00000000,"PNP Filter"
-HKLM,"SYSTEM\CurrentControlSet\Services\serenum","ImagePath",0x00020000,"system32\drivers\serenum.sys"
-HKLM,"SYSTEM\CurrentControlSet\Services\serenum","Start",0x00010001,0x00000003
-HKLM,"SYSTEM\CurrentControlSet\Services\serenum","Type",0x00010001,0x00000001
-;hard coded values
-HKLM,"SYSTEM\CurrentControlSet\Services\serenum\Enum","0",0x00000000,"ACPI\PNP0501"
-HKLM,"SYSTEM\CurrentControlSet\Services\serenum\Enum","Count",0x00010001,0x00000001
-HKLM,"SYSTEM\CurrentControlSet\Services\serenum\Enum","NextInstance",0x00010001,0x00000001
-HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0501\1","UpperFilters",0x00010000,"serenum"
-HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0501\2","UpperFilters",0x00010000,"serenum"
-
; SB16 driver
HKLM,"SYSTEM\CurrentControlSet\Services\sndblst","Group",0x00000000,"Base"
HKLM,"SYSTEM\CurrentControlSet\Services\sndblst","ServiceType",0x00010001,0x00000001
@@ -825,19 +810,12 @@ HKLM,"SYSTEM\CurrentControlSet\Services\Null","Start",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Services\Null","Type",0x00010001,0x00000001
; Serial device driver
-HKLM,"SYSTEM\CurrentControlSet\Services\Serial","ErrorControl",0x00010001,0x00000000
-HKLM,"SYSTEM\CurrentControlSet\Services\Serial","Group",0x00000000,"Extended Base"
-HKLM,"SYSTEM\CurrentControlSet\Services\Serial","ImagePath",0x00020000,"system32\drivers\serial.sys"
-HKLM,"SYSTEM\CurrentControlSet\Services\Serial","Start",0x00010001,0x00000001
-HKLM,"SYSTEM\CurrentControlSet\Services\Serial","Type",0x00010001,0x00000001
-;hard coded values
-HKLM,"SYSTEM\CurrentControlSet\Services\Serial\Enum","0",0x00000000,"ACPI\PNP0501"
-HKLM,"SYSTEM\CurrentControlSet\Services\Serial\Enum","Count",0x00010001,0x00000001
-HKLM,"SYSTEM\CurrentControlSet\Services\Serial\Enum","NextInstance",0x00010001,0x00000001
HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0501\1","ClassGUID",0x00000000,"{4D36E978-E325-11CE-BFC1-08002BE10318}"
HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0501\1","Service",0x00000000,"serial"
+HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0501\1","UpperFilters",0x00010000,"serenum"
HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0501\2","ClassGUID",0x00000000,"{4D36E978-E325-11CE-BFC1-08002BE10318}"
HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0501\2","Service",0x00000000,"serial"
+HKLM,"SYSTEM\CurrentControlSet\Enum\ACPI\PNP0501\2","UpperFilters",0x00010000,"serenum"
; Packet driver
HKLM,"SYSTEM\CurrentControlSet\Services\Packet","ErrorControl",0x00010001,0x00000001
diff --git a/reactos/bootdata/packages/reactos.dff b/reactos/bootdata/packages/reactos.dff
index 70d80b8d2cb..bdf36d085d3 100755
--- a/reactos/bootdata/packages/reactos.dff
+++ b/reactos/bootdata/packages/reactos.dff
@@ -265,5 +265,7 @@ media\nls\c_28599.nls 1
media\drivers\etc\services 5
media\inf\NET_NIC.inf 6
media\inf\layout.inf 6
+media\inf\mouse.inf 6
+media\inf\ports.inf 6
media\inf\scsi.inf 6
media\inf\syssetup.inf 6
diff --git a/reactos/media/inf/inf.xml b/reactos/media/inf/inf.xml
index da0cd003158..683fb9c9f3a 100644
--- a/reactos/media/inf/inf.xml
+++ b/reactos/media/inf/inf.xml
@@ -1,4 +1,6 @@
layout.inf
+mouse.inf
NET_NIC.inf
+ports.inf
scsi.inf
syssetup.inf
diff --git a/reactos/media/inf/mouse.inf b/reactos/media/inf/mouse.inf
new file mode 100644
index 00000000000..10ed2de105d
--- /dev/null
+++ b/reactos/media/inf/mouse.inf
@@ -0,0 +1,127 @@
+; MOUSE.INF
+
+; Installation file for mouse devices
+
+[Version]
+Signature = "$Windows NT$"
+;Signature = "$ReactOS$"
+LayoutFile = layout.inf
+Class = Mouse
+ClassGUID = {4D36E96F-E325-11CE-BFC1-08002BE10318}
+Provider = %ReactOS%
+DriverVer = 10/19/1999,5.00.2157.1
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+[ClassInstall32.NT]
+AddReg = MouseClass.NT.AddReg
+
+[MouseClass.NT.AddReg]
+HKR, , , 0, %MouseClassName%
+HKR, , Icon, 0, "-2"
+HKR, , Installer32, 0, "syssetup.dll,MouseClassInstaller"
+HKR, , NoInstallClass, 0, 1
+
+[Manufacturer]
+%StdMfg% = StdMfg
+%LogMfg = LogMsf
+%MSMfg% = MSMfg
+
+[StdMfg]
+%SERIAL_MOUSE.DeviceDesc% = Serial_Inst,*PNP0F0C,SERENUM\PNP0F0C,*PNP0F17,SERENUM\PNP0F17,SERIAL_MOUSE
+%PS2_MOUSE.DeviceDesc% = PS2_Inst,*PNP0F0E,*PNP0F19,PS2_MOUSE
+
+[LogMfg]
+%*PNP0F08.DeviceDesc% = Serial_Inst,*PNP0F08,SERENUM\PNP0F08
+%*PNP0F12.DeviceDesc% = PS2_Inst,*PNP0F12
+
+[MSMfg]
+%*PNP0F01.DeviceDesc% = Serial_Inst,*PNP0F01,SERENUM\PNP0F01
+%*PNP0F03.DeviceDesc% = PS2_Inst,*PNP0F03
+%*PNP0F13.DeviceDesc" = PS2_Inst,*PNP0F13
+
+;---------------------------- MOUCLASS DRIVER ---------------------------
+
+[Mouclass_CopyFiles.NT]
+mouclass.sys
+
+[mouclass_Service_Inst]
+ServiceType = 1
+StartType = 3
+ErrorControl = 1
+ServiceBinary = %12%\mouclass.sys
+LoadOrderGroup = Pointer Class
+
+;----------------------------- SERIAL DRIVER ----------------------------
+
+[Serial_Inst.NT]
+CopyFiles = Serial_CopyFiles, Mouclass_CopyFiles
+
+[Serial_CopyFiles.NT]
+sermouse.sys
+
+[Serial_Inst.NT.Services]
+AddService = sermouse, 0x00000002, sermouse_Service_Inst
+AddService = mouclass, , mouclass_Service_Inst
+
+[sermouse_Service_Inst]
+ServiceType = 1
+StartType = 1
+ErrorControl = 1
+ServiceBinary = %12%\sermouse.sys
+LoadOrderGroup = Pointer Port
+
+;------------------------------ PS/2 DRIVER -----------------------------
+
+[PS2_Inst.NT]
+CopyFiles = PS2_CopyFiles, Mouclass_CopyFiles
+AddReg = PS2_AddReg
+
+[PS2_CopyFiles.NT]
+i8042prt.sys
+
+[PS2_Inst.NT.Services]
+AddService = i8042prt, 0x00000002, i8042prt_Service_Inst
+AddService = mouclass, , mouclass_Service_Inst
+
+[i8042prt_Service_Inst]
+ServiceType = 1
+StartType = 1
+ErrorControl = 1
+ServiceBinary = %12%\i8042prt.sys
+LoadOrderGroup = Keyboard Port
+
+[PS2_AddReg]
+HKLM,"SYSTEM\CurrentControlSet\Services\i8042prt\Parameters","SampleRate",0x00010001,0x0000003c
+HKLM,"SYSTEM\CurrentControlSet\Services\i8042prt\Parameters","BreakOnSysRq",0x00010001,0x00000001
+HKLM,"SYSTEM\CurrentControlSet\Services\i8042prt\Parameters","MouseResolution",0x00010001,0x00000003
+
+;-------------------------------- STRINGS -------------------------------
+
+[Strings]
+ReactOS = "ReactOS Team"
+MouseClassName = "Mice and other pointing devices"
+StdMfg = "(Standard mice)"
+LogMfg = "Logitech"
+MSMfg = "Microsoft"
+
+*PNP0F01.DeviceDesc = "Microsoft Serial Mouse"
+*PNP0F03.DeviceDesc = "Microsoft PS/2-style Mouse"
+*PNP0F08.DeviceDesc = "Logitech Serial Mouse"
+*PNP0F12.DeviceDesc = "Logitech PS/2-style Mouse"
+*PNP0F13.DeviceDesc = "PS/2 port for PS/2-style mice"
+SERIAL_MOUSE.DeviceDesc = "Standard Serial Mouse"
+PS2_MOUSE.DeviceDesc = "Standard PS/2 Mouse"
+
+[String.040c]
+MouseClassName = "Souris et autres dispositifs de pointage"
+StdMfg = "(Souris standard)"
+
+*PNP0F01.DeviceDesc = "Souris Microsoft sur port série"
+*PNP0F03.DeviceDesc = "Souris Microsoft sur port PS/2"
+*PNP0F08.DeviceDesc = "Souris Logitech sur port série"
+*PNP0F12.DeviceDesc = "Souris Logitech sur port PS/2"
+*PNP0F13.DeviceDesc = "Souris compatible PS/2"
+SERIAL_MOUSE.DeviceDesc = "Souris standard sur port série"
+PS2_MOUSE.DeviceDesc = "Souris standard sur port PS/2"
\ No newline at end of file
diff --git a/reactos/media/inf/ports.inf b/reactos/media/inf/ports.inf
new file mode 100644
index 00000000000..cfb1d04ae66
--- /dev/null
+++ b/reactos/media/inf/ports.inf
@@ -0,0 +1,74 @@
+; PORTS.INF
+
+; Installation file for communication ports
+
+[Version]
+Signature = "$Windows NT$"
+;Signature = "$ReactOS$"
+LayoutFile = layout.inf
+Class = Ports
+ClassGUID = {4D36E978-E325-11CE-BFC1-08002BE10318}
+Provider = %ReactOS%
+DriverVer = 10/19/1999,5.00.2157.1
+
+[DestinationDirs]
+DefaultDestDir = 12
+
+[ClassInstall32.NT]
+AddReg = PortsClass.NT.AddReg
+
+[PortsClass.NT.AddReg]
+HKR, , , 0, %PortsClassName%
+HKR, , Icon, 0, "-23"
+HKR, , Installer32, 0, "msports.dll,PortsClassInstaller"
+
+[Manufacturer]
+%StdMfg% = StdMfg
+
+[StdMfg]
+%*PNP0500.DeviceDesc% = ComPort_Inst,*PNP0500,*PNP0501
+%*PNP0501.DeviceDesc% = ComPort_Inst,*PNP0501
+
+;---------------------------- COM PORT DRIVER ---------------------------
+
+[ComPort_Inst.NT]
+CopyFiles = ComPort_CopyFiles.NT
+
+[ComPort_CopyFiles.NT]
+serial.sys
+serenum.sys
+
+[ComPort_Inst.NT.Services]
+AddService = serial, 0x00000002, serial_Service_Inst
+AddService = serenum, , serenum_Service_Inst
+
+[serial_Service_Inst]
+ServiceType = 1
+StartType = 1
+ErrorControl = 0
+ServiceBinary = %12%\serial.sys
+LoadOrderGroup = Extended base
+
+[serenum_Service_Inst]
+ServiceType = 1
+StartType = 3
+ErrorControl = 1
+ServiceBinary = %12%\serenum.sys
+LoadOrderGroup = PNP Filter
+
+;-------------------------------- STRINGS -------------------------------
+
+[Strings]
+ReactOS = "ReactOS Team"
+PortsClassName = "Serial and parallel ports"
+StdMfg = "(Standard ports)"
+
+*PNP0500.DeviceDesc = "Serial communication port"
+*PNP0501.DeviceDesc = "Serial communication port"
+
+[String.040c]
+PortsClassName = "Ports (Série et parallèle)"
+StdMfg = "(Ports standard)"
+
+*PNP0500.DeviceDesc = "Port de communication série"
+*PNP0501.DeviceDesc = "Port de communication série"
\ No newline at end of file
diff --git a/reactos/media/inf/syssetup.inf b/reactos/media/inf/syssetup.inf
index 54089ef596a..9b82ef42948 100644
--- a/reactos/media/inf/syssetup.inf
+++ b/reactos/media/inf/syssetup.inf
@@ -14,5 +14,7 @@ ClassGUID={00000000-0000-0000-0000-000000000000}
[DeviceInfsToInstall]
; MS uses netnovel.inf as class-installer INF for NICs
; we use a separate one to keep things clean
+mouse.inf
NET_NIC.inf
+ports.inf
scsi.inf