Porting Win 8's USB 3 Driver
Windows XP/2003 natively supports USB 2.0 without the need for custom drivers. However, the speed of USB 2.0 is limited when compared to USB 3.0. Not only that, but USB 3.0 devices plugged into a USB 3.0 port may refuse to work when drivers are not installed.
A manufacturer may develop USB 3.0 drivers specifically for Windows XP/2003. When that option is not available, the user would typically either accept USB 2.0 speeds in Windows XP/2003, or move to a new operating system where such drivers are available. With NTOSKRNL_Emu, there is another option: backport the Windows 8 USB 3.0 driver to Windows XP.
Goal
The Windows 8 USB 3.0 drivers will be installed in the target system. The drivers will be backported to Windows XP/2003.
Prerequisites
Requirements
- Windows 7 or newer (expand command is bugged in older versions)
- CFF Explorer
- USB 3.0 port
- Without a USB 3.0 port, there is no point to installing USB 3.0 drivers.
Instructions
Download and extract
KB2984005
- Download update KB2984005 from Windows Update Catalog. Move the downloaded file to a clean folder.
- 32-bit: Choose Update for Windows 8 (KB2984005).
- 64-bit: Choose Update for Windows 8 for x64-based Systems (KB2984005).
-
Open command prompt and navigate to the directory containing the downloaded update file.
- Run the following commands:
- 32-bit:
expand windows8-rt-kb2984005-x86_77577a115a33b0478b508c69677ed44761e9fc8f.msu -F:windows8-rt-kb2984005-x86.cab . expand windows8-rt-kb2984005-x86.cab -F:usbhub3.inf . expand windows8-rt-kb2984005-x86.cab -F:usbhub3.sys .
- 64-bit:
expand windows8-rt-kb2984005-x64_96505708f4f2f01f8e76408cf2c74016dd5d1032.msu -F:windows8-rt-kb2984005-x64.cab . expand windows8-rt-kb2984005-x64.cab -F:usbhub3.inf . expand windows8-rt-kb2984005-x64.cab -F:usbhub3.sys .
- 32-bit:
- Two new folders should appear. Enter the folder containing the name
6.2.9200.21180
.- Both folders contain the same driver, but they are different versions of that driver. You want to pick the newest version.
- The folder contains the files usbhub3.inf and usbhub3.sys. Move these files to a more convenient place for editing.
KB5006739
- Download update KB5006739 from Windows Update Catalog. Move the downloaded file to a clean folder.
- 32-bit: Choose 2021-10 Security Monthly Quality Rollup for Windows Embedded 8 Standard for x86-based Systems (KB5006739).
- 64-bit: Choose 2021-10 Security Monthly Quality Rollup for Windows Embedded 8 Standard for x64-based Systems (KB5006739).
-
Open command prompt and navigate to the directory containing the downloaded update file.
- Run the following commands:
- 32-bit:
expand windows8-rt-kb5006739-x86_126562a0710a0dac87edd8497c13a32973962d01.msu -F:windows8-rt-kb5006739-x86.cab . expand windows8-rt-kb5006739-x86.cab -F:ucx01000.sys . expand windows8-rt-kb5006739-x86.cab -F:usbxhci.inf . expand windows8-rt-kb5006739-x86.cab -F:usbxhci.sys . expand windows8-rt-kb5006739-x86.cab -F:usbd.sys .
- 64-bit:
expand windows8-rt-kb5006739-x64_3d984253b421c404b2fbd71ba5728c2194774142.msu -F:windows8-rt-kb5006739-x64.cab . expand windows8-rt-kb5006739-x64.cab -F:ucx01000.sys . expand windows8-rt-kb5006739-x64.cab -F:usbxhci.inf . expand windows8-rt-kb5006739-x64.cab -F:usbxhci.sys . expand windows8-rt-kb5006739-x64.cab -F:usbd.sys .
- 32-bit:
- Two new folders should appear, containing the files ucx01000.sys, usbxhci.inf, usbxhci.sys, and usbd.sys. Move these files to a more convenient place for editing.
Rename
Windows XP/2003 already has its own usbd.sys. The Windows 8 driver must not override the existing driver, or risk system instability. To work around this issue, the Windows 8 driver will be renamed.
As a side effect, all backported drivers that depend on usbd.sys will also need to have the import tables modified to reflect the new name.
- Rename usbd.sys to usb8.sys.
Modify with CFF Explorer
ucx01000.sys
- In Import Directory:
- Change the entry for ntoskrnl.exe to ntoskrn8.sys.
- Change the entry for wdfldr.sys to wdfld8.sys.
- Change the entry for WppRecorder.sys to WppRecorde8.sys.
- In Hex Editor, search for the Hex:
- 32-bit:
4EE640BB
- 64-bit:
32A2DF2D992B
- This is to search for the security cookie, which if not modified, will prevent the driver from being installed.
- Make sure it finds the very first match! There may be multiple copies of this hex value, but only the first match in the file needs to be modified!
- 32-bit:
-
Replace the first Hex value with
00
. -
In Rebuilder, recalculate the checksum.
- Save the file.
usb8.sys
-
In Import Directory, change the entry for ntoskrnl.exe to ntoskrn8.sys.
- In Hex Editor, search for the Hex:
- 32-bit:
4EE640BB
- 64-bit:
32A2DF2D992B
- This is to search for the security cookie, which if not modified, will prevent the driver from being installed.
- Make sure it finds the very first match! There may be multiple copies of this hex value, but only the first match in the file needs to be modified!
- 32-bit:
-
Replace the first Hex value with
00
. -
In Rebuilder, recalculate the checksum.
- Save the file.
usbhub3.sys
- In Import Directory:
- Change the entry for ksecdd.sys to ksecd8.sys.
- Change the entry for ntoskrnl.exe to ntoskrn8.sys.
- Change the entry for usbd.sys to usb8.sys.
- Change the entry for wdfldr.sys to wdfld8.sys.
- Change the entry for WppRecorder.sys to WppRecorde8.sys.
- In Hex Editor, search for the Hex:
- 32-bit:
4EE640BB
- 64-bit:
32A2DF2D992B
- This is to search for the security cookie, which if not modified, will prevent the driver from being installed.
- Make sure it finds the very first match! There may be multiple copies of this hex value, but only the first match in the file needs to be modified!
- 32-bit:
-
Replace the first Hex value with
00
. - Scroll to the top of the file and set the cursor to the first entry. Search for the Hex:
- 32-bit:
837E54037509
- 64-bit:
00000003750A
- 32-bit:
- Replace the Hex values with:
- 32-bit:
83 7E 54 03 EB 09
- 64-bit:
00 00 00 03 EB 0A
- 32-bit:
-
In Rebuilder, recalculate the checksum.
- Save the file.
usbxhci.sys
- In Import Directory:
- Change the entry for ntoskrnl.exe to ntoskrn8.sys.
- Change the entry for wdfldr.sys to wdfld8.sys.
- Change the entry for WppRecorder.sys to WppRecorde8.sys.
- In Hex Editor, search for the Hex:
- 32-bit:
4EE640BB
- 64-bit:
32A2DF2D992B
- This is to search for the security cookie, which if not modified, will prevent the driver from being installed.
- Make sure it finds the very first match! There may be multiple copies of this hex value, but only the first match in the file needs to be modified!
- 32-bit:
-
Replace the first Hex value with
00
. -
In Rebuilder, recalculate the checksum.
- Save the file.
Modify .inf files
usbhub3.inf
-
Open usbhub3.inf with Notepad.exe.
-
Search for
[Generic.Install.NT.Services]
. -
Under the line that starts with
AddService
, add the following line:AddService=WDF01_W8,, WDF.AddService
-
Above the line
[Generic.AddService]
, add the following line:[WDF.AddService] DisplayName = "Windows Driver Framework v1.11 for XP/2003" ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 3 ; SERVICE_DEMAND_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\WDF01_W8.SYS LoadOrderGroup = Base
-
Save the file.
-
Repeat steps 1 to 5 for usbxhci.inf
Install
Transfer
- Transfer ucx01000.sys, usb8.sys, usbhub3.inf, usbhub3.sys, usbxhci.inf, and usbxhci.sys to somewhere accessible to the target system, such as a flash drive or a network-accessible folder.
Install usb8.sys and ucx01000.sys
These files will need to be installed manually before any of the backported drivers can be installed.
- In your target system, move usb8.sys and ucx01000.sys into the folder at
C:\Windows\system32\drivers
.
Install USB 3.0 drivers
-
Open the Start menu and click Run….
-
Run devmgmt.msc. This will open Device Manager.
-
Open the category Other devices, right-click Universal Serial Bus (USB) Controller, and select Update Driver…. A new window will open up.
-
Select No, not this time. and click Next.
-
Select Install from a list or specific location (Advanced) and click Next.
-
Uncheck Search removable media (floppy, CD-ROM, …).
-
Check Include this location in the search. Click Browse… and locate the directory containing the drivers. Click Next.
-
The first set of drivers have been installed. With every new USB 3.0 device, a new dialogue box will appear for installing the USB 3.0 drivers. Repeat steps 4 to 7 to complete the installation.