Jump to content

XP/W2k3 x86 on Modern Hardware


George King

Recommended Posts

50 minutes ago, infuscomus said:

Does anyone know what the ACPIex.sys driver does? It was introduced in windows 8.0 onwards.

I wonder if that driver is why the 149C USB controller starts correctly on windows 8.0?

I'm just speculating though.

But 149C works on my PC just fine on XP after George King King

Link to comment
Share on other sites

3 hours ago, ExtremeGrief said:

Why not clean install?

I need to reuse a complete working solution, with specific set of users, relevant permissions on folder/files, a gigantic set of binary files sparse on two partitions, ecc. So the reason why I need to start from a disk image and just "inject" the minimum set of drivers/patched system files to have XP booting again.

The good thing is that I know for sure that a clean install of XP IE, with options 1,3 and 4, works! So I have to understand how to "capture" the added files and registry settings and restore them, while offline, on restored disk image.

 

Link to comment
Share on other sites

2 hours ago, infuscomus said:

@simon73

don't forget to copy ntoskrn8.sys too.

have you created the required "storahci" and "usbxhci" services in registry?

Yes, all needed files have been copied as well explained in README.TXT file. And yes, I recreated "storahci" and "usbxhci" services in registry...but no luck up to now. 

 

This afternoon I attempt an alternative way to restore image, but I had same result...i proceed in this way:

- restored disk image on VMWare virtual machine.

- added virtual USB3.1 controller and AHCI SATA controller

- replaced ACPI.SYS file with the modded one dated 2021/08/28.

- manually installed 'Kernel-Mode Driver Framework 1.11', 'MovAX-Gen2 SATA driver v2.0' and 'MovAX-Gen2 USB3.X xHCI driver v2.2', with additional files "ntoskrn8.sys", "storpor8.sys" and "storport.sys" copied in 'C:\WINDOWS\system32\drivers'.

- verified that the virtual machine still boots fine and all the entries in DeviceManager are ok.

- added a key below "CriticalDeviceDatabase" with PCI_ID and VEN_ID relevant to Intel SATA AHCI controller on physical machine (VEN_8086&DEV_A102), with entry "Service" = storahci, and proper "ClassGUID". 

- create a disk image of the above virtual PC and restored it on final physical hardware

BUT AGAIN RESTORED PC DOES NOT WORK 😞

 

 

Link to comment
Share on other sites

3 hours ago, infuscomus said:

@simon73

Can you get into safe mode?

I repeated one more time the procedure I wrote above to be sure to do not forget any step. The BSOD screen is still the same I attached in my previous post (please note: is visibile only pressing F8 at startup and selecting "do not automatically restart in case of failure", otherwise I just see for a second the classic XP boot screen).

In SAFE mode Windows XP start, but I cannot do nothing as keyboard and mouse do not work...and network is unavailable so I cannot use Remote Desktop...

safemode.png.9b75a3796273789221b509a33b4b9f02.png

 

Any hint?

 

Edited by simon73
Link to comment
Share on other sites

32 minutes ago, simon73 said:

I repeated one more time the procedure I wrote above to be sure to do not forget any step. The BSOD screen is still the same I attached in my previous post (please note: is visibile only pressing F8 at startup and selecting "do not automatically restart in case of failure", otherwise I just see for a second the classic XP boot screen).

In SAFE mode Windows XP start, but I cannot do nothing as keyboard and mouse do not work...and network is unavailable so I cannot use Remote Desktop...

safemode.png.9b75a3796273789221b509a33b4b9f02.png

 

Any hint?

 

Try safe mode with networking

Link to comment
Share on other sites

@simon73

This would be so much easier with a new install.

You can get into safe mode at least, thats something.

To get mouse an keyboard working you'll need to manually edit the registry offline to get them installed.

using a working windows install take everything from

	Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdclass
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mouclass
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mouhid
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\HID
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\kbdclass
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\kbdhid
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\mouclass
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\mouhid
	

and copy these keys across over to your XP registry.

Link to comment
Share on other sites

Some further research -

148C controller - works in XP - is device \_SB.PCI0.D0B8.XHC0 in ACPI table if win10 is correct.

149C controller - does not work in XP - is device \_SB.S0D2.D2A0.BYUP.BYD8.XHC1 in ACPI table if win10 is correct.

Now I just need to figure out what exactly in the table I need to change. ^device tree too long?

I've attached my ACPI tables for anyone curious.

 

TRX40_DESIGNARE_ACPI_TABLES.7z

Link to comment
Share on other sites

On 1/6/2022 at 4:48 PM, Mov AX, 0xDEAD said:

No, PDB not published for early vista betas, PDB exist since v5342, maybe earlier, but i not tested

Thats sad. I would like to see patched ACPI for x64 too. Can you please create some kind of 6666 for x64 in same way as you did for x86?ACPI_LatestXP+5048_x64.7z

According to this info I can only apply fix for 0xA5 (0x11, 0x08, ..., ...) _AMLILoadDDB. I cannot find now same places. A good start would be 6666 for x64. Can you please have a look on it? Or do you have some precreated file? I have attached latest 4099 ACPI for XP and 5048 from Longhorn.

Windows XP/2003 support only ACPI 1.0b syntax, last generation bioses uses ACPI 2.0+
To support ACPI 2.0 syntax need replace acpi.sys and apply additional patches to avoid known BSODs :

- 0xA5 (0x03, ..., C0140001, ...) missing ACPI 2.0 syntax, 99% solved, two solutions:
1) acpi.sys (v.5048, sha1:a09c0d9f6b5cb63192e2cebada56db38d3870b29) from Vista Beta/Longhorn v.5048
Pro:
- Has most of ACPI 2.0 syntax opcodes
- All integers are 64-bit regarding ACPI 2.0 specification
Cons:
- beta, compiled for next generation of windows
- failed implementation of some internal data types, _ValidateArgTypes generate BSOD 0xA5(0x03, xxx, C0140008, yyy)

Patches:
- Add pointer to _atDataObj struct for QWord Opcode
(_OpcodeTable start at .data:00039848, _atDataObj struct at .data:000397A8,
missing pointer at .data:00039880, dont forget add additional relocs)

2) acpi.sys from Windows XP SP3 (v.5512->v.6666) with integrated acpi 2.0 syntax support
Pro:
- based on original v.5512, match binary/offsets
Cons:
- All integers are still 32-bit, any operations on 64-bit fields/variables will drop high part of QuadWord

- 0xA5 (0x11, 0x08, ..., ...) unknow error in _AMLILoadDDB, probably fail after parsing DSDT/SSDT table, solved

Patch (by diderius6):
- Ignore status of _AMLILoadDDB in _ACPIInitializeDDB
(v5512 jl short .text:00036214 => nop, nop)

- 0xA5(0x03, ..., C0140008, ...) DSDT code have operation with unexpected type of arguments, partially solved
This BSOD probably means some argument has datatype, allowed only in ACPI 2.0
v5512 & v5048 support only argument datatypes allowed in ACPI 1.0b specification

Patch:
- _ValidateArgTypes must always return "OK", even on realy wrong types
(mov edi, 0xC0140008=>mov edi, 0x00000000 at head of _ValidateArgTypes)

- 0xA5 (0x10006, ..., ..., ...), missing _DIS method for "PNP0C0F"s (PCI Interrupt Link Devices) in DSDT/SSDT table

Patch (by daniel_k):
- Skip looking for PNP0C0F in _DisableLinkNodesAsyncWorker,
(v5512 call strstr, ..., jz .text:0001BBBD => jmp .text:0001BBBD )
Edited by George King
Link to comment
Share on other sites

3 hours ago, infuscomus said:

@George King

I'm going to give @skulltrail's acpi.sys a try and report back to you. The x86 version was buggy though and I doubt the x64 version will be any better.

On the plus side, source code is available for it so fixing any bugs would be easier than hacking at it with assembly.

For me that ACPI gave A5 BSOD

Link to comment
Share on other sites

23 hours ago, infuscomus said:

@simon73

This would be so much easier with a new install.

You can get into safe mode at least, thats something.

To get mouse an keyboard working you'll need to manually edit the registry offline to get them installed.

using a working windows install take everything from

 

	Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdclass
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mouclass
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mouhid
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\HID
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\kbdclass
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\kbdhid
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\mouclass
	Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\mouhid
	

 

and copy these keys across over to your XP registry.

After importing the registry entries you suggested and others (all the Enum portion 🙂 and more!) finally I have SAFE MODE working, with keyboard and mouse operating correctly:

safemodeok.png.7f9b018ab2f5f160fb77ae3213e27ead.png

 

But, as usual, If I try to boot XP in normal mode, I have the following image on the screen, and after a few seconds the PC reboots:

bloccato.png.91f5bb4b6e172a59f1d5bad5175b568c.png

 

Using the boot option that inhibit automatic reboot in case of fault I'm able to see the cause of BSOD, is exactly the same I have already posted: "PAGE FAULT IN NONPAGED AREA". This is the detail:striscia.png.c6c12a149ba97193dfb617ad6524b0b7.png

What can I do more?

And I'd like to know what is the differences between SAFE and NORMAL mode, to restrict the search of the "offending" driver or service loaded at boot time...anyone?

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...