XP/W2k3 x64 on Modern Hardware

Has anyone else here had any success getting Win2k3/XP 64 working on an X299 board?

I’ve tried a variety of settings with my Gigabyte Designare X299 motherboard… But I can’t get the windows setup program to progress any further, past the point of asking for a storage device or third party drivers, without throwing a blue screen of death… Or a copy of XP 64 that’s on a drive from my other X99 board… to boot on the X299 board without either getting stuck on the boot screen or just out right throwing yet another BSOD…

Can anyone point me in the right direction… As to what I’m not doing… Or doing wrong here please??

@H_NT5_USER



At the moment if the BIOS isn’t ACPI compatible then XP Pro 64-Bit will not install. You will have a better chance getting Windows 2003 Server 32-Bit running on it if you wish to use more than 4GB of RAM installed. Otherwise stick to Windows XP Pro 32-Bit if you only plan on running regular programs and not memory intensive.

Now you mention your X99 motherboard. Does your XP Pro 64-Bit install on that without any issues?



At the moment if the BIOS isn’t ACPI compatible then XP Pro 64-Bit will not install. You will have a better chance getting Windows 2003 Server 32-Bit running on it if you wish to use more than 4GB of RAM installed. Otherwise stick to Windows XP Pro 32-Bit if you only plan on running regular programs and not memory intensive.

Now you mention your X99 motherboard. Does your XP Pro 64-Bit install on that without any issues?




I got past the BSOD for ACPI by removing all ACPI drivers and setting ACPIEnable = 0 in TXTSETUP.SIF. I am now stuck at 7b (inaccessible boot device).
The motherboard I have is an ASRock Rack X299 WS/IPMI, and I really need to get my custom XP installed on this. If all fails I will have to flash the BIOS to its original image and use onboard Marvell storage controller which still IDE support.
Any ideas where I can get AHCI drivers for X299 chipset?

Thanks in advance

Dialog test (for XPLives)

Testing XP64 SP2 on the following:
Gigabyte B450 Aorus M
F52 BIOS AGESA 1.0.0.6 (original F41 AGESA 1.0.0.3 also worked)
Ryzen Zen2 Matisse CPU

Issues
-ACPI Shutdown works properly sends to power state G2. However, when restarting it feels like the Reset Register is not set as windows turn off, but the computer fails to restart. Have to manually push the restart button. Issue happens when PS2 keyboard is attached. Workaround is to use USB keyboard.
-occasional BSOD 7E (0xC0000005,) seems to pop up during failed USB/AHCI driver testing. Not reproducible, random.


So I noticed that by default virtualization (AMD-V) aka “SVM” was disabled by default.
BIOS > MIT > Advanced Freq Settings > Advanced CPU Settings > SVM Mode Enabled & CoolNQuiet Enabled
BIOS > MIT > XMP Profile 1
BIOS > BIOS > CSM Support Enabled & Fastboot Disabled & Full Logo Disabled

You can also enable a PPT limit on the CPU lower than default. Lose a little bit of performance for a nice drop in heat.
BIOS > Peripherals > AMD Overclocking > PBO to Enabled
BIOS > Peripherals > AMD CBS > Package Power Limit > Manual & ##

Picture shows a nice spot for power/performace around 50W


Integration
acpi 5048 - 2019.9.1 (Ryzen) - diderius6
MD5 hash:7EA4BF3C519A0F8D6296CFBD825936B0

1-Integrate AHCI and/or NVME driver into pure XP64 SP2 ISO (Nlite1.4.9.3 works nice) You can also integrate latest unofficial update pack 5er_UpdatePack_XPx64SP2_2017-06_2.7z

2-Use cabdsk.exe to compress acpi.sys to acpi.sy_ and place in AMD64 folder

3-extract *.CAB to folder (SP2.CAB, SP3.CAB, or DRIVER.CAB where acpi.sys is located)
-repalce acpi.sys with modified one
-recompress using CabPack
-place new *.CAB in AMD64 folder


GPU Drivers (Tested nvidia GT710, GTX750Ti, and amd HD5450 video cards)
NVIDIA TITAN Series:
GeForce GTX TITAN, GeForce GTX TITAN Black

GeForce 900 Series:
GeForce GTX 960, GeForce GTX 950

GeForce 700 Series:
GeForce GTX 780 Ti, GeForce GTX 780, GeForce GTX 770, GeForce GTX 760, GeForce GTX 760 Ti (OEM), GeForce GTX 750 Ti, GeForce GTX 750, GeForce GTX 745, GeForce GT 740, GeForce GT 730, GeForce GT 720, GeForce GT 710, GeForce GT 705

GeForce 600 Series:
GeForce GTX 680, GeForce GTX 670, GeForce GTX 660 Ti, GeForce GTX 660, GeForce GTX 650 Ti BOOST, GeForce GTX 650 Ti, GeForce GTX 650, GeForce GTX 645, GeForce GT 645, GeForce GT 640, GeForce GT 635, GeForce GT 630, GeForce GT 620, GeForce GT 610, GeForce 605

GeForce 500 Series:
GeForce GTX 590, GeForce GTX 580, GeForce GTX 570, GeForce GTX 560 Ti, GeForce GTX 560 SE, GeForce GTX 560, GeForce GTX 555, GeForce GTX 550 Ti, GeForce GT 545, GeForce GT 530, GeForce GT 520, GeForce 510

GeForce 400 Series:
GeForce GTX 480, GeForce GTX 470, GeForce GTX 465, GeForce GTX 460 SE v2, GeForce GTX 460 SE, GeForce GTX 460, GeForce GTS 450, GeForce GT 440, GeForce GT 430, GeForce GT 420
AMD Radeon™ R9 290 Series AMD Radeon HD 6550D Series
AMD Radeon R9 280 Series AMD Radeon HD 6530D Series
AMD Radeon R9 270 Series AMD Radeon HD 6500 Series
AMD Radeon R7 260 Series AMD Radeon HD 6410D Series
AMD Radeon R7 250 Series AMD Radeon HD 6370D Series
AMD Radeon R7 240 Series AMD Radeon HD 6310D Series
AMD Radeon™ HD 7900 Series AMD Radeon HD 6300 Series
AMD Radeon HD 7800 Series AMD Radeon HD 6200 Series
AMD Radeon HD 7700 Series ATI Radeon HD 5900 Series
AMD Radeon HD 7660D Series ATI Radeon HD 5800 Series
AMD Radeon HD 7560D Series ATI Radeon HD 5700 Series
AMD Radeon HD 7300 Series ATI Radeon HD 5600 Series
AMD Radeon HD 6900 Series ATI Radeon HD 5500 Series
AMD Radeon HD 6800 Series ATI Radeon HD 5400 Series
AMD Radeon HD 6700 Series ​
AMD Radeon HD 6600 Series

Onboard LAN/Audio drivers
ALC880, ALC882, ALC883, ALC885, ALC886, ALC887, ALC888, ALC889, ALC892, ALC899, ALC861VC, ALC861VD, ALC891, ALC900, ALC660, ALC662, ALC663, ALC665, ALC667, ALC668, ALC670, ALC671, ALC672, ALC676, ALC680, ALC221, ALC231, ALC233, ALC235, ALC236, ALC255, ALC256, ALC260, ALC262, ALC267, ALC268, ALC269, ALC270, ALC272, ALC273, ALC275, ALC276, ALC280, ALC282, ALC283, ALC284, ALC286, ALC290, ALC292, ALC293, ALC383
Realtek PCIe Fast Ethernet Family Controller:
- RTL8100E
- RTL8101E
- RTL8102E-GR
- RTL8103E(L)
- RTL8102E(L)
- RTL8101E
- RTL8103T
- RTL8401
- RTL8401P
- RTL8105E
- RTL8402
- RTL8106E
- RTL8106EUS
- RTL8107E

Realtek PCI Gigabit Ethernet Family Controller:
- RTL8110SC(L)
- RTL8110S
- RTL8110SB(L)
- RTL8169SB(L)
- RTL8169S(L)
- RTL8169

Realtek PCIe Gigabit Ethernet Family Controller:
- RTL8111B
- RTL8168B
- RTL8111
- RTL8168
- RTL8111C
- RTL8111CP
- RTL8111D(L)
- RTL8168C
- RTL8111DP
- RTL8111E
- RTL8168E
- RTL8111F
- RTL8411
- RTL8111G
- RTL8111GUS
- RTL8411B(N)
- RTL8118AS
- RTL8111H(S)
- RTL8118
- RTL8111GR

AMD CPU CoolNQuiet Driver
Download AMD Processor Driver 1.3.2.53 and turn on power management if you want CPU to clock down during idle.

Chipset Drivers (simple)
Download an old 13.4 XP/XP64 chipset pack from AMD.

Open up amd_sata.inf and add in these lines underneath existing DEVs:
%AMDSATA.DeviceDesc% = amd_sata_inst, PCI\VEN_1022&DEV_7901&CC_0106
%AMDSATA.DeviceDesc% = amd_sata_inst, PCI\VEN_1022&DEV_7904&CC_0106
%AMDSATA.DeviceDesc% = amd_sata_inst, PCI\VEN_1022&DEV_43C8&CC_0106
Download Schtrom’s StorAhci SATA AHCI Driver from sourceforge.

Pros: Universal driver. Not limited to just AMD controllers.
Cons: No SMART data from CrystalDiskInfo. Sequential speed is slower compared to AMD 1.2.1.321
Download OFA NVMe 1.3 Storport Miniport from sourceforge.

You will need to integrate a new version of storport.sys for it to work. Version 4173 or newer:
5.2.3790.4173 from KB943545 as mention in the readme
5.2.3790.4368 from KB950903
5.2.3790.4485 from unofficial service pack such as 5er_UpdatePack_XPx64SP2_2017-06_2 for XP64

Tested with a Samsung PM981 and storport 5.2.3790.4485.
-Version 1.3 works. Version 1.5 stalled in the TXT setup just before format partition page.
-Use MBR for boot drive. Native XP/XP64 does not boot from GPT.
-Use NTFS. FAT32 starts install but hangs in the GUI setup halfway through Installing Devices.
-No SMART data from CrystalDiskInfo.
[Disks]
disk1 = “OFA NVMe Storport Driver Diskette x86”, \x86\nvme.inf, \x86
disk2 = “OFA NVMe Storport Driver Diskette x64”, \x64\nvme.inf, \x64

[Defaults]
SCSI = OFAnvme_x64

[SCSI]
OFAnvme_x86 = "OFA NVMe Storport Controller x86"
OFAnvme_x64 = “OFA NVMe Storport Controller x64”

[Files.SCSI.OFAnvme_x86]
driver = disk1, nvme.sys, nvme
inf = disk1, nvme.inf
catalog = disk1, nvme86.cat

[Files.SCSI.OFAnvme_x64]
driver = disk2, nvme.sys, nvme
inf = disk2, nvme.inf
catalog = disk2, nvme64.cat

[HardwareIds.SCSI.OFAnvme_x86]
id = “PCI\CC_010802”, “nvme” ; NVMe Storport Controller

[HardwareIds.SCSI.OFAnvme_x64]
id = “PCI\CC_010802”, “nvme” ; NVMe Storport Controller

[Config.nvme]
value = “Parameters\PnpInterface”, “5”, REG_DWORD, 00000001
value = “Parameters”, “BusType”, REG_DWORD, 0x00000011

Download the Windows 7 chipset pack for the B450 from AMD.

Install the 1.0.5.3 USB driver from USB31_PT for the controller and the hub. The drivers install fine, but when you insert a USB device like a mouse or USB flash drive it shows as having a Code 39 error. To fix, you will have to copy usbd.sys to your \system32\drivers folder for a live system. You can also modify the inf file in two spots to also copy over the usbd.sys file when it copies over the driver sys file like the amdxhc31.sys or amdhub31.sys.

Use can decompress the usbd.sy_ file from your ISO or extract latest version from an unofficial service pack like 5er_UpdatePack_XPx64SP2_2017-06_2

Chipset Drivers (advanced)
-Download NTOSKRNL Emu_Extender from sourceforge.
-Follow the instructions and compile a working copy of ntoskrn8.sys from here: Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (328)

#pragma comment (linker, “/export:__C_specific_handler=ntoskrnl.__C_specific_handler”)
#pragma comment (linker, “/export:_local_unwind=ntoskrnl._local_unwind”)
#pragma comment (linker, “/export:_purecall=ntoskrnl._purecall”)
#pragma comment (linker, “/export:_snwprintf=ntoskrnl._snwprintf”)
#pragma comment (linker, “/export:_stricmp=ntoskrnl._stricmp”)
#pragma comment (linker, “/export:_strnicmp=ntoskrnl._strnicmp”)
#pragma comment (linker, “/export:_strupr=ntoskrnl._strupr”)
#pragma comment (linker, “/export:_vsnprintf=ntoskrnl._vsnprintf”)
#pragma comment (linker, “/export:_vsnwprintf=ntoskrnl._vsnwprintf”)
#pragma comment (linker, “/export:_wcsicmp=ntoskrnl._wcsicmp”)
#pragma comment (linker, “/export:_wcsnicmp=ntoskrnl._wcsnicmp”)
#pragma comment (linker, “/export:ExAcquireFastMutex=ntoskrnl.ExAcquireFastMutex”)
#pragma comment (linker, “/export:ExpInterlockedFlushSList=ntoskrnl.ExpInterlockedFlushSList”)
#pragma comment (linker, “/export:ExpInterlockedPopEntrySList=ntoskrnl.ExpInterlockedPopEntrySList”)
#pragma comment (linker, “/export:ExpInterlockedPushEntrySList=ntoskrnl.ExpInterlockedPushEntrySList”)
#pragma comment (linker, “/export:ExQueryDepthSList=ntoskrnl.ExQueryDepthSList”)
#pragma comment (linker, “/export:ExReleaseFastMutex=ntoskrnl.ExReleaseFastMutex”)
#pragma comment (linker, “/export:InitializeSListHead=ntoskrnl.InitializeSListHead”)
#pragma comment (linker, “/export:IoIs32bitProcess=ntoskrnl.IoIs32bitProcess”)
#pragma comment (linker, “/export:IoWMIDeviceObjectToProviderId=ntoskrnl.IoWMIDeviceObjectToProviderId”)
#pragma comment (linker, “/export:KeAcquireInStackQueuedSpinLock=ntoskrnl.KeAcquireInStackQueuedSpinLock”)
#pragma comment (linker, “/export:KeAcquireSpinLockRaiseToDpc=ntoskrnl.KeAcquireSpinLockRaiseToDpc”)
#pragma comment (linker, “/export:KeLowerIrql=ntoskrnl.KeLowerIrql”)
#pragma comment (linker, “/export:KeLowerIrql=ntoskrnl.KeLowerIrql”)
#pragma comment (linker, “/export:KeReleaseInStackQueuedSpinLock=ntoskrnl.KeReleaseInStackQueuedSpinLock”)
#pragma comment (linker, “/export:KeReleaseSpinLock=ntoskrnl.KeReleaseSpinLock”)
#pragma comment (linker, “/export:KfRaiseIrql=ntoskrnl.KfRaiseIrql”)
#pragma comment (linker, “/export:KfRaiseIrql=ntoskrnl.KfRaiseIrql”)
-Recompile and put ntoskrn8.sys in system32\drivers and reboot before installing drivers.

Some drivers need Kernel Mode Driver Framework 1.11 (WDF 1.11).
-Follow the instructions from above and create updated wdf files.
[Version]
Signature = "$Windows NT$"
LayoutFile = layout.inf
SetupClass = BASE

[SourceDisksNames]
1 = “Kernel-Mode Driver Framework 1.11”

[SourceDisksFiles]
wdf01000.sys = 1
wdfldr.sys = 1

[DestinationDirs]
DefaultDestDir = 12

[DefaultInstall.NTamd64]
CopyFiles = WDF_DriverFiles
AddReg = WDF_AddReg

[DefaultInstall.NTamd64.Services]
AddService = Wdf01000, 0x00000400, WDF_AddService

[PostSetup.NTamd64]
;CopyFiles = WDF_DriverFiles
AddReg = WDF_AddReg

[PostSetup.NTamd64.Services]
AddService = Wdf01000, 0x00000400, WDF_AddService_NoRestart


[WDF_DriverFiles]
wdf01000.sys
wdfldr.sys

[WDF_AddReg]
HKLM,“SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Wdf01000”,“SystemComponent”,0x00010001,"1"
HKLM,“SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Wdf01001”,“SystemComponent”,0x00010001,"1"
HKLM,“SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Wdf01005”,“SystemComponent”,0x00010001,"1"
HKLM,“SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Wdf01007”,“SystemComponent”,0x00010001,“1"
HKLM,“SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Wdf01009”,“SystemComponent”,0x00010001,“1"
HKLM,“SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Wdf01011”,“SystemComponent”,0x00010001,“1"
HKLM,“SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal\Wdf01000.sys”,””,0x00000000,“Driver"
HKLM,“SYSTEM\CurrentControlSet\Control\SafeBoot\Network\Wdf01000.sys”,””,0x00000000,"Driver"
HKLM,“SYSTEM\CurrentControlSet\Control\Wdf\Kmdf\1”,“Version”,0x00000000,"1.11"
HKLM,“SYSTEM\CurrentControlSet\Control\Wdf\Kmdf\KmdfLibrary\Versions\1”,“Service”,0x00000000,"Wdf01000"
HKLM,“SYSTEM\CurrentControlSet\Control\Wdf\Schema\KmdfService”,“Type”,0x00010001,"0"
HKLM,“SYSTEM\CurrentControlSet\Control\Wdf\Schema\KmdfService\Object”,“KeyPath”,0x00000000,"CurrentControlSet\Services"
HKLM,“SYSTEM\CurrentControlSet\Control\Wdf\Schema\KmdfService\Object”,“KeyRoot”,0x00000000,“SYSTEM"
HKLM,“SYSTEM\CurrentControlSet\Services\EventLog\System\wdf01000”,“EventMessageFile”,0x00020000,”%SystemRoot%\System32\drivers\Wdf01000.sys"
HKLM,“SYSTEM\CurrentControlSet\Services\EventLog\System\wdf01000”,“TypesSupported”,0x00010001,"7"
HKLM,“SYSTEM\CurrentControlSet\Control\ServiceGroupOrder”,“List”,0x00010000,<br />“System Reserved”,<br />“WdfLoadGroup”,<br />“Boot Bus Extender”,<br />“System Bus Extender”,<br />“SCSI miniport”,<br />“Port”,<br />“Primary Disk”,<br />“SCSI Class”,<br />“SCSI CDROM Class”,<br />“FSFilter Infrastructure”,<br />“FSFilter System”,<br />“FSFilter Bottom”,<br />“FSFilter Copy Protection”,<br />“FSFilter Security Enhancer”,<br />“FSFilter Open File”,<br />“FSFilter Physical Quota Management”,<br />“FSFilter Encryption”,<br />“FSFilter Compression”,<br />“FSFilter HSM”,<br />“FSFilter Cluster File System”,<br />“FSFilter System Recovery”,<br />“FSFilter Quota Management”,<br />“FSFilter Content Screener”,<br />“FSFilter Continuous Backup”,<br />“FSFilter Replication”,<br />“FSFilter Anti-Virus”,<br />“FSFilter Undelete”,<br />“FSFilter Activity Monitor”,<br />“FSFilter Top”,<br />“Filter”,<br />“Boot File System”,<br />“Base”,<br />“Pointer Port”,<br />“Keyboard Port”,<br />“Pointer Class”,<br />“Keyboard Class”,<br />“Video Init”,<br />“Video”,<br />“Video Save”,<br />“File System”,<br />“Event Log”,<br />“Streams Drivers”,<br />“NDIS Wrapper”,<br />“COM Infrastructure”,<br />“UIGroup”,<br />“LocalValidation”,<br />“PlugPlay”,<br />“PNP_TDI”,<br />“NDIS”,<br />“TDI”,<br />“NetBIOSGroup”,<br />“ShellSvcGroup”,<br />“SchedulerGroup”,<br />“SpoolerGroup”,<br />“AudioGroup”,<br />“SmartCardGroup”,<br />“NetworkProvider”,<br />“RemoteValidation”,<br />“NetDDEGroup”,<br />“Parallel arbitrator”,<br />“Extended Base”,<br />“PCI Configuration”

[WDF_AddService]
DisplayName = "Kernel Mode Driver Frameworks service"
ServiceType = 1
StartType = 0
ErrorControl = 1
ServiceBinary = "%12%\wdf01000.sys"
LoadOrderGroup = "WdfLoadGroup"
AddReg = WDF_AddService.AddReg

[WDF_AddService_NoRestart]
DisplayName = "Kernel Mode Driver Frameworks service"
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = "%12%\wdf01000.sys"
LoadOrderGroup = "WdfLoadGroup"
AddReg = WDF_AddService.AddReg, NoRestartPromoting_Tweak

[WDF_AddService.AddReg]
HKLM,“SYSTEM\CurrentControlSet\Control\GroupOrderList”,“WdfLoadGroup”,0x00000001,01,00,00,00,01,00,00,00
HKLM,“SYSTEM\CurrentControlSet\Services\Wdf01000”,“Start”,0x00010001,"0"
HKLM,“SYSTEM\CurrentControlSet\Services\Wdf01000\Parameters”,“BuildNumber”,0x00010001,"0"
HKLM,“SYSTEM\CurrentControlSet\Services\Wdf01000\Parameters”,“MajorVersion”,0x00010001,"1"
HKLM,“SYSTEM\CurrentControlSet\Services\Wdf01000\Parameters”,“MinorVersion”,0x00010001,“11”

[NoRestartPromoting_Tweak]
HKLM,“SYSTEM\CurrentControlSet\Services\Wdf01000”,“Start”,0x00010001,"0"

Useful Tools:
-Hexplorer or equivalent hex editor
-Dependency Walker
-PEChecksum.exe
-Download the Windows 7 chipset pack for the B450 from AMD.

-Open up amd_sata.inf and change the two lines that have NTAMD64.6.1 → NTAMD64.5.2

-Add in these lines underneath existing DEVs if not already there:
%AMDSATA.DeviceDesc% = amd_sata_inst, PCI\VEN_1022&DEV_7901&CC_0106
%AMDSATA.DeviceDesc% = amd_sata_inst, PCI\VEN_1022&DEV_7904&CC_0106
%AMDSATA.DeviceDesc% = amd_sata_inst, PCI\VEN_1022&DEV_43C8&CC_0106

-Open up amd_xata.sys with hexplorer or equivalent, find and change ntoskrnl.exe → ntoskrn8.sys.
-Apply PEChecksum.exe on amd_xata.sys

-In Emu_Extender, open up ntoskrnl_redirects.h and add the following line if does not exist:
#pragma comment (linker, “/export:IoIs32bitProcess=ntoskrnl.IoIs32bitProcess”)
-Compile new ntoskrn8.sys and place in system32\drivers folder. Restart computer and install updated drivers.
AMD 2.0.0.60 USB30_ZP from Windows 7 installs with Emu_Extender and modified ksecdd 6.0.5456.5 sys file. USB ports work ok, but when you shutdown or restart you get BSOD 9F 0x500 DRIVER_POWER_STATE_FAILURE. From Microsoft support page it looks Windows XP expects PoStartNextPowerIrp to be run, but Winodws 7 and newer does not.

Backporting generic Win 8 USB3 driver works. Instructions on how to create and and some extra steps needed for x64 version found below:
Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (328)
Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (419)
Backporting Windows 7 NVMe drive works. Same speed as OFA NVMe 1.3 Storport Miniport. Same no SMART info.

Instructions found here:
Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (328)

x86 storport 6.1.7601.23403
hexposition: 4E19
change: 8B 8E 3C 01 00 00 → B9 00 00 00 00 90
hexposition: 4E2C
change: 74 11 → EB 11

x64 storport 6.1.7601.23403
hexposition: 156AE
change: 8B 83 C0 01 00 00 → B8 00 00 00 00 90
hexposition: 156C0
change: 74 15 → EB 15
;
; Copyright (c) Microsoft Corporation, 2012
;

[Version]
Signature = "$WINDOWS NT$"
Class = SCSIAdapter
ClassGUID = {4D36E97B-E325-11CE-BFC1-08002BE10318}
Provider = %MSFT%
PnpLockdown = 1
DriverVer=06/21/2006,6.1.7601.23403

[SourceDisksNames]
1 = %DiskName%,

[SourceDisksFiles]
stornvme.sys = 1

[DestinationDirs]
; DIRID_DRIVERS
DefaultDestDir = 12

[ControlFlags]
BasicDriverOk = *
ExcludeFromSelect = *

[Manufacturer]
%MS-NVME% = NVME, NTamd64

[NVME.NTamd64]
%PCI\CC_010802.DeviceDesc% = Stornvme_Inst, PCI\CC_010802

[Stornvme_Inst]
CopyFiles = Stornvme_copyfiles

[Stornvme_copyfiles]
stornvme.sys,0x100

[Stornvme_Inst.HW]
AddReg = Stornvme_Inst_HW_AddReg

[Stornvme_Inst_HW_AddReg]
; registry values related to MSI support
HKR, Interrupt Management, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, 0x00000010
HKR, Interrupt Management\Affinity Policy, 0x00000010

;
; The MSISupported entry determines whether the device supports MSIs. Set it to 1 to enable MSI support.
;
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, 0x00010001, 1

;
; The MessageNumberLimit entry specifies the maximum number of MSIs to allocate.
; For PCI 2.2, MessageNumberLimit must be 1, 2, 4, 8, or 16. For PCI 3.0, MessageNumberLimit can be any number up to 2,048.
; Set it to 65 so that 64 IO Queues and 1 Admin Queue can have different messages.
; Note that this number should be increased to “Processor Count + 1” if the driver runs on machine with more processors.
;
HKR, Interrupt Management\MessageSignaledInterruptProperties, MessageNumberLimit, 0x00010001, 65

;
; Make sure all processor in group are used to serve interrupt from this device. IrqPolicySpreadMessagesAcrossAllProcessors (5)
;
HKR, Interrupt Management\Affinity Policy, DevicePolicy, 0x00010001, 5

;
; Specifies that the device’s interrupts are of high priority. This setting is appropriate for devices that require low latency. IrqPriorityHigh (3)
;
HKR, Interrupt Management\Affinity Policy, DevicePriority, 0x00010001, 3

;
; Allow interrrupt happens on processors beyond group 0. (e.g. might be in a single group other than 0)
;
HKR, Interrupt Management\Affinity Policy, GroupPolicy, 0x00010001, 1

;
; Enables Storport IPM for this adapter
;
HKR, “StorPort”, “EnableIdlePowerManagement”, 0x00010001, 0x01


[Stornvme_Inst.Services]
AddService = stornvme, 0x00000002, Stornvme_Service_Inst, Stornvme_EventLog_Inst

[Stornvme_Service_Inst]
DisplayName = %StorNVMe_ServiceDesc%
ServiceType = 1
StartType = 0
ErrorControl = 3
ServiceBinary = %12%\stornvme.sys
LoadOrderGroup = SCSI Miniport

AddReg = nvme_registry_values
;AddReg = nvme_registry_device_specific_values

[nvme_registry_values]
HKR, “Parameters\PnpInterface”, “5”, 0x00010001, 0x00000001

; NOTE: bustype 0x11 is value of BusTypeNVMe
HKR, “Parameters”, “BusType”, 0x00010001, 0x00000011

; Default timeout value 10 seconds
HKR, “Parameters”, “IoTimeoutValue”, 0x00010001, 0x0000000A

;[nvme_registry_device_specific_values]

[Stornvme_EventLog_Inst]
AddReg = Stornvme_EventLog_AddReg

[Stornvme_EventLog_AddReg]
HKR, EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\IoLogMsg.dll"
HKR, TypesSupported, 0x00010001, 7


;
[Strings]
;Localizable
DiskName = "Microsoft Standard NVM Express Driver"
MSFT = "Microsoft"
MS-NVME = "Standard NVM Express Controller"
PCI\CC_010802.DeviceDesc = "Standard NVM Express Controller"
StorNVMe_ServiceDesc = "Microsoft Standard NVM Express Driver"


Chipset Drivers (null)
Null driver. Download an old 13.4 XP/XP64 chipset pack from AMD or get Windows 7 for the B450 chipset.

Open up SMBUSamd.inf and add in these two lines underneath existing DEVs:
%AMD.DeviceDesc0% = AMDSMBus, PCI\VEN_1022&DEV_790B
%AMD.DeviceDesc0% = AMDSMBus64, PCI\VEN_1022&DEV_790B
Null driver. Download an old 13.4 XP/XP64 chipset pack from AMD or get Windows 7 for the B450 chipset.

Open up AmdIOV.inf and add in this line underneath existing DEVs:
%IOMMU.DeviceDesc%=NULL_DRIVER,PCI\VEN_1022&DEV_1481
https://en.wikipedia.org/wiki/AMD_Platform_Security_Processor

Install null driver to remove from missing devices.
[Version]
Signature = "$WINDOWS NT$"
Provider = %ManufacturerName%
Class = System
DriverVer = 11/15/2019, 4.10.0.1

;

; INF Manufacturer Section
;

[Manufacturer]
%ManufacturerName% = AMDMfg, NTx86, NTamd64

[AMDMfg.NTx86]
%amdpsp_30.DeviceDesc% = amdpsp_Device_30, PCI\VEN_1022&DEV_1456
%amdpsp_30.DeviceDesc% = amdpsp_Device_30, PCI\VEN_1022&DEV_1486
%amdpsp_30.DeviceDesc% = amdpsp_Device_30, PCI\VEN_1022&DEV_15dF

[AMDMfg.NTamd64]
%amdpsp_30.DeviceDesc% = amdpsp_Device_30, PCI\VEN_1022&DEV_1456
%amdpsp_30.DeviceDesc% = amdpsp_Device_30, PCI\VEN_1022&DEV_1486
%amdpsp_30.DeviceDesc% = amdpsp_Device_30, PCI\VEN_1022&DEV_15dF

;

; INF Install Section
;
**************************
[amdpsp_Device_30]
;empty

[amdpsp_Device_30.Services]
AddService = , %SPSVCINST_ASSOCSERVICE%

[Strings]
SPSVCINST_ASSOCSERVICE = 0x00000002
ManufacturerName = "Advanced Micro Devices Inc."
ClassName = "Security Devices"
DiskName = "AMD PSP Installation Disk"
amdpsp_30.DeviceDesc = “AMD PSP 3.0 Device"
According to the readme this should also be a null driver. Unlike the SMBus and IOMMU, this one has a sys file that tries to install.
[Version]
Signature=”$Windows NT$"
Provider=%AMD%
Class=System
DriverVer=06/13/2019,1.0.0.0067

[Manufacturer]
%AMD%=AMD, NTx86, NTamd64

[AMD.NTx86]
%AMDPCIDev.DeviceDesc% = AMDPCIDev_Inst,PCI\VEN_1022&DEV_145A
%AMDPCIDev.DeviceDesc% = AMDPCIDev_Inst,PCI\VEN_1022&DEV_1455
%AMDPCIDev.DeviceDesc% = AMDPCIDev_Inst,PCI\VEN_1022&DEV_1485
%AMDPCIDev.DeviceDesc% = AMDPCIDev_Inst,PCI\VEN_1022&DEV_148A

[AMD.NTamd64]
%AMDPCIDev.DeviceDesc% = AMDPCIDev_Inst,PCI\VEN_1022&DEV_145A
%AMDPCIDev.DeviceDesc% = AMDPCIDev_Inst,PCI\VEN_1022&DEV_1455
%AMDPCIDev.DeviceDesc% = AMDPCIDev_Inst,PCI\VEN_1022&DEV_1485
%AMDPCIDev.DeviceDesc% = AMDPCIDev_Inst,PCI\VEN_1022&DEV_148A

[AMDPCIDev_Inst]
;nop

[AMDPCIDev_Inst.Services]
AddService=,2 ; no value for the service name

[Strings]
AMD = "Advanced Micro Devices"
AMDPCIDev.DeviceDesc = "AMD PCI"
AMDPCIDev.SVCDESC = "AMD PCI"
DiskName = “AMDPCIDev Source Disk"


It’s possible to get the original inf/sys driver installed, but when you shutdown or restart you get BSOD 9F 0x500 DRIVER_POWER_STATE_FAILURE. From Microsoft support page it looks Windows XP expects PoStartNextPowerIrp to be run, but Winodws 7 and newer does not.

From Windows 7 chipset pack for the B450 from AMD. PCI_INF. Update inf to add DEV1485 and DEV148A. Open AMDPCIDev.sys with hex editor and change ntoskrnl.exe to ntoskrn8.sys and PEChecksum.exe on it.
Install null driver to remove from missing devices
[Version]
Signature=”$WINDOWS NT$"
Class=System
Provider=%AMD%
DriverVer=10/10/2017,2.2.0.71

[Manufacturer]
%AMD%=Amd, NTx86, NTamd64

[Amd.NTx86]
%GPIO.DeviceDesc% = GPIO_Inst,ACPI\GPIO0010
%GPIO.DeviceDesc% = GPIO_Inst,ACPI\AMD0030
%GPIO.DeviceDesc% = GPIO_Inst,ACPI\AMDI0030

[Amd.NTamd64]
%GPIO.DeviceDesc% = GPIO_Inst,ACPI\GPIO0010
%GPIO.DeviceDesc% = GPIO_Inst,ACPI\AMD0030
%GPIO.DeviceDesc% = GPIO_Inst,ACPI\AMDI0030

[GPIO_Inst]
;nop

[GPIO_Inst.Services]
AddService = ,2 ; no value for the service name

[strings]
AMD = "Advanced Micro Devices, Inc"
GPIO.DeviceDesc = "AMD GPIO Controller"
GPIO.SvcDesc = "AMD GPIO Client Driver"
DiskId1 = “AMD GPIO Installation Disk”

You can install the driver from the Windows 7 chipset pack for the B450, but is not initialized error code 37.

GPIO_ML. No changes needed to the inf. amdgpio2.sys has missing dependencies in the Wdfldr.sys from XP. Kernel Mode Driver Framework 1.11 from Win7 with NTOSKRNL Emu_Extender needs to be installed.

To avoid BSOD 0xFC ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY, open AMDPCIDev.sys with hex editor and at hex position 3400 (security_cookie like in generic win8 driver), change value 32 A2 DF 2D 99 2B to something else. Does not matter what, then PEChecksum.exe on it.



Extra
VMware users: make sure you install the generic USB drivers for USB passthrough to work
Windows XP Pro 64-Bit and Server 2003 64-Bit on Modern Hardware (4)

@pappyN4

Is it stable?
For my Ryzen board, sound does not work correct,
lan enables, disables etc.
Dietmar

PS: The package 5er_UpdatePack_XPx64SP2_2017-06_2.7z
isnt available any more. Do you have it?

It seems stable. I would do more detailed testing but I keep breaking it trying to figure out the restart so only basic software gets installed each time.

No problem with USB ports. Lots and lots of copy files while testing other drivers.
Sound is ok. Short test of x264 video with VLC and games.
Played 10 mins of Return to castle wolfenstein. No issues.
Played Star Trek Armada several hours. This is only game that I have that works properly in XP32 but has audio stuttering issues on XP64. This is not a problem with new Ryzen system. I get exact same problem with older Athlon II 640 and with A8-7600 computer.
CPUz stress test for 2 hours.
LAN drivers had been installed. Have not noticed enables/disables… But I keep rebooting for testing so have not noticed how long uptime for network connection.

Only problem I have is restart does not function normally.

All new hardware. I tried removing mouse, removing keyboard, removed DVD drive, changing nvidia and ati GPU, different SSD. Only PSU, motherboard, CPU, RAM have not been changed.

Restart works fine on Windows 7 x64, and with old parted magic linux boot from 2012. So hardware is good.

Tested on XP64 with ACPI 5048 - 2019.09.01, and on XP32 with 5048 - 2019.6.30 and 6666 - 2019.10.20#2. All XP ACPIs have restart problem for my system?? Lets compare difference.

I think diderus6 tested with B350 chipset ASRock Fatal1ty AB350 Gaming K4 and did test with a 3700X? So, Gigabyte vs ASRock BIOS build, B350 vs B450 chipset, and according to website, ACPI 5.1 for asrock vs ACPI 5.0 for gigabyte.

I also have AMDI0030 showing as missing in XP which is the only driver missing difference compared to Windows 7.

Nevermind… After reading Andalu’s post I tried removing the PS2 keyboard again. When I did it before, I just unplugged and did the restart which did not work. This time, I started the computer with no PS2 attached at all. Then tried restart. Works. Tried it several times. It should not feel this good for a simple restart to work

Unofficial Windows XP Service Pack 4
.Net Framework runtimes
The latest supported Visual C++ downloads
Potplayer
K-Lite Codec Pack Mega 13.8.5 for Xp
Windows Media Format Runtime for Windows XP/Vista
7-zip
Privazer
Smart Defrag
DirectX End-User Runtimes (June 2010)
DirectX 3.0, 5.2, 6.1, 7.0, 8.0, 8.1, and 8.2
Microsoft Visual Basic 6.0 Service Pack 6 Security Rollup Update
Microsoft UAA Bus Driver for High Definition Audio
OpenAL
TCP Optimizer
K-Meleon
CabMaker 1.2 (dated 7 May 2018)
StorAhci for Windows 2003 Server (Last Update: 2020-09-28)
Windows XP Pro SP3 x86 EN-RU Integral Edition. A good copy with all the patches,tweaks and updates applied.
look it up,i will not link it :slight_smile: for researches purposes in order to see the tweaks,patches they have used

@pappyN4





Can you link or reupload the ACPI.sys that you used in your AMD test of XP Pro 64-Bit?
Windows XP Pro 64-Bit and Server 2003 64-Bit on Modern Hardware (3)

So your restart computer from within the operating system works now once you removed the PS/2 keyboard?

That’s very odd it would be connected to the PS/2 port.

Does your PS/2 keyboard work at the command prompt in native DOS or 98SE DOS when booted (assuming you know how to do this)?
Do not confuse this with using the Command Prompt within the Windows operating system.

In native DOS try Ctrl+Alt+Del and see if the machine reboots.



FYI:
5er_UpdatePack_XPx64SP2_2017-06_2.7z
Download link: https://links.snahp.it/eUrxvC9wyNMCwRrIFwHTQrlbDFU1f5FDECQ
Password: ryanvm

OK folks, I’m a newbie here. I can build the heck out of a computer, but when it comes down to the intricacies of an operating system, I’m probably dangerous at best. I’m building several Windows XP x64 machines and would love an unofficial Service Pack 3. From what I have read, 5er_UpdatePack_XPx64SP2_2017-06_2.7z, is the next best thing (or maybe better, who knows?). I was able to download the file using xingyou12’s link and password.

Here’s my question. What the heck do I do with it? I unzipped it thinking there would would be single executable file inside (sortof like a click-to-run service pack), but found a legion of files. I read somewhere where others were using Windows Installer 4.5 to apply the 5er_UpdatePack_XPx64SP2_2017-06_2.7z. I found the WindowsServer2003-KB942288-v4-x64.exe file (that’s the Windows Installer 4.5 install file) at Microsoft’s volume-software.com site yesterday, but I really don’t want to install a bunch things until I’m certain how to proceed.

Any help would greatly appreciated. Please remember, I’m not as well versed as most of you.



You can integrate 5er_UpdatePack_XPx64SP2_2017-06_2.7z into your Windows XP x64 with SP2 distribution files with RyanVM Integrator 1.6 and nLite 1.4.9.1, or later versions of either.

FYI: https://ryanvm.net/forum/viewtopic.php?f=9&t=10623

VMware and USB flash drive passthrough

When using VMware, if you connect a USB flash drive and try to pass it through to the guest OS, you will need to use a USB port that is using the generic backported USB driver in the host OS. It does not work then using the USB31_PT 1.0.5.3 chipset drivers from the motherboard. From the article it looks like other motherboard specific drivers will have the same issue with a few exceptions.
https://kb.vmware.com/s/article/2041591

Tested with: XP64host with VM10.0.7(last XP version) and Win7x64host with VM10.0.7 & 15.5.6(last Win7 version).

Testing passthrough with a Kingston USB2.0 flash drive works fine. But when connecting a Kingston USB3.0 flash drive vmware gets a “unable to connect to ideal host”, and the drive does not load properly in the WinXP guest OS.


VMware and USB3.0 flash drive

If you change the USB compatibility in vmware in Settings from 2.0 to 3.0, then install the backported generic drivers to the XP guest OS, it will work properly.

Note that the vm image hardware compatibility mode has to be 8 or higher, if you are using an image set to 6.5-7.x mode or lower then the USB 3.0 drop down menu will not show up.

@XPLives



Been away. Didn’t see this until now. I also find it odd since you would think that PS2 would be the most compatible. But its consistent. Having a PS2 keyboard stops the restart from completing. Windows turns off like it should, display turns off, just the final trigger to restart doesnt go. Basically just like a shutdown (which works), just instead of cutting power it should trigger a restart. It also stops the restart during the installation, both during the TXT mode and in the GUI mode.

I booted a Hirens CD into DOS (win98 4.10.2222 based of ver info). Restart command works in that. I also have a win98 DOS bootable floppy with a USB floppy adapter somewhere, but I’d have to go digging in old boxes to find it.

Happens with all ACPIs I tested from the integrator zip that was able to boot
x64 acpi 5048 - 2019.9.1 (Ryzen) - diderius6
x86 acpi 5048 - 2019.6.30 (Ryzen) - diderius6
x86 acpi 5048 - 2019.11.1 - diderius6
x86 acpi 6666 - 2019.10.20#2 (Intel&Ryzen) - OuterSpace, diderius6

Catching up in the other thread it looks like @diderius6 has a ASUS ROG Strix B450-F Gaming II board now. He posted that the shutdown with PS/2 works fine. Maybe he can confirm if the restart works with his board?

@pappyN4

The ASUS ROG Strix B450-F Gaming II is a nice board.
After crazy work I get nearly all to work under XP SP3, only one USB slot not.
I succeed with this only with last last acpi.sys from August 2021 and the AMD Sata driver,
fresh modded by @daniel_k

No problem with Shut Down

Dietmar

PS: This acpi.sys is now the standard in Ramseys Integrator and also this very last AMD Sata driver is there (option I).

where is the link to dl modded acpi.sys thx


Hopefully I can learn how to do it.

@Mov AX, 0xDEAD

Windows 8.0 gives an ACPI BSOD - It disappears very quickly but I’m reasonable sure it is the same A5 BSOD 0x11 0x8 that windows 7 had (from my testing it was the CPU SSDT giving the BSOD)

So Windows 8.0 acpi.sys will need patching before I can properly test.

@diderius6

can you patch the windows 8.0 acpi.sys driver so I can test?

infuscomus has attached files to this post
acpi_win80.zip
#5707 (archive.org thread)

I managed to install the 64-bit Windows XP onto an Acer Aspire A315-21 from 2019. Here’s how to do it:

  1. Grab a Windows XP 64-bit ISO.

  2. Grab the appropriate AMD SATA drivers from here: [Guide] Integration of AMD's AHCI/RAID drivers into a WinXP/W2k3 CD - #146 by AlfaYT and integrate it into the media using Nlite.

  3. Grab a modded ACPI.sys. Extract drivers.cab using command prompt. Delete the ACPI.sys from it and paste in the modded ACPI.sys. Rebuild drivers.cab and put it into the amd64 folder.

  4. Look for ACPI.SY_ and delete it. Using MakeCab.exe in System32 folder, drag ACPI.sys to it and it will spit out a new ACPI.SY_. Move this to the same folder.

  5. This laptop does not have a DVD drive, so by following the steps and using WinToUSB from here: How to make Windows 2000 bootable USB with WinSetupFromUSB? | could not install grub4dos MBR! - YouTube create a bootable XP USB.

  6. Plug a GParted live USB drive into the USB port on the right of the laptop (by the Number lock key), ensure UEFI boot is off and touchpad is set to Basic. Using GParted Live USB, configure your drive as you desire.

  7. Plug the XP USB drive into the USB port on the right of the laptop (by the Number lock key), ensure UEFI boot is off and touchpad is set to Basic. Press F12 to boot into it. Select First Part of setup. When it gets to the partition manager, select “Leave the current filesystem intact (no changes)”. When it wants to restart, it will get stuck, so hold the power button to shut down and then boot back up to continue.

  8. Part 2 will commence. After that is done, it will freeze once more, so repeat, except this time, boot into a Win7 or later USB. Make sure ACPI.sys is copied to the USB as well. Press Shift+F10 and type in Notepad. Switch the view to all files, navigate to ACPI.sys and copy it. Go to the XP drive/Windows/System32/drivers. Delete the ACPI.sys already there and paste in the other. Exit out, remove the USB, and finish XP setup, which is loading up the desktop.

  9. Voila! For a more complete version of this guide, please see here: http://windowsenthusiasts1.epizy.com/Windows2000SandyBridge.html

Also note, the AMD chipset drivers will work, even USB3. Audio, Ethernet, Touchpad, and card reader driver will also work. You can get all of this here: AMD_Assorted_Drivers_Pack

The graphics driver will only work on Vista and later, and the WiFi driver will not work, either. If anybody wants to try their hand at getting those two devices working under XP, be my guest!