Part 1    ◄   Part 2   ◄   Part 3   ◄    Part 4    ►   Part 5


Page 331

#4951gordo999
Zitat von ⇗ ruthan im Beitrag ¶ #4945
Workaround is simply turn off antivirus for moment of manipulation with files, because otherswise this drivers are not copied where it should be etc.. you can ignore detection, but Avira design is stupid
⇗ @ruthan  ...I have noticed that some modern antivirus products try to take over the entire system, like Symantec did at one time. I don't have much trouble with the free Comodo a/v although I noticed on XP that it has been interfering with serial communication between computers on the target end.
#4952ruthan
Zitat

2D over VESA - Anapa VBEMP
SciTech SNAP Graphics



Hmm, no luck so far, its VBEMP with Geforce is giving me Code 10 (all VBE2 and VBE3 - standard and nvidia options tested, new and old install), i downloaded only version 2015, because 2019 link giving just donate page.
SciTech SNAP Graphics  i have problem to find some download for WinXP version, i find only DOS and Win9x version. At least last version number for searching would help.

#4953ruthanOk some news.. i had to change Marwel Sata controller for Asmedia.. becasue it plays a bit better with Linux and i can place it too PCI-E 1x slot, what is advantage for my eternal not enough slots problem.

 I discovered, that Asmedia Sata 106x not really works with generic sata driver - infinite boot, but you can boot into safe mode and use Asmedia drivers, they works fine even with paragon GPT loader. Good news that these could be buy for 5-10$ and have possiblity to flash AHCI or IDE bios is nice to have at least one at home.
#4954ruthanI solved not working PS/2 after Vmware half-ass removal:

Procedure:
search for vmkbd.sys in registry and look for items with UpperFilters, you will find them in path like this:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}

Remove vmkbd value from UpperFilters  key, do dont remove whole key, just part of value, there should be left kbclass .. i did before that mistake that i remove whole key.
#4955ruthanSo only big problem which i now really have and could solvable in short term with my old install is not working NVME driver.

 Does someone here understand *.inf files?
 Does someone make it working with non english WinXP install? Because that is only clue which i have.

 Inf file dont looks complex, but there are some localization things. Its possible to simply discover which files are needed for installation? I could try to copy them from install here its working.
;
; Installation inf for the NVME Miniport
;

[Version]
Signature="$Windows NT$"
Provider=%COMM%
ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
Class=SCSIAdapter
DriverVer=07/19/2018, 1.3.1014.00
CatalogFile.NTAMD64 = nvme64.cat
CatalogFile.NTx86 = nvme86.cat

[PackageInfo]
Name=NVMe

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

[SourceDisksNames]
1 = %DiskId1%,,,""

[DestinationDirs]
DefaultDestDir = 12

[nvme_Service_Inst]
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_BOOT_START%
ErrorControl = %SERVICE_ERROR_NORMAL%
ServiceBinary = %12%\nvme.sys
LoadOrderGroup = SCSI miniport
AddReg = pnpsafe_pci_addreg
AddReg = Parameters

[nvme_EventLog_Inst]
AddReg = nvme_EventLog_AddReg

[nvme_EventLog_AddReg]
HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll"
HKR,,TypesSupported,%REG_DWORD%,7

[pnpsafe_pci_addreg]
HKR, "Parameters\PnpInterface", "5", %REG_DWORD%, 0x00000001
HKR, "Parameters", "BusType", %REG_DWORD%, 0x00000001

[msi_addreg]
HKR, Interrupt Management, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, %REG_DWORD%, 1
HKR, Interrupt Management\MessageSignaledInterruptProperties, MessageNumberLimit, %REG_DWORD%, 32
HKR, Interrupt Management\Affinity Policy, 0x00000010
HKR, Interrupt Management\Affinity Policy, DevicePolicy, %REG_DWORD%, 5 ;IrqPolicySpreadMessagesAcrossAllProcessors

[Parameters]
HKR, Parameters\Device, Namespaces, %REG_DWORD%, 0x00000010 ; max number of namespaces supported
HKR, Parameters\Device, MaxTXSize, %REG_DWORD%, 0x00020000 ; max trasnfer size
HKR, Parameters\Device, AdQEntries, %REG_DWORD%, 0x00000080 ; admin queue size (num of entries)
HKR, Parameters\Device, IoQEntries, %REG_DWORD%, 0x00000400 ; IO queue size (num of entries)
HKR, Parameters\Device, IntCoalescingTime, %REG_DWORD%, 0x00000000 ; time threshold for INT coalescing
HKR, Parameters\Device, IntCoalescingEntries, %REG_DWORD%, 0x00000000 ; # of entries threadhold for INT coalescing

;******************************************************************************
;*
;* 32-BIT X86 ARCHITECTURE
;*
;* This section specifies the 32-bit architecture specific INF file entries
;* required to install a driver as a 32-bit compatible driver.
;*
;******************************************************************************
[SourceDisksFiles.x86]
nvme.sys = 1,,,

[COMM.NTx86]
%COMMNvme.DeviceDesc% = nvme_inst, PCI\CC_010802
;%COMMNvmeChat.DeviceDesc% = nvme_inst, PCI\CC_010802

[nvme_inst.ntx86]
CopyFiles=@nvme.sys

[nvme_inst.ntx86.HW]
AddReg = msi_addreg

[nvme_inst.ntx86.Services]
AddService = nvme, 0x00000002 , nvme_Service_Inst, nvme_EventLog_Inst


;******************************************************************************
;*
;* 64-BIT X86 ARCHITECTURE
;*
;* This section specifies the 64-bit architecture specific INF file entries
;* required to install a driver as a 64-bit compatible driver.
;*
;******************************************************************************

[SourceDisksFiles.amd64]
nvme.sys = 1,,,

[COMM.NTamd64]
%COMMNvme.DeviceDesc% = nvme_inst, PCI\CC_010802
;%COMMNvmeChat.DeviceDesc% = nvme_inst, PCI\CC_010802

[nvme_inst.NTamd64]
CopyFiles=@nvme.sys

[nvme_inst.NTamd64.HW]
AddReg = msi_addreg

[nvme_inst.NTamd64.Services]
AddService = nvme, 0x00000002 , nvme_Service_Inst, nvme_EventLog_Inst


[Strings]
;
; Localizable Strings
;
diskId1 = "NVMe Installation Disk"
CommNvme.DeviceDesc = "Community NVMe 1.3 Storport Miniport by Schtrom"
COMM = "Community"

;
; Non-Localizable Strings
;

REG_EXPAND_SZ = 0x00020000
REG_DWORD = 0x00010001
SERVICE_KERNEL_DRIVER = 1
SERVICE_BOOT_START = 0
SERVICE_ERROR_NORMAL = 1


   

 If understand it correctly:
1) it using Nvme86.cat + Nvme.sys which are part of installation package.
2) After that there are add some logging with System32\IoLogMsg.dll - i have this file in my system.
3)  add its creating couple of registry keys.. - there could be problem that key is not existing or with permission.

I guess that there is now any tool which would just print in which step of inf file processing problem happens?
#4956diderius6⇗ @ruthan

Install this nvme driver on another XP installation and connect your wished nvme device.
After this, extract from registry the whole tree nvme and call it nvme.reg  .
On your old XP, where you want to put this driver at once via registry,
set all permissions to "enable" and at the field advantage (or similar) put all marks,
that this permissions also are given to subfolders.

The extracted nvme.reg should look like
this one from my compi

Dietmar
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme]
"Type"=dword:00000001
"Start"=dword:00000000
"ErrorControl"=dword:00000001
"Tag"=dword:00000040
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,6e,00,76,00,6d,00,65,00,2e,00,73,\
00,79,00,73,00,00,00
"Group"="SCSI miniport"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme\Parameters]
"BusType"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme\Parameters\Debug Print Filter]
"DEFAULT"=dword:0000000f

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme\Parameters\Device]
"Namespaces"=dword:00000010
"MaxTXSize"=dword:00020000
"AdQEntries"=dword:00000080
"IoQEntries"=dword:00000400
"IntCoalescingTime"=dword:00000000
"IntCoalescingEntries"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme\Parameters\PnpInterface]
"5"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme\Security]
"Security"=hex:01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,00,02,\
00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
00,00,02,00,60,00,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,\
05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\
20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,\
00,18,00,fd,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,\
00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme\Enum]
"0"="Root\\LEGACY_NVME\\0000"
"Count"=dword:00000001
"NextInstance"=dword:00000001
#4957OutbreakerDo we have no fix for this timer problem reported in:
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (313)
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (313)
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (315)
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (318)
#4958ruthan⇗ @diderius6 Thanks. I dont fully understand this part, what i have to do:

Zitat
set all permissions to "enable" and at the field advantage (or similar) put all marks,
that this permissions also are given to subfolders.



 Here is my exported key, i have 2 NVME if it matters, i imported it by standard way, its same so far:

  Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme]
"Type"=dword:00000001
"Start"=dword:00000000
"ErrorControl"=dword:00000001
"Tag"=dword:00000022
"ImagePath"=hex(2):73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,44,00,\
52,00,49,00,56,00,45,00,52,00,53,00,5c,00,6e,00,76,00,6d,00,65,00,2e,00,73,\
00,79,00,73,00,00,00
"Group"="SCSI miniport"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme\Parameters]
"BusType"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme\Parameters\Device]
"Namespaces"=dword:00000010
"MaxTXSize"=dword:00020000
"AdQEntries"=dword:00000080
"IoQEntries"=dword:00000400
"IntCoalescingTime"=dword:00000000
"IntCoalescingEntries"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme\Parameters\PnpInterface]
"5"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme\Security]
"Security"=hex:01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,00,02,\
00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
00,00,02,00,60,00,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,\
05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\
20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,\
00,18,00,fd,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,\
00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\nvme\Enum]
"0"="PCI\\VEN_144D&DEV_A802&SUBSYS_A801144D&REV_01\\4&188b60fb&0&00DC"
"Count"=dword:00000002
"NextInstance"=dword:00000002
"1"="PCI\\VEN_1CC1&DEV_8201&SUBSYS_82011CC1&REV_03\\4&45c6671&0&00E8"

   
  
 Problem seems to be that NVME service is there but its not running for some reason, when i try to push it manual its the same.
#4959diderius6⇗ @ruthan

Did you try different storport.sys

Dietmar
#4960infuscomus⇗ @Mov AX, 0xDEAD ⇗ @daniel_k

On one of my machines I have encountered a power dropout issue with the existing backported usbxhci driver
I tried using a powered USB hub but that didn't resolve the issue - not to worry I can get by with a USB 2.0 pcie card


I was just wondering would this ntoskrnl extender project be able to potentially solve this problem?
#4961ruthan⇗ @diderius6
 Im using that with file version 5.2.3790.4173 , i compared file from working install and my old and at least TC compare claims that its the same file, so if it is right, problem has to be elsewhere.
#4962Mov AX, 0xDEAD⇗ @infuscomus

Zitat

I was just wondering would this ntoskrnl extender project be able to potentially solve this problem?


extender only helps to port drivers (just library of missed import), it cant fix any internal incompatibility with old kernel
If you have power dropout issue, you will have it with extender too

#4963infuscomus⇗ @Mov AX, 0xDEAD

are you sure it could not possibly these functions being not yet implemented stub functions?

PoRegisterPowerSettingCallback
PoUnregisterPowerSettingCallback
#4964ruthanBetter 2D driver..
I contacted VBEMP author and he say that VBEMP 2k its not working with newer cards like Geforce 1070, but only which some old ones which are still supporting VESA 3, but i got PRO TIP - when i disable videocard HW acceleration - scrolling is much faster.
#4965infuscomus⇗ @diderius6

do you still have your ASRock AB350 G K4 motherboard?

if yes, can you test the backported usbxhci driver with it?

I would like to know if you get power dropouts on USB 3 with it, or if its just me.

 

Page 332

#4966diderius6⇗ @infuscomus

Hi, yes I have and on Friday afternoon I will test.
I also have disconnects but this has nothing to do with this nice USB3 driver,
it happens because of too much current needed via nvme disks in USB clothes.
This happens with any USB driver, even original Asmedia ones
Dietmar
#4967Andalu⇗ @diderius6
my experience with the NVMe to USB 3.1 adapter (JSM583 chipset): I got sudden disconnections and BSOD on restarting only on the asus Q370 board (with USB 3.1 ports). Same results in Win7, Win8 and Win10.

No problem when I tried the adapter on both Asrock and Asus B250 boards (USB 3.0 ports only), also rebooting with 4 UASP devices (included the JMS583 adapter) + 2 USB sticks already connected to the boards. I have tried over 10 restarts for each board, nothing changed.

In ⇗ this article they talk about the JMS583 chipset and its stability issues.
#4968infuscomus⇗ @Andalu ⇗ @diderius6

I have a logitech G510 and a Razer lancehead mouse on a powered USB hub

and separately an iodd2531 holding my XP install media

As soon as XP textmode setup loads the USB 3.0 driver the USB devices light up but accept no inputs (if the USB 3.0 driver is not loaded the devices do not light up at all)
#4969infuscomus⇗ @diderius6

have you had time to test usbxhci on the AB350 K4?
#4970diderius6⇗ @infuscomus

Yes, I tested about 30 different USB devices on this board. USB 1.1, USB2, USB30, USB3.1, USB3.2 mouse,
usb hubs, usb sticks, usb harddisks, usb cam, handy. Few hundred times plugin <> plugout.
All works to 100% with the nice driver from ⇗ @Mov AX, 0xDEAD . I can do USB boot there.

Only the nvme devices (nvme Optane 28 GB, nvme Samsung 970 PRO 512 GB) in USB clothes fail always.
Both have the chipset JMS583.
This fail (disconnect) happens also on all other USB drivers, mainboards that I tested and also via self powered USB hub.
So now I think, it is an error in the device ICY IB-1817M-C31 itself,
Dietmar
#4971infuscomus⇗ @diderius6

did usbxhci work for XP textmode setup?

i don't know, maybe my iodd2531 confuses the driver?
#4972diderius6⇗ @infuscomus

Yes, I can run full XP Setup via normal CD install to harddisk or direct to any USB device
and I can install XP SP3 direct via Firadisk to any USB device with the nice XP from zone.62
Dietmar
#4973infuscomus⇗ @diderius6

during XP textmode setup did USB mouse and keyboard work if connected directly to USB 3.0?

I'm guessing something on my PC went wrong and it isn't the USB 3.0 driver.
#4974diderius6⇗ @infuscomus

Yes, everything with USB works from the beginning of install.
With any USB device connected, there are strange 40 seconds you have to wait,
until the install medium is recogniced.
Sometimes for unknow reason I got BSOD with Firadisk,
but when I change the USB slot,
all is ok
Dietmar

PS: Make a try with install from real Setup CD, connected to the SATA port.
This works for me always on any compi with the XP from zone.62 .
#4975infuscomus⇗ @diderius6

OK, Thanks for testing

I'll try every USB port on the motherboard and see if I get a different result.
#4976diderius6I just make a direct to USB harddisk install via Setup CD on the Lenovo T43 with the nice XP SP3 from zone62.com .
Works at once
Dietmar

PS: I use for USB2 boot the AMD USB driver.
#4977infuscomus⇗ @diderius6

I got a BSOD C2 BAD_POOL_CALLER

did you ever see this BSOD?
#4978ruthanI see this after reboots from other OS, my guess is that things wasnt really reset by reboot.
#4979diderius6⇗ @infuscomus

Yes, this happens sometimes. But this BSOD goes away,
when I change the USB slot for Firadisk
or when I use Setup CD via SATA
Dietmar
#4980infuscomus⇗ @diderius6

Yes!
I found a USB port combination that works!

Although, I am curious as to why XP setup is so troublesome regarding which USB ports will work properly during the install.

It is a mystery..

 

Page 333

#4981ruthanNo mystery - just bugs and some bug food..
#4982canonkongIt is working well on my GC-Titan Bridge Thunderbolt 3 card.
#4983AndaluAbout the USB3 driver backported from Win8, USB Device Tree Viewer has an yellow mark for the same USB ports (13,14,15,16) in both my B250 Skylake boards:

Asrock B250M:

 


Asus Prime B250M:



I also tried in Win8 and Win10: no changes, same usb ports involved. No yellow marks in Win7.


And no yellow mark in XP with the AMDXHCI driver v145:

#4984Mov AX, 0xDEAD⇗ @Andalu

Zitat von ⇗ Andalu im Beitrag ¶ #4983
About the USB3 driver backported from Win8, USB Device Tree Viewer has an yellow mark for the same USB ports (13,14,15,16) in both my B250 Skylake boards


Hi Andalu

this is bug with Intel controller/bios, on your first picture controller itself reports total 22 Ports:
USB2 only ports 1-12
USB3 only ports 17-22

You may ask what about  13-16 Ports ? What kind of USB Type are they  ?
Controller cant say :), so win8 usb3 driver mark these ports as yellow, it's OK, ports realy doesnt exist on motherboard

AMDXHCI driver is not that smart and probably thinks these ports are like USB2
#4985Andalu⇗ @Mov AX, 0xDEAD
the intel driver also doesn't seem so smart if it recognizes all usb ports in Windows7 for the same controller:

#4986Mov AX, 0xDEAD
Zitat von ⇗ Andalu im Beitrag ¶ #4985
@Mov AX, 0xDEAD
the intel driver also doesn't seem so smart if it recognizes all usb ports in Windows7 for the same controller:


Intel driver share code with NEC driver, some AMD x64 drivers also share same code, so I'm not surprised
#4987Andalu⇗ @Mov AX, 0xDEAD
here the USB3 driver backported from Win8 installed in Win7

#4988AndaluSome benchmarks for UASP devices working in XP with the uaspstor driver backported from win8


Samsung 970evo nvme on USB 3.1 to NVMe adapter (Asmedia ASM2362 chip):



Samsung 850evo SSD on USB 3.1 to SATA adapter (Via VL715 chip):



Here the results for the same Samsung 850evo SSD connected on a SATA3 slot:
#4989daniel_k⇗ @Andalu

Is the Asmedia ASM2362 stable all the time?

850evo is faster on USB bridge than on native SATA3?!

All benchs ran on different conditions? PAE, PAE4G and no PAE?
#4990Andalu⇗ @daniel_k
even without PAE, the results won't change



Until now, no disconnection for the ASM2362 UASP device beyond the heat as for the JMS583 chip.
However, I also got a BSOD 0x0C2 when 4 UASP devices was connected to the board at same time during a restart.
#4991daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #4990
even without PAE, the results won't change

That's great, but was just an observation.

Zitat
Until now, no disconnection for the ASM2362 UASP device beyond the heat as for the JMS583 chip.
However, I also got a BSOD 0x0C2 when 4 UASP devices was connected to the board at same time during a restart.


According to MS docs, those 0xC2 errors are driver bugs:
⇗ https://docs.microsoft.com/en-us/windows...bad-pool-caller

You mean you got a BSOD 0xC2 when Windows was shutting down or loading after BIOS POST?

What about forcing install of the standard Mass Storage driver on XP for all 4 devices or testing Win8 to see if you get the same behavior?

#4992Andalu
Zitat von ⇗ daniel_k im Beitrag ¶ #4991
According to MS docs, those 0xC2 errors are driver bugs:
⇗ https://docs.microsoft.com/en-us/windows...bad-pool-caller

You mean you got a BSOD 0xC2 when Windows was shutting down or loading after BIOS POST?


I got the BAD_POOL_CALLER bsod after the POST step.

Zitat von ⇗ daniel_k im Beitrag ¶ #4991
What about forcing install of the standard Mass Storage driver on XP for all 4 devices or testing Win8 to see if you get the same behavior?

I'll try firstly in Win8.
#4993daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #4992
I'll try firstly in Win8.

Ok, if you don't get any BSODs after several restarts, please force install of the standard Mass Storage driver on XP for all 4 devices.

This way we'll know if the problem is in uaspstor.sys or in xhci drivers.
#4994Andalu
Zitat von ⇗ daniel_k im Beitrag ¶ #4993
Zitat von ⇗ Andalu im Beitrag ¶ #4992
I'll try firstly in Win8.

Ok, if you don't get any BSODs after several restarts, please force install of the standard Mass Storage driver on XP for all 4 devices.

This way we'll know if the problem is in uaspstor.sys or in xhci drivers.


I'm on the eleventh restart just now (in Win8), no issue encountered with 4 UASP devices connected to the USB 3.1 Gen2 ports.
#4995daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #4994
I'm on the eleventh restart just now (in Win8), no issue encountered with 4 UASP devices connected to the USB 3.1 Gen2 ports.

Good.

On XP the BSODs were frequent?

 

Page 334

#4996Andalu⇗ @daniel_k
After ten restarts in XP with the "USB mass storage" devices connected to the USB 3.1 ports, no bsod, no failed recognition, no sudden disconnection.

On the left the UASP devices, on the right the same devices installed as USB mass storage devices:

 

I'm trying now to restart the XP system with the 4 UASP devices to see if another BSOD can occur. Yesterday it occurred on the 3th restarting attempt.
Please consider that some days ago I had used the 'dangerous' JMS583 device with which I could not arrive at the 3th restart without a bsod (not only a bad_pool_caller).
#4997Andalu⇗ @daniel_k
BSOD 0x0C2 just occurred after POST, as yesterday. I swapped the UASP devices and I got the bad_pool_caller error.
Could it be that this error is related to a specific USB port? Until I switched the ports, no BSOD had occurred.

EDIT: on restarting after that BSOD with the same UASP devices connected to the same ports, XP boots without errors and the UASP devices are correctly recognized.
#4998daniel_k⇗ @Andalu

So the problem is related to the XHCI drivers.

Will send you a PM with some test files.
#4999Andalu⇗ @daniel_k
shutdowning the system, I got the same C2 bsod on restart (when the XP logo appears) without swapping the UASP devices.
#5000tumagonxHi, new user here. Thanks for the generic drivers port for XP that you guys made!
I want to ask about gpt_loader.sys from paragon, I seen mentioned version of 8.x which patched for stability and 9.x which said has hybridMBR issue. Just to clarify does version 10.x also exhibit the same issue as 9.x?
#5001tumagonxAbout storport transplant (from NT52). AFAIK NT51 kernel has no knowledge about storport unlike NT52 that understand BOTH scsiport and storport in tandem.
SO when using storport do you have issue with third party drivers which utilise scsiport?

About WinXPPAE patch, anyone rich enough to experiment with 256GB RAM? I think I read somewhere (by Mark Russinovich?) that in Server 2003 x32 (I assume datacenter) the mapping of 128GB need about 960MB PTE within 2GB system space, with 1920MB PTE there still 128MB left (which can be helped with pagefile if more resources needed by system). I think thats a possibility.

One thing that confuse me, often when talking about PAE (e.g. in wikipedia) they usually mention 36-bit (64GB) PAE which can be traced from Pentium Pro 200Mhz that has it. If the patch remove memory licensing then Windows will try whatever the Processor capable right? (as long as its PTE can be fitted in 2GB system space)

Regarding AWE I remember that mysql 5.0.x (but not later version) has support it (up to 63GB), just in case someone want to experiment with real-world application.
#5002tumagonxForgot to ask, I read in nvidia forum someone complaining that driver after 332.21 break PAE support, effectively limit XP PAE to Kepler generation instead of Maxwell, is this confirmed?
#5003infuscomus⇗ @tumagonx

I did not know there was a 10.x version of gpt_loader - so I don't know if it has any bugs

I don't have any hardware that mixes storport and scsiport drivers together but I don't see why they could not coexist

My system only has 32gb of RAM

This is the first I've heard of any nvidia related PAE issue
#5004tumagonx⇗ @infuscomus

my HFS+ for Windows 9.1 (filename: HFS4WIN_ea_xU.msi) has gpt_loader.sys version 10.4.0.388

For example the only freely available virtual DVD writer by TotalMounter install scsiport driver,  so is the open source arsenal image mounter use scsiport. I recalled there are references of storport in the NT52 kernel which absent in XP, didn't check what's kernel "doing" with it.
#5005tumagonx⇗ @infuscomus since you have 32GB have you tried XP SP1? is there any PAE limiter?
#5006ruthanYou dont need any PAE limitter because OS is 32bit, its simply ignore memory above 4GB, unless some hacks.
#5007ruthanIs there any realiable Ramdisk program to use memory above 4GB compatible with present pae /4G mode?
#5008ruthanIf you are in constant not enough PCI-E slots problem as me, this could be handy.

I also made deeper look on frakenstein combo PCI-E addon cards:
- there are SATA+USB3 and USB3+LAN cards - to save the slots..

- USB3+LAN are not so great they just can save some messy cabling, but other they are just internal made as USB-LANs add i saw Assix and Realtek Gigabit ones and almost all of them are using VIA USB3, only exception is Startech(=Expensive) PEXUSB3S3G , which are using NEC USB3 - which are from my experience even worse that VIA. So far i dont see some not branded Startech card for same price, which is quite normal, because Startech often, just selling same HW as other for 2x,3x higher price, but have some unique devices..

- Sata + USB3 - seems as better deals.
There Syba SD-PEX50055 - with Etron USB3 + ASM1061 and i dunno which Sata controller and us usual which good price available only in US, because EU shipping is more expressive than card itself. - This could be good Intel used Etron USB3 as its first USB3 implementations.If you will find some with good EU shipping price let me know.
and probably better Asmedia cards ASM1042 (USB), ASM1061 (SATA), ASM1182 (just some pci-e chipset) - which is available form Asia - Free shipping and cheaper - i ordered one.
- There is also VLI VL805 (VIA) & ASMedia 1061(Sata).

 Does someone real experience with these 2 in 1 cards?


 Because if would make it working, i can use free slots for example for nice PCI-E DVI video grabbing cards or others, or have more USB3 controller.. or more NVME devices, to make all devies really working, so far for me biggest problem is really not working Xbox360 controller in WinXP - because its not working with community Intel USB3 (or at least not if connected after reboot= black login screen dead - it would be really nice bypass this problem by some HW mod, even if devices will not working).. but not even with VIA USB3 - in any OS.. with Intel USB3 and no WinXP its working fine.
#5009Outbreaker⇗ @tumagonx
The last gpt_loader.sys for Windows XP is v8.0.1.0
#5010ruthanThere is some mismatch between Programs versions and /.sys versioning. I have program 10.x.. but sys file is 8.0.1.0.. but magic distro has integrated version 8 - but its not working great, so i guess that is version 8 of program, which some older sys file, or more than just .sys file matters.

 Ot they simply as other programs simply forgot to increase versioning.. My file is from 2011.02.15, signature from 2010.12.03

 

Page 335

#5011Andalu
Zitat von ⇗ ruthan im Beitrag ¶ #5007
Is there any realiable Ramdisk program to use memory above 4GB compatible with present pae /4G mode?

This works for both PAE /4Gb and /ALL options:

 
#5012ruthan⇗ @Andalu thanks, it looks great.
#5013tumagonx⇗ @Outbreaker why you are so sure? which from paragon software your .sys came from? (I already said where mine came from)
FYI 10.4.0.388 have date mod of 14 November, 2014, 19:21:32 subsystem version clearly stated 5.1 compiled with msvc9.0 filesize 44,624

I have tested it before (along with Paragon Extfs for windows) with snow leopard on other partition and redhat Linux too. I just don't have GPT disk, that's why I asked.
#5014Outbreaker⇗ @tumagonx
The "Paragon GPT Loader v10.0.16.12944" will install the gpt_loader.sys driver file version 8.0.1.0 on my Windows XP computer.

EDIT:
I notice now, the "Paragon GPT Loader" has been discontinued and they now have a ton of other tools, which are all no longer supported for Windows XP.
A good question now is which gpt_loader.sys file version is now the last working one for Windows XP.
#5015tumagonx⇗ @Outbreaker ...and what date was that GPT loader 10?

FYI it is normal that Mac format disk as GPT, that why gpt bundled with HFS+ for Windows. It's a wonder why you're comparing the version of two different product though....

I got all my paragon freeware "special edition" when XP discontinued back then:
HFS+ for Windows 9.1
Partition Manager 14
Disk Wiper 12
Drive Copy 14
#5016ruthan
Zitat
A good question now is which gpt_loader.sys file version is now the last working one for Windows XP


 Every versions was working within XP, it was primary OS, where such driver make sense, because Windows 7+ have native gpt support. Maybe Vista, but nobody using it and maybe it support Win2000 (update: yeah its supported) i never checked it.

 If is not working for you its because of Intel controllers, its simply never worked with them.

#5017canonkongHere is a link about some source code from win10, meybe we can port them.
⇗ https://pastebin.com/VGEbWVSM
#5018Mov AX, 0xDEAD
Zitat von ⇗ canonkong im Beitrag ¶ #5017
Here is a link about some source code from win10, meybe we can port them

we know about this leak, but seems no one tried to compile, need rewrite some parts with Timers and create some missing files
#5019ruthanOn installation where is NVME not working (i testing proven - with other install v1.3_20180719 ) i found error in Even log, maybe it helps.
#5020tumagonxAnyone here with geforce hardware could confirm my previous question that driver after 332.21 works with winxppae patch?

some prior reports:
just search for "332.21"

⇗ https://wj32.org/wp/2011/02/23/pae-patch...-windows-7-sp1/
⇗ https://wj32.org/wp/2013/10/25/pae-patch...or-windows-8-1/

⇗ https://www.nvidia.com/en-us/geforce/for...pport-pae-mode/

⇗ http://fireswordblog.blogspot.com/2014/0...msys-after.html

⇗ https://forums.intel.com/s/question/0D50...?language=en_US
#5021ruthanThis old stuff just ignore it, there now newer better PAE patches, with /4GB switch they will work fine for everything. If you need more than 4GB there are quite and bad drivers for other devices and which will have issues.. and nobody can fix all of them.  You can make with Page /4g Ramdisk to use ram above 4GB, if you really need something very quick. There is Win limit for max 2GB per program anyway, very few enterprise SW like big DB engine, is able to get around it and use more processes i thing.

 You can try it and report bug, maybe, maybe someone will fix 1 broken driver for you.
#5022Mov AX, 0xDEAD¶ NTOSKRNL Emu_Extender
Post Updated, project published on github
#5023infuscomus⇗ @Mov AX, 0xDEAD

how far do you think we could go with this project? is there any hardware we could not get working with this?
#5024Mov AX, 0xDEAD⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #5023
how far do you think we could go with this project?

I made it because existing way of backporting is "dirty hacks", mess of injects/stubs/Jxx->Jyy. I've been wanting to remake all this horror for a long time.
I cant say how this project can helps with new backports, if i will do something new, i will use it
#5025infuscomus⇗ @daniel_k

usbtreeview of older Mov Ax 0xDEAD usbxhci driver



usbtreeview of newer daniel_k driver



text report attached

-----

If I did this incorrectly let me know.



infuscomus has attached files to this post

 

Page 336

#5026infuscomus
Zitat von ⇗ coldwove im Beitrag ¶ #3346
@diderius6 nope still doing the same thing sadly :c
0x000000A5
0x00000002
0x8D1BF828
0x00000001
0x8D1C4778

^
Can anyone confirm whether or not A5 BSODs are fixed for Threadripper Systems?
#5027gordo999⇗ @diderius6 ...I think you were asking ⇗ @Mov AX, 0xDEAD about the i219 missing functions for XP. The following is a list I made of both in depends x32 for the ntoskrnl and ndis51 missing functions for the i219 driver. I got them using depends x86 in a directory full of XP drivers and files by dropping the W7 driver, e1d6232.sys driver, into the directory and running depends for that driver.

My B360 chipset LAN driver hardware ID is Ven_8086&DEV_15BC. The e1d6232.sys is a W7 LAN x32 driver that lists the 15BC. I was planning to add the drivers marked **** below which depends marked as missing from the XP ntoskrnl and ndis.sys (5.1 wrapper). I had planned to add these missing exports but I have been up to my butt in alligators recently re personal matters.

My current W7 i219 driver is e1d62x64 but is has other files listed as follows:

e1d62x64.din
e1dmsg.dll
NicCo4.dll
NicInstD.dll

They may affect the i219 as well under XP even if the missing files are replaced. And please note my W7 installation is x64. I got the drivers from an Intel PRO1000 package for W7. I can get the exact package if you need it.

⇗ @daniel_k ...may have worked on this before but I don't know how far he got.

The only exports reported missing were from from XP ntoskrnl and ndis.sys and I have marked them below with ***.

ntoskrnl exports...

*** marks missing export

***EtwWrite
ExAllocatePoolWithTag
ExFreePoolWithTag
IoAllocateErrorLogEntry
***IoGetAffinityInterrupt
IoGetDeviceProperty
IoWMIRegistrationControl
IoWriteErrorLogEntry
IofCompleteRequest
KeAcquireInStackQueuedSpinLockAtDpcLevel
KeBugCheckEx
***KeGetProcessorIndexFromNumber
***KeGetProcessorNumberFromIndex
KeInitializeMutex
***KeQueryHighestNodeNumber
KeQuerySystemTime
KeReleaseInStackQueuedSpinLockFromDpcLevel
KeReleaseMutex
KeWaitForSingleObject
KefAcquireSpinLockAtDpcLevel
KefReleaseSpinLockFromDpcLevel
MmGetSystemRoutineAddress
MmMapLockedPagesSpecifyCache
***PoRegisterPowerSettingCallback
***PoUnregisterPowerSettingCallback
RtlAppendUnicodeStringToString
RtlCompareMemory
RtlCopyUnicodeString
RtlGetVersion
RtlInitUnicodeString
ZwClose
ZwOpenFile
_alldiv
_allmul
_allshl
_aulldiv
_aullshr
_purecall
_vsnwprintf
memcpy
***memcpy_s
memset
***sprintf_s
***strcpy_s
***vsprintf_s

ndis51 exports...

NdisAcquireReadWriteLock
***NdisAllocateIoWorkItem
***NdisAllocateMdl
NdisAllocateMemoryWithTag
***NdisAllocateMemoryWithTagPriority
***NdisAllocateNetBufferAndNetBufferList
***NdisAllocateNetBufferListPool
NdisCloseConfiguration
***NdisDeregisterDeviceEx
***NdisFreeIoWorkItem
***NdisFreeMdl
NdisFreeMemory
***NdisFreeNetBufferList
***NdisFreeNetBufferListPool
NdisGetRoutineAddress
NdisGetVersion
***NdisGroupActiveProcessorCount
NdisInitializeEvent
NdisInitializeReadWriteLock
NdisInitializeString
***NdisMAllocateNetBufferSGList
NdisMAllocateSharedMemory
NdisMCancelTimer
***NdisMDeregisterInterruptEx
***NdisMDeregisterMiniportDriver
***NdisMDeregisterScatterGatherDma
***NdisMFreeNetBufferSGList
NdisMFreeSharedMemory
***NdisMGetBusData
NdisMGetDeviceProperty
***NdisMIndicateReceiveNetBufferLists
***NdisMIndicateStatusEx
NdisMInitializeTimer
NdisMMapIoSpace
NdisMQueryAdapterInstanceName
***NdisMRegisterInterruptEx
***NdisMRegisterMiniportDriver
***NdisMRegisterScatterGatherDma
NdisMRemoveMiniport
NdisMResetComplete
***NdisMSendNetBufferListsComplete
***NdisMSetBusData
***NdisMSetMiniportAttributes
NdisMSetPeriodicTimer
NdisMSleep
NdisMUnmapIoSpace
***NdisOpenConfigurationEx
***NdisQueueIoWorkItem
NdisReadConfiguration
NdisReadNetworkAddress
***NdisRegisterDeviceEx
NdisReleaseReadWriteLock
NdisResetEvent
NdisSetEvent
***NdisSetOptionalHandlers
NdisSetTimer
NdisWaitEvent



Just noticed...

NicCo4.dll is missing .....WNetRestoreConnectionA in mpr.dll ....same for NicInstD.dll

Oddly, it lists mpr.dll as missing the same export. So, maybe if export is added to mpr.dll that will fix both files above.
#5028infuscomus⇗ @gordo999

the e1d6232 is not missing many exports

e1d6232 missing

IoGetAffinityInterrupt
vsprintf_s
sprintf_s
strcpy_s
PoUnregisterPowerSettingCallback
PoRegisterPowerSettingCallback
memcpy_s
KeQueryHighestNodeNumber
KeGetProcessorIndexFromNumber
KeGetProcessorNumberFromIndex
EtwWrite



ntoskrnl extender has these covered but there is more

ndis 7 missing

KeGetCurrentProcessorNumberEx
KeRevertToUserGroupAffinityThread
MmAllocateContiguousMemorySpecifyCacheNode
KeSetSystemGroupAffinityThread
KeQueryHighestNodeNumber
ExInitializeLookasideListEx
ExDeleteLookasideListEx
EtwWriteTransfer
KeQueryGroupAffinity
KeQueryActiveProcessorCountEx
KeQueryDpcWatchdogInformation
NtTraceControl
KeGetProcessorIndexFromNumber
KeQueryLogicalProcessorRelationship
KeGetProcessorNumberFromIndex
EtwRegister
KeSetTargetProcessorDpcEx
KeRegisterProcessorChangeCallback
PoRegisterPowerSettingCallback
KeQueryMaximumProcessorCountEx
RtlNumberOfSetBitsUlongPtr
KeQueryActiveGroupCount
KeQueryMaximumGroupCount
KeTestSpinLock
KeQueryNodeActiveAffinity
IoGetDeviceNumaNode
NtQuerySystemInformationEx
KeSetCoalescableTimer
IoGetDevicePropertyData
IoDisconnectInterruptEx
IoConnectInterruptEx
EtwWrite
PcwAddInstance
PcwRegister



netio 7 missing

MmAllocatePagesForMdlEx
KeFreeCalloutStack
KeAllocateCalloutStack
KeQueryActiveProcessorCountEx
IoInitializeWorkItem
IoSizeofWorkItem
IoUninitializeWorkItem
IoQueueWorkItemEx
EtwUnregister
EtwWrite
EtwRegister
SeCaptureSubjectContextEx
KeTestSpinLock
SeAccessCheckFromState
RtlCreateHashTable
RtlDeleteHashTable
RtlGetNextEntryHashTable
RtlLookupEntryHashTable
RtlRemoveEntryHashTable
RtlInsertEntryHashTable
RtlEndEnumerationHashTable
RtlEnumerateEntryHashTable
RtlInitEnumerationHashTable
RtlContractHashTable
RtlExpandHashTable
KeSetCoalescableTimer
ExInitializeLookasideListEx
ExDeleteLookasideListEx
KeGetCurrentProcessorNumberEx
KeQueryMaximumProcessorCountEx
#5029gordo999
Zitat von ⇗ infuscomus im Beitrag ¶ #5028
the e1d6232 is not missing many exports
⇗ @infuscomus ....I am wondering what method you used to determine the missing exports? I did it in XP in a directory containing the entire XP System32 and drivers directories. When I loaded e1d6232, in the same directory, into depends x86 it gave me the list I posted. The exports I marked as *** were marked in red in depends. I was using ndis.sys 5.1 version and the XP SP3 ntoskrnl.
#5030ruthanI have other question to magic distro?
Its possible to use Windows updates, activate it with my key?
And its safe with new *.dll use things  like sfc /scan ?
#5031Mov AX, 0xDEAD⇗ @Andalu

Zitat von ⇗ Andalu im Beitrag ¶ #4990

Until now, no disconnection for the ASM2362 UASP device beyond the heat as for the JMS583 chip.
However, I also got a BSOD 0x0C2 when 4 UASP devices was connected to the board at same time during a restart.


Hi Andalu
If it possible, please enable crashdump saving to disk and send me (i think in dump will never saved any your confidental info)
With some BSODs Windows cant save any files to disk and this BSODs very hard to investigate (need second pc with remote debugging)
#5032Andalu⇗ @Mov AX, 0xDEAD
Hi,
I had already enabled the 'Kernel Memory Dump' to get the dump file for that bad_pool_caller bsod without success. I had also modified the registry to find a way to obtain it.
I was able to save the dump only when I applied the trick to simulate a bsod via keyboard keys (holding right ctrl + pressing the scroll lock two times).


edit:

Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5031
....(need second pc with remote debugging)

I don't think I'm able to do this because I've never debugged.
#5033Andalu⇗ @Mov AX, 0xDEAD
I tried once again to configure the system as below in the hope to save the memory.dump (editing also the boot.ini file with the /maxmem option):

 

but without results because when the bsod occurred again the dump file was not saved anyway.
#5034infuscomus⇗ @Andalu

Earlier ⇗ @daniel_k sent me a driver that solved a C2 BSOD for me, ask him if you can try it out.
#5035daniel_k
Zitat von ⇗ infuscomus im Beitrag ¶ #5034
@Andalu

Earlier @daniel_k sent me a driver that solved a C2 BSOD for me, ask him if you can try it out.

He already has it, sent Beta3 to both of you having the same issues.
#5036daniel_k⇗ @diderius6
When you have some time, please try this new Asmedia:
⇗ USB 3.0/3.1 Drivers (original and modded) (157)

Remember that v1.16.59.1 had issues with USB2/USB1 devices?

This one fixed that, at least for me.
#5037ruthan⇗ @daniel_k
 WHich ones? Regarding of description in 1st post they are Win7+

 I have now Asmedia controller too.
#5038daniel_k
Zitat von ⇗ ruthan im Beitrag ¶ #5037
@daniel_k
 WHich ones? Regarding of description in 1st post they are Win7+

 I have now Asmedia controller too.

Asmedia removed XP/Server 2003 info from Readme, but the drivers have always worked on those OSes.
#5039ruthanGood news for multibooting..

I fixed multiple video cards booting problem with MacOS:
⇗ https://www.tonymacx86.com/threads/2-dif...8/#post-2141678
Just by disabling whole PCI-E slot for non primary MacOS videocard, this tricks disable whole PCI-E controller is also working on Windows, but i never had time to dive deeper to it and find you how to discover which controller is used for which slot / card.. But Agent007 from Poland is using this trick for its multibooting system..


 I have also good news for not Gigabyte boards - no primary PCI-E slot bios settings. Its not needed. When you boot with primary no WinXP videocard without WinXP driver and installl Nvidia drivers for on second card and disable first one. Boot is working this - boot splash, bios etc.. its on first card, but when you reach logon screen, is on now on second card monitor(s).. of course you can use same monitor(s) for both cards and only other monitor inputs. I still dream about some autoswitching with some clever HDMI switch but, i have to test it.. If both cards giving you signal from boot it will not work, if not it will.. Or maybe some monitor have something like inputs priority.. so you can i theory give second card signal higher priority if used, it will auto switch to it.. I dont now too much about this.

WinXP multiple without cards setup:
  I also  setup nice Linux KVM videocard passthrough for XP on Linux, so i have even nice Linux QEMU win XP instance, if want to use it.. and its nice fallback for MBs where is will not XP working in future, until vendors will not completly stop supporting XP capable videocards..  But its Linux so there some additional hassle..
⇗ Windows 98SE on Modern Hardware (15)

  Next setup beside still not working NVME with my old install would be 3rd videocard and will try is Asmedia USB3 is better than VIA for my machine .. Geforce 6 or something like that for Win 98 KVM, in theory, it could work natively too, but it would need some Win98 USB capable USB controller and USB sound card / USB NIC, or PCI-E to PCI adapter for PCI soundcard, NIC or both - big mess within case or outside.. and still not Dos PCI dos audio.. it needs some BIOS / MB support (last ones are with support are X58 / X79).
  but well on Vogons is some guy from Estonia which have some ideas about some HW mods for it ( ⇗ https://www.vogons.org/viewtopic.php?p=830496#p830496 ⇗ https://www.vogons.org/viewtopic.php?p=716248#p716248 , he is already making new ISA soundcards with digital audio out you can support him by buy one.. ⇗ https://www.vogons.org/viewtopic.php?f=62&t=61282 ). Qemu Dos SB evolution is sucks so far.. Virtualbox is even worse, Vmware its getting better but slowly ( ⇗ https://www.vogons.org/viewtopic.php?f=9&t=69314 ) and they is not videocard pass through of course. If there is new board with LPT port there is Adlib emulator for it, its still better than PC speaker and quite few of games was patched for it: ⇗ https://www.serdashop.com/OPL2LPT   ⇗ https://github.com/pdewacht/adlipt/wiki/ADPATCH-Tested-Games
#5040kukonosau⇗ @diderius6
Do you have stable acpi.sys for XPx64 for Ryzen today? Where is last version?

 

Page 337

#5041diderius6⇗ @kukonosau

XP64 is unstable under Ryzen.
Lan, sound.. crash randomally on different compis with different Ryzen cpu
Dietmar
#5042kukonosau⇗ @diderius6
Crash randomally(((
#5043ruthan⇗ @kukonosau Why do you want to use it? Its not good operating system its not compatible with lots of WinXP 32 bit apps and its not compatible with most of x64 apps because they are for Vista and Windows 7. You can try it within virtual machine to discover that.
  If you like WinXP look just get some Windows 7 XP reskin, i would be much better. Its so but system, that MS was sort of giving it free and i thing that they not even implemented some genuine check to it, so was for first  64bit debbuging before proper Vista x86 release.
#5044ruthanOk  USB hell continues, i tested ASM 104x, i did search so far it there is some new firmware.

Detailed results are here:
⇗ https://docs.zoho.com/sheet/published.do...22a5b950420cb22

WinXP its better that VIA, i made working everything, but:
- Xbox 360 fake receiver - code 10, i simulated same within WIndows 10 with last Win-Raid driver.
- external USB3 hub - Icybox, its the same with Windows 10, it not detected, i detected it once by reconnect cables, devices where detected working, but after restart they where gone
- Its not working within bios for mouse..
- Its not working with Linux, its just not here - lsusb not show it..
- Its not working with MacOS
 Its only one which is realible for Realtek USB3 Gigabit one, Pinnacle TV stick and Xbox 360 controller (cable one) with WInXP and Windows 10, those are not working with VIA.

 So for me personally make sense still keep VIA, because no Linux and no MacOS is big nono for me.

I have some suspicion that these additional USB3 cards really dont play good with powered USB hub, because i disconnected power cable from machine and.. MB leds still lit for eternity and even Blue ray drive was from time to time blinking from time to time, i never experience something like that. I dunno if it power with my cheap USB2 ebay USB2 hub, or with ICYBox USB3 too, so its possible that becaus of that is not hub propertly reset during powerdowns or reboots.
 So i will test i once more without power to hubs, if it would be any better and if there is enough power to devices to working, USB 3 specs should give lots of power in theory, but i dunno how it keeps is real implementations.

 Its USB mouse working for you with Intel USB3 controller with WinXP? Because my Razer mouse is maybe some exception, some complex device.. i can live without lots of USB device, when i got bad boot and not working controller, but no mouse is too much.

 I still have Etron on the way and modchip USB2 PCI-E (for second time) USB is enough for me for devices, because Mass storages are already working with Intel USB3. Frescos on ebay are expensive and Texas instruments rare.. but it really seems that fix Intel USB3 would same lots of people lots of hassle..
#5045Dibya
Zitat von ⇗ ruthan im Beitrag ¶ #5043
@kukonosau Why do you want to use it? Its not good operating system its not compatible with lots of WinXP 32 bit apps and its not compatible with most of x64 apps because they are for Vista and Windows 7. You can try it within virtual machine to discover that.
  If you like WinXP look just get some Windows 7 XP reskin, i would be much better. Its so but system, that MS was sort of giving it free and i thing that they not even implemented some genuine check to it, so was for first  64bit debbuging before proper Vista x86 release.

Its a extremely stable and robust platform , believe it or not . My core 2 duo laptop runs it and i have no complain . 99% x64 apps released from 2007 to 2013 are compatible . I have never seen any XP 32bit app not running except one who still have 16bit components . On ryzen its a no go i guess but on intel XPx64 is  a stable mad lad , a did disordered server 2003
#5046ruthan
Zitat von ⇗ Dibya im Beitrag ¶ #5045

Its a extremely stable and robust platform , believe it or not . My core 2 duo laptop runs it and i have no complain . 99% x64 apps released from 2007 to 2013 are compatible . I have never seen any XP 32bit app not running except one who still have 16bit components . On ryzen its a no go i guess but on intel XPx64 is  a stable mad lad , a did disordered server 2003

 Well i already heard lots of big worlds from you in the past, some of them never fulfilled, so im a bit skeptic.

  It could be stable, but if Windows 7 apps not really working, it make no sense 2007 to 2013, could mean anything. Lots of apps are just checking on which OS its running, yeah there is probably hack for it, they would depend on some missing kernel function and libs, i dont believe that such big stacks as Direct X 10/11 are somehow emulated and hacked, for other things like networking stuff, .Net it would be probably similar.
   On Windows 7 is now running almost everything except few Win10 stuff, but dont belive in any strech of imagination that such things would run on Windows 7.. and what about the drivers are Windows 7 drivers running on Win x64, because if not for example video drivers would be big problem. Even within WIn x64 heydays there where lots of problems with drivers.
#5047infuscomus⇗ @Mov AX, 0xDEAD

I'm trying to follow your guide to use ntoskrnl extender

I managed to get the USB 3.0 driver working with it, but I couldn't get KMDF 1.11 working with it - it kept throwing a 7E BSOD.

When I switched to modded KMDF everything worked fine.

any idea why wdf01_w8.sys would throw a 7E BSOD?
#5048dencorso
Zitat von ⇗ Andalu im Beitrag ¶ #5032
@Mov AX, 0xDEAD
Hi,
I had already enabled the 'Kernel Memory Dump' to get the dump file for that bad_pool_caller bsod without success. I had also modified the registry to find a way to obtain it. I was able to save the dump only when I applied the trick to simulate a bsod via keyboard keys (holding right ctrl + pressing the scroll lock two times).


⇗ @Andalu: your system may be needing ⇗ https://web.archive.org/web/201305110015...t.com/kb/916157, my friend. While most files in it are actually superseded, its dumpdrv.exe is the latest one ever released... and despite being old, it's not widely known.
#5049Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #5047
@Mov AX, 0xDEAD
I managed to get the USB 3.0 driver working with it, but I couldn't get KMDF 1.11 working with it - it kept throwing a 7E BSOD.
any idea why wdf01_w8.sys would throw a 7E BSOD?

Hi infuscomus
Which version of WdfLdr & WDF0100.SYS used to patch ?
#5050daniel_k
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5049
Hi infuscomus
Which version of WdfLdr & WDF0100.SYS used to patch ?


Nevermind this, he tried to use a version I compiled to specifically to test with ucx01000.sys/usbxhci.sys to fix the workitem issue (0xC2).

By the way, tried to compile your V2 Extender and is giving me the following error:
 
storport.obj : error LNK2019: unresolved external symbol _StorPortExtendedFunction
referenced in function _StorPortExtendedFunction_k8


Will try to find out what is missing.

#5051Andalu
Zitat von ⇗ dencorso im Beitrag ¶ #5048
@Andalu: your system may be needing ⇗ https://web.archive.org/web/201305110015...t.com/kb/916157, my friend. While most files in it are actually superseded, its dumpdrv.exe is the latest one ever released... and despite being old, it's not widely known.

Hi dencorso,
thanks for the info but the link to download the KB update gave me the message: "The requested URL was not found on the server".
It doesn't matter because the "dumpdrv.sys" version I found ⇗ here is more updated than the version mentioned in that article and it is the same version already contained in the nice WinXP-IE from zone62.com I used in all my attempts even if I couldn't get the dump file for the C2 bsod:

#5052Mov AX, 0xDEAD
Zitat von ⇗ daniel_k im Beitrag ¶ #5050

By the way, tried to compile your V2 Extender and is giving me the following error:
 
storport.obj : error LNK2019: unresolved external symbol _StorPortExtendedFunction
referenced in function _StorPortExtendedFunction_k8


Will try to find out what is missing.



⇗ @daniel_k
If target OS is WinXP,  linker use storport.lib from lib\wxp\i386\, this lib dont have proper exports (why ms added storport.lib to xp x32 folder ?)
fix: override storport.lib to w2003 version from \lib\wnet\i386\
also include $(DDK_LIB_PATH)\storport.lib in sources file
#5053sgb0504help
The operating system I use is 32-bit XP
INTEL I5 9400
ASUS ROG STRIX H370-F GAMING
The operating system I use is 32-bit XP

Press F5 to have only Standard PC with C-Step i486
No ACPI Multiprocessor PC to choose
why? ?
Thank you
#5054YuriyCN
Zitat von ⇗ sgb0504 im Beitrag ¶ #5053

Press F5 to have only Standard PC with C-Step i486
No ACPI Multiprocessor PC to choose
why? ?
Thank you


use mod ACPI.SYS
#5055Mov AX, 0xDEADWindows 8 USB3 driver always report USB2 speed on inserted USB3 devices, MS call it "compatibility", but vendors driver report proper USB3 speed and dont have compatibility issues(?)

Little patch to report proper USB3 speed:
usbhub3.sys (any version)
83 7E 54 03 75 09 => 83 7E 54 03 EB 09

same place in leaked sources (HUBFDO_IoctlGetNodeConnectionInfo):
orig:
//
// COMPAT: Return high-speed for superspeed devices, to avoid confusing
// clients that are not USB3 aware.
//
if (deviceContext->UsbDeviceInfo.DeviceSpeed == UsbSuperSpeed) {
nodeConnectionInformationEx->Speed = UsbHighSpeed;
} else {
nodeConnectionInformationEx->Speed = deviceContext->UsbDeviceInfo.DeviceSpeed;
}

patch:
if (deviceContext->UsbDeviceInfo.DeviceSpeed == UsbSuperSpeed) {
nodeConnectionInformationEx->Speed = deviceContext->UsbDeviceInfo.DeviceSpeed;
} else {
nodeConnectionInformationEx->Speed = deviceContext->UsbDeviceInfo.DeviceSpeed;
}

 

Page 338

#5056Mov AX, 0xDEADPatch for VIA USB Mass Storage Device (UAS/UASP) to restore "Safe Remove":

vusbstor.sys x32 v6.1.7600.4002
89 9D 70 FF FF FF 89 9D 68 FF FF FF => 90 90 90 90 90 90 89 9D 68 FF FF FF
#5057canonkongI got a Gigabyte B550I AORUS PRO AX. Its very strange that it can work on win7 with zen/zen+ CPU and APU, but will ACPI not fully support A5 BSOD with zen2 cpu. On Gigabyte X570I AORUS PRO WIFI, they all can work fine.
To solve this BSOD, expect to modify ACPI.sys, maybe can use clover to overlay the ACPI to guide the OS.
#5058infuscomus⇗ @canonkong

did modded acpi.sys not work?
#5059isopc1999a
Zitat von ⇗ canonkong im Beitrag ¶ #5057
I got a Gigabyte B550I AORUS PRO AX. Its very strange that it can work on win7 with zen/zen+ CPU and APU, but will ACPI not fully support A5 BSOD with zen2 cpu. On Gigabyte X570I AORUS PRO AX, they all can work fine.
To solve this BSOD, expect to modify ACPI.sys, maybe can use clover to overlay the ACPI to guide the OS.

That is very strange. What is the firmware version?
Both firmware version of X570 and B550 are AGESA Combo V2 1.0.0.2?
#5060daniel_k
Zitat von ⇗ canonkong im Beitrag ¶ #5057
I got a Gigabyte B550I AORUS PRO AX. Its very strange that it can work on win7 with zen/zen+ CPU and APU, but will ACPI not fully support A5 BSOD with zen2 cpu. On Gigabyte X570I AORUS PRO AX, they all can work fine.
To solve this BSOD, expect to modify ACPI.sys, maybe can use clover to overlay the ACPI to guide the OS.

That X570I model doesn't exist, you mean X570 I AORUS PRO WIFI?

Anyway, did a quick look at their DSDT tables, B550I AORUS PRO AX has 2 DSDTs, first one seems to be for Zen2, second for Zen/Zen+ (this table is nearly identical to the X570 I AORUS PRO WIFI, which has a single table).

If you say that X570 I AORUS PRO WIFI has no issues with Zen2, what about replacing the first DSDT from B550I AORUS PRO AX with the second DSDT table?
#5061ruthanI updated bios on my Z390 Gaming SLI and it changed 1 thing, now when i connect "bad" device on Intel controller with Generic USB driver - before XP boot, im now not getting black screen, but "proper" blue screen -0x00000050, this one:
#5062canonkong⇗ @isopc1999a
If X570 also use AGESA Combo V2 1.0.0.2, It also will A5 bsod, so it may something wrong whit AGESA Combo V2 1.0.0.2 bios.
#5063canonkong⇗ @daniel_k
Yes ,X570 I AORUS PRO WIFI.
If X570 also use AGESA Combo V2 1.0.0.2, It also will A5 bsod, so it may something wrong with AGESA Combo V2 1.0.0.2 bios.
It just can not work with ZEN2 CPU. But it can work well with zen/zen+ CPU/APU and zen2 APU(4700G) also can work well.
#5064canonkong⇗ @infuscomus
Currently there is no mod ACPI.sys for windows 2006 2006SP1 2009.
#5065Andalu
Zitat von ⇗ Andalu im Beitrag ¶ #4089
XP seems don't work on asrock H310M-HDV. I tried both a fresh installation and the image restoring from a working XP with no success. I got the A5 BSOD for all the acpi sysfiles found on this forum except for this ¶ acpi.sys for which I got the 7B error. Any suggestion?

I quote myself :) because XP now also installs on this crazy board, but only downgrading the bios to the first version released, the older v1.20. It's the only one that can allow the XP installation, no other version works.

But thinking about installing and using XP on this board without encountering any problems is quite difficult:

since this board has only one PS/2 port, a PS/2 "Y" splitter cable is the best choice to complete the XP installation without too many headaches. In its lack, a PS/2 keyboard is needed for the 'TXT mode setup' and for the 'GUI mode setup' (having already configured the display settings while preparing the ISO), since the USB mouse won't work in GUI mode in any port, no matter if USB2 or USB3. Here I noticed the first strange behavior: the USB keyboard also works in the GUI mode setup but only if another keyboard is connected at same time into the PS/2 port. However, even if a USB mouse is connected to the same port instead of the USB keyboard, the mouse will still not work
With these precautions, XP installs normally.

Unfortunately, the problems aren't over yet: no one USB2 or USB3 port will work in XP, even though both the mouse and the USB keyboard are powered. Copying the missing usbd.sys in the system32 folder doesn't help to have at least a working USB2. But here another strange behavior: without any USB3 driver installed, with the mouse connected to a PS/2 port and the keyboard connected to any USB port, the PS/2 mouse will only work if no keyboard key is pressed ; as soon as a key is pressed, the mouse cursor locks . In this case, installing the USB3 driver helps, but only to avoid this strange behavior because none of the USB3 drivers installs without giving error code 10 or 39. Tried with all USB3 driver versions (backported from Win8 and AMDXHCI), there is no way:



I'd rather stop here and not keep using XP on this crazy motherboard until I'll find a way to solve the USB issues. Who choose to install XP on this board is warned :)


P.S.: no USB issue in Win7 and Win8.
#5066ruthanMoshpit (Moschip) PCI-E USB2 chip arrived so i tested it..
⇗ https://docs.zoho.com/sheet/published.do...22a5b950420cb22

 Its play very nice with XP, except my most problematic Realtek USB LAN Gigabyte adapter (driver install but not i cant connect so far, it worked only with Asmedia) is playing very nice with XP and Win10, all devices are working.

 Unfortunately it completely freeze MacOS boot, so nothing for me :(
#5067infuscomushas anyone tried to install XP on threadripper?
#5068ruthanI have question about bios mods - iommu groups , mainly for Daniel but he has no PM policy, so im writing it here.. I added third videocard for Win98 KVM to second PCI-E long slot, but it sharing iommu group with first long PCI-E slot, what is no go for Linux video card passthrough (except some out of stream kernel hacks, which are tried but they are on for Ubuntu and not even for other Debian derivates).. so i wonder if he has knowledge to change it?
#5069Mov AX, 0xDEADPatch for Etron USB Mass Storage Device (UAS/UASP) to restore "Safe Remove":

EtronSTOR.SYS (any version):
OR dword ptr [eax+4], 0300h -> OR  dword ptr [eax+4], 0000h
(03 => 00)
#5070daniel_k
Zitat von ⇗ canonkong im Beitrag ¶ #5063
@daniel_k
Yes ,X570 I AORUS PRO WIFI.
If X570 also use AGESA Combo V2 1.0.0.2, It also will A5 bsod, so it may something wrong with AGESA Combo V2 1.0.0.2 bios.
It just can not work with ZEN2 CPU. But it can work well with zen/zen+ CPU/APU and zen2 APU(4700G) also can work well.

Can you post the complete info on the A5 BSOD (all parameters)? Sometimes it gives us some hints.

 

Page 339

#5071daniel_k⇗ @Andalu

Did you try the acpi.sys from outerspace (so diderius6 says) with your Asrock H310M-HDV?
#5072daniel_k
Zitat von ⇗ ruthan im Beitrag ¶ #5068
I have question about bios mods - iommu groups , mainly for Daniel but he has no PM policy, so im writing it here.. I added third videocard for Win98 KVM to second PCI-E long slot, but it sharing iommu group with first long PCI-E slot, what is no go for Linux video card passthrough (except some out of stream kernel hacks, which are tried but they are on for Ubuntu and not even for other Debian derivates).. so i wonder if he has knowledge to change it?
 

Unfortunately I have no experience with this, but for consumer boards, resource sharing is really common.

Maybe HEDT boards are less prone to resource sharing?
#5073ruthan
Zitat von ⇗ daniel_k im Beitrag ¶ #5072
Zitat von ⇗ ruthan im Beitrag ¶ #5068
I have question about bios mods - iommu groups , mainly for Daniel but he has no PM policy, so im writing it here.. I added third videocard for Win98 KVM to second PCI-E long slot, but it sharing iommu group with first long PCI-E slot, what is no go for Linux video card passthrough (except some out of stream kernel hacks, which are tried but they are on for Ubuntu and not even for other Debian derivates).. so i wonder if he has knowledge to change it?
 

Unfortunately I have no experience with this, but for consumer boards, resource sharing is really common.
Maybe HEDT boards are less prone to resource sharing?

 HEDT would be better for sure, but i they are also more expensive.. there was some buzz about it for Ryzen mbs about bad iommu, so it was fixed, but i guess there is small chance for same thing for Intel. I also contacted Gigabyte, but i giving it 5% change to actually fix it.

 Otherwise i found other nasty Xp thing.. if i install Acronis True image.. USB keyboard preebot Scandisk skip no more working, keyboard is death.. so there is something what matters:
1) maybe is just Acronis boot drivers error..
2) maybe depends on order how drivers are loaded and keyboard driver is not loaded fast enough
3) maybe depends on number of drivers, because its not loaded fast enough..
  Its strange, because keyboard is light before it, that is usually sign that its working, my bet is on 1, i can live without Acronis on XP.. but is not right for sure. I dunno if keyboard is working after that, because that Scandisk take hour or so on my 4TB disks and already disconnected PS/2 keyboard to bypass it (it theory it could not work too).
#5074Andalu⇗ @daniel_k
only a few versions of acpi.sys work on this crazy board and one of them is the "OuterSpace" version.
Reported issues occur with all modded acpi sysfiles working.
#5075canonkong⇗ @daniel_k
AGESA ComboAm4 v2 PI 1.0.0.1/1.0.0.2 change lots of things, also bring some bugs.
#5076ruthanSome info about updating, it installed Office 2003 +2007 and all updates all fine, it need phone activation, there is message that its not supported, but its still working.

But i met other problem, i installed AVG anvitirus which is still supported with XP, but got boot Bluescreen from it - 005, so it seems that is doing something with system settings.
#5077Mov AX, 0xDEAD¶ NTOSKRNL Emu_Extender
Updated post, added new:
- Windows 8s STORAHCI driver for Windows XP/2003
- Windows 7s MSAHCI driver for Windows XP/2003
#5078daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #5074
@daniel_k
only a few versions of acpi.sys work on this crazy board and one of them is the "OuterSpace" version.
Reported issues occur with all modded acpi sysfiles working.

Hopefully we'll have a fully working acpi.sys in the foreseeable future.
#5079daniel_k
Zitat von ⇗ canonkong im Beitrag ¶ #5075
@daniel_k
AGESA ComboAm4 v2 PI 1.0.0.1/1.0.0.2 change lots of things, also bring some bugs.

That error means cannot load DDB (Differentiated Definition Block, which is the whole DSDT table itself).

I've easily spotted the following differences between 12f and 20a BIOS of the X570 I AORUS PRO WIFI board.

Old code, 3 variables values are smaller and Device (RHUB) is properly under the Scope it belongs to:
    Name (PEBL, 0x04000000)
Name (PEBS, 0xF8000000)
Name (PELN, 0x04000000)
...
Scope (_SB.PCI0.GP13.XHC0)
{
Device (RHUB)
{
Name (_ADR, Zero) // _ADR: Address
Device (PRT1)
{
Name (_ADR, One) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "LEFT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x1,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT2)
{
Name (_ADR, 0x02) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "RIGHT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x2,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT3)
{
Name (_ADR, 0x03) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "LEFT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x3,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT4)
{
Name (_ADR, 0x04) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "RIGHT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x4,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT5)
{
Name (_ADR, 0x05) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "LEFT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x1,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT6)
{
Name (_ADR, 0x06) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "RIGHT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x2,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT7)
{
Name (_ADR, 0x07) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "LEFT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x3,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT8)
{
Name (_ADR, 0x08) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "RIGHT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x4,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}
}
}

   
New code, 3 variables values have increased and Device (RHUB) is not under any Scope, defitively wrong:

    Name (PEBL, 0x08000000)
Name (PEBS, 0xF0000000)
Name (PELN, 0x08000000)
...
Device (RHUB)
{
Name (_ADR, Zero) // _ADR: Address
Device (PRT1)
{
Name (_ADR, One) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "LEFT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x1,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT2)
{
Name (_ADR, 0x02) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "RIGHT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x2,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT3)
{
Name (_ADR, 0x03) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "LEFT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x3,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT4)
{
Name (_ADR, 0x04) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "RIGHT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x4,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT5)
{
Name (_ADR, 0x05) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "LEFT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x1,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT6)
{
Name (_ADR, 0x06) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "RIGHT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x2,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT7)
{
Name (_ADR, 0x07) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "LEFT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x3,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}

Device (PRT8)
{
Name (_ADR, 0x08) // _ADR: Address
Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities
{
0xFF,
0x03,
Zero,
Zero
})
Name (_PLD, Package (0x01) // _PLD: Physical Location of Device
{
ToPLD (
PLD_Revision = 0x2,
PLD_IgnoreColor = 0x1,
PLD_Red = 0x0,
PLD_Green = 0x0,
PLD_Blue = 0x0,
PLD_Width = 0x0,
PLD_Height = 0x0,
PLD_UserVisible = 0x1,
PLD_Dock = 0x0,
PLD_Lid = 0x0,
PLD_Panel = "BACK",
PLD_VerticalPosition = "CENTER",
PLD_HorizontalPosition = "RIGHT",
PLD_Shape = "VERTICALRECTANGLE",
PLD_GroupOrientation = 0x0,
PLD_GroupToken = 0x0,
PLD_GroupPosition = 0x4,
PLD_Bay = 0x0,
PLD_Ejectable = 0x1,
PLD_EjectRequired = 0x0,
PLD_CabinetNumber = 0x0,
PLD_CardCageNumber = 0x0,
PLD_Reference = 0x0,
PLD_Rotation = 0x0,
PLD_Order = 0x0,
PLD_VerticalOffset = 0xFFFF,
PLD_HorizontalOffset = 0xFFFF)

})
}
}

   

However, if Win7 still works with Zen/Zen+ CPU/APU using latest 20a BIOS, this theoretically means that those changes in the DSDT table itself don't really cause the 0xA5 BSOD.
What about extracting the DSDT table while running Win8/8.1/10 with RWEverything to see if there are further changes?

#5080canonkong⇗ @daniel_k
DSDT table while running Win8.1 with RWEverything.
[[File:AcpiTbls.zip]]



canonkong has attached files to this post
#5081daniel_k⇗ @canonkong

Just noticed that the X570 BIOS 20a has 5 DSDT tables, 2 of them follow are (to my knowledge) Win7 compatible, the other 3 are Win8+ only.

To make sure there isn't another check that breaks Win7 on purpose, do the following test.

Edit acpi.sys with Hex editor and edit Windows 2012 and Windows 2013 to Windows 2009.

Save, fix checksum and sign or disable driver signature enforcement on boot.

Tell me if Win8.1 still boots OK.
#5082canonkong⇗ @daniel_k
It will show auto repair and the computer can not boot.
Edit after disable digital signature.
It seems that the system does not recognize the third-party sha256 signature. After the system has disabled the digital signature, it can enter the system.
#5083daniel_k⇗ @canonkong

For core kernel system files, Windows won't accept 3rd party certificates.

Nice results, then I'm about 99% sure the fix is just to add that RHUB device to the proper Scope.

Would you flash a modded BIOS?
#5084canonkong⇗ @daniel_k
Yes, it is easy to flash the mod bios for B550I Aorus pro AX and X570I Aorus pro with its Flashback function.
#5085daniel_k
Zitat von ⇗ canonkong im Beitrag ¶ #5084
@daniel_k
Yes, it is easy to flash the mod bios for B550I Aorus pro AX and X570I Aorus pro with its Flashback function.

Ok, I'll send you a PM when I get it done.

Let's try on the B550I Aorus Pro AX first.

 

Page 340

#5086genieautravail⇗ @daniel_k

On one of my laptop equiped with 4 GB of memory, the amount of available physical memory stay the same (2.92 GB) before and after applying WinXPPAE 2.0 patch with the /4GB switch.

It's the first time I see this (the patch is already applied on several of my computers).

The laptop is a HP Probook 4320s and has a dedicated video card Radeon HD 5470 with 512 MB of memory.
No physical memory is reserved to display.

Do you think that case is possible or there is a bug somewhere ?
#5087Mov AX, 0xDEAD¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware
"Saving crash dumps through storport based disk controller drivers"
Updated Status: SOLVED
#5088daniel_k
Zitat von ⇗ genieautravail im Beitrag ¶ #5086
Do you think that case is possible or there is a bug somewhere ?

Yes, it's possible.

It depends on the reserved memory areas of system devices (of course gpu ram included).

Usually you should use the /all switch, specially now that we have the Win8 XHCI driver which is proven to work with PAE enabled.
#5089YuriyCNUsually, if a PAE with /4GB works, then it works with an /ALL key.
Therefore, the key /4GB has no special meaning. It seems to me.
#5090AndaluI tried both VIA and Etron UAS drivers (thanks to ⇗ @Mov AX, 0xDEAD for patches and fixes) on my USB3.1 to NVMe enclosures (ASM2362 and JMS583 chipset) using the same nvme disk type (samsung 970evo) and the same USB3.1 Gen.2 cable (it seems that also a cable can make differences). Here the results:

VIA driver:
 

Etron driver (tried both 115 and 119 versions) (disk not detected by crystaldisk Info v8.6.2):
 

 
#5091Mov AX, 0xDEAD¶ NTOSKRNL Emu_Extender
Updated post, added new:
- Intel RSTe AHCI/RAID driver 4.7.0.1098  for Windows XP/2003
- Intel RST  AHCI/RAID drivers (any version, last compatible is 15.9.8.1050)  for Windows XP/2003
#5092daniel_k⇗ @Mov AX, 0xDEAD

I'm getting the following errors while trying to compile the new version:

 
1>c:\ntoskrnl_emu-master\common.c : error C1083: Cannot open compiler generated file: 'asm/common.asm':
No such file or directory
2>errors in directory c:\ntoskrnl_emu-master\storpor8
2>c:\ntoskrnl_emu-master\common.c : error C1083: Cannot open compiler generated file: 'asm/common.asm': No such file or directory
1>c:\ntoskrnl_emu-master\ntoskrn8\objfre_wnet_x86\i386\common.obj : error LNK1136: invalid or corrupt file
2>c:\ntoskrnl_emu-master\storpor8\objfre_wnet_x86\i386\common.obj : error LNK1136: invalid or corrupt file


EDIT: The error above is is fixed by creating folders \ntoskrn8\asm and \storpor8\asm.

All good now!

#5093Mov AX, 0xDEAD⇗ @Daniel,

Yes, these empty folders was not synced to github repository
now fixed, empty folders no more empty )
#5094mockingbirdI have an ASRock B250M-Pro4, and this board has been reported here to be working with XP with the mods generously provided in this thread.  So far I've disabled LAN and HPET in the BIOS, disabled fast boot and enabled CSM.  I know I will have to use a discrete GPU for XP as I'm using an i3-8100 and it's GPU has no XP drivers (last Intel XP GPU drivers were certain Haswell models).

So far I know I need to download the last Harkaz SP4 and slipstream it, but can someone help me out with the items liste in the first thread and all subsequent updates or perhaps a repository where I can download them?  Not wanting anything fancy - just NVMe, Intel USB3 support and perhaps >4GB support.

Thanks
#5095gordo999⇗ @mockingbird ..."I'm using an i3-8100 and it's GPU has no XP drivers"

By GPU driver, do you mean for on-board graphics? I am using an Asus B360 chipset with an i5-8400 and I did not require XP drivers for the GPU. However, I am using an Nvidia GT-730 and I approached the problem differently. I already had XP loaded on a disk drive from an older mobo. To get it running, I needed the PS\2 inputs on the B360 until I could load the USB drivers. First, I needed to load the ACPI driver and a SATA driver signed by Fernando.

Since then, the USB driver has been upgraded to a Win8 based driver. I can't help you find the drivers but if you go back about 100 pages and start skimming, you'll find everything you need. Better still, you'll understand why and how the drivers are being applied.
#5096mockingbird
Zitat von ⇗ gordo999 im Beitrag ¶ #5095
@mockingbird ...
Since then, the USB driver has been upgraded to a Win8 based driver. I can't help you find the drivers but if you go back about 100 pages and start skimming, you'll find everything you need. Better still, you'll understand why and how the drivers are being applied.

Yes I read the first page, I guess I was being lazy by posing my question this way hoping that someone would oblige me :-).  But there were some things mentioned in the first page without any reference whatsoever where to find them.

With regard to the internal GPU, I had no intention of using that.  There is no XP driver for it and there never will be.  I also purchased a Maxwell nVidia GPU for this machine.
#5097gordo999
Zitat von ⇗ mockingbird im Beitrag ¶ #5096
Yes I read the first page, I guess I was being lazy by posing my question this way hoping that someone would oblige me :-)
⇗ @mockingbird ...I did not mean to read the first page only, I meant to start there and read through all the messages till the current message. Maybe you'll have to begin before 100 pages back.

It's not that no one wants to help you it's that most people have found the links as we went along. Maybe someone will help you, I can't because I have no idea where each file is located. I have a different POV on this. A few people did a lot of work to make these files available and I don't think it's asking too much for someone requiring the files to do some searching.

There is a search engine on this page, plug in acpi, especially related to 'outer space'. That gets rid of 0xA5 acpi errors. I got the SATA driver from the XP SP4 unofficial update ISO but it is on this site and there is a newer reference to the w8 USB driver a few pages back. Forgot, you are not using a hard drive.

For daniel_k's older USB driver, which I am still using, look up amdhub30 or amdxhc in the search engine.

Use my nym in the search engine. I have offered explanations about my experience with certain drivers that fixed browser and game issues. It's important that you do your own research or you'll be back asking questions that have been answered 100 times.
#5098gordo999⇗ @mockingbird ...did some reading to cut down on your search. Start at P277 and read a few pages. Page 290 begins the new era of drivers. See page 292. Out of time.
#5099mockingbird
Zitat von ⇗ gordo999 im Beitrag ¶ #5098
@mockingbird ...did some reading to cut down on your search. Start at P277 and read a few pages. Page 290 begins the new era of drivers. See page 292. Out of time.

Your help is greatly appreciated.  It does not help that Fernando posts this whenever someone attaches their mod: "EDIT by Fernando: Attachments removed (publication of modded *.SYS files are not allowed here)".

You have several people working on several different mods, with no ability to post the mods, except for perhaps instructions on how to perform the mod yourself.

Not complaining though - it will be worth it in the end.  XP is essential for when you need to get actual work done on a computer.
#5100gordo999
Zitat von ⇗ mockingbird im Beitrag ¶ #5099
You have several people working on several different mods, with no ability to post the mods, except for perhaps instructions on how to perform the mod yourself.
⇗ @mockingbird ....you are not looking hard enough. Fernando was obliged to make that statement for legal reasons but he has done more to enable the XP cause than anyone on the Net. He was hosting the files till he was approached by the authorities and told to cease and desist.

I am not trying to be unkind, I am offering you advice you need to get XP running. You need to dig for information and dig hard. You don't expect Fernando to create a section titled 'Illegal software repository' do you? I pointed you right at a page you have obviously ignored which has a direct link to the files you require.

You are not trying hard enough. Be determined, the files are all out there.

 

Page 341

#5101mockingbirdThere's no need to berate me.  I never complained.  In fact I went out of my way in the last post to state that I would persevere despite the difficulties.
#5102flyodhello. im not sure if this is the right place for this, but as im new it seems like as good a place as any.

i used the updated acpi.sys from ⇗ @daniel_k (not entirely sure it's the latest version, a friend sent it to me idk where they got it) to get windows xp 64-bit installed on my msi z170a motherboard (Intel i5, not entirely sure of the chipset), and everything works perfectly, hardware wise (except usb but thats not a huge concern right now). the only real problem is that any modern web browser (specifically pale moon) will not redraw the window until it is manually resized or you click the menu bar. i've asked about this ⇗ where the people porting these browsers back to windows xp are, and nobody there seems to know the solution. i've tried several different video cards, including the onboard intel graphics, and a fully xp-compatible amd gpu, and always get the same result. im wondering if maybe the updated acpi.sys might have something to do with it, or maybe ive just got weird hardware and this will never work, or maybe something else i've overlooked. im 90% sure it's a hardware problem because i've tried everything i know at the software level.
this is the first time in a decade or so that i've had to ask anyone for help with computer stuff, and its weird and im not sure what to do lol. thanks in advance for any help.
#5103daniel_k⇗ @flyod

Timer issue, maybe? Needs a hal.dll patch to fix it.

On XP x64, run CPU-Z:

Tools -> Timers
Let it run for 1 minute, take a screenshot and attach it here.

Or run WinTimerTester, do the same as above.
#5104daniel_k⇗ @mockingbird

I'm currently updating my thread at MDL forums (Drivers and tools to run Windows XP on newer hardware).

You'll find everything you need to run XP.
#5105daniel_k⇗ @Andalu

How are you?

When you have some time, have a new NVMe driver for you to test.
#5106Andalu⇗ @daniel_k
hi dude, I hope you're as well as I am

A new nvme driver? You can send it whenever you want, thanks
#5107flyod
Zitat von ⇗ daniel_k im Beitrag ¶ #5103
@flyod

Timer issue, maybe? Needs a hal.dll patch to fix it.

On XP x64, run CPU-Z:

Tools -> Timers
Let it run for 1 minute, take a screenshot and attach it here.

Or run WinTimerTester, do the same as above.

here's both of those.

i recently learned there are bios updates for this machine i haven't applied yet. it's still using the stock bios. i've always kinda considered that as a last resort, but if you think that would help i'll go ahead and update it.
#5108daniel_k
Zitat von ⇗ flyod im Beitrag ¶ #5107
i recently learned there are bios updates for this machine i haven't applied yet. it's still using the stock bios. i've always kinda considered that as a last resort, but if you think that would help i'll go ahead and update it.

Unless you have any issues, don't update.
BIOS updates may prevent XP from running, even with the currently patched acpi.sys file.

As I was suspecting, it's a timer issue.

In your WinTimerTester screenshot, QueryPerformanceCounter is negative and so is the Ratio, which is wrong and result in unexpected symptoms.

What is the version of your hal.dll? Need to search here for a patched x64 hal.
#5109flyod
Zitat von ⇗ daniel_k im Beitrag ¶ #5108
Zitat von ⇗ flyod im Beitrag ¶ #5107
i recently learned there are bios updates for this machine i haven't applied yet. it's still using the stock bios. i've always kinda considered that as a last resort, but if you think that would help i'll go ahead and update it.

Unless you have any issues, don't update.
BIOS updates may prevent XP from running, even with the currently patched acpi.sys file.

As I was suspecting, it's a timer issue.

In your WinTimerTester screenshot, QueryPerformanceCounter is negative and so is the Ratio, which is wrong and result in unexpected symptoms.

What is the version of your hal.dll? Need to search here for a patched x64 hal.

i guess it's just the normal version of hal.dll that comes with xp64sp2, unless there's a newer one that may have installed via automatic updates, the whole system is fully up-to date in that regard.
and i figured that would be the case with the bios updates.
also im not entirely sure what version of your acpi.sys im using either, like i said, a friend sent it to me and idk where they found it,  so i'll see if i can find that again on here too, there might be a more recent version. where are the files on here, btw? i've only been able to find the 32-bit versions.
thanks!
#5110gordo999
Zitat von ⇗ daniel_k im Beitrag ¶ #5104
⇗ @mockingbird I'm currently updating my thread at MDL forums (Drivers and tools to run Windows XP on newer hardware). You'll find everything you need to run XP.
⇗ @daniel_k ...Thanks for providing direct link info Daniel. I have already pointed ⇗ @mockingbird to your MDL thread by showing him where to find the link but he claimed I was berating him for claiming he did not look closely enough. I did not want to reference your thread at MDL directly.
#5111flyod⇗ @daniel_k your patched hal.dll worked fine, screenshots of the timer tests are attached. the ratio would jump between 1.0000 and 0.9999. all the web browsers i couldn't get to work before to work fine now, im using one to make this post from windows xp 64-bit.  i hadn't encountered any other software that didn't work so i cant really do any other tests, but if there are others you'd like me to try i will.
thanks so much! i've been trying to figure this out for weeks, now i think i'll try those usb drivers i found on here, to see if i can get the system fully functional, but with a real ps/2 mouse and keyboard port, usb isn't a huge priority for me right now.



flyod has attached images to this post  ⇗ 002.PNG  ⇗ 001.PNG
#5112daniel_k⇗ @flyod

Glad to know it worked!
#5113daniel_k
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #4907
Take attention:
Windows 8's STORAHCI + Windows's STORPORT have significal performance drop and high CPU usage, there is no fix yet

Just tested it and found no issues, performance is exactly the same as skullteria's and CPU usage was 0% (zero).

Found one interesting thing when Server 2003 with PAE enabled, 8GB of RAM running on VirtualBox:

- Windows 8 original storahci + storport.w7 + storpor8.sys: no issues
- skullteria's storahci + storport.w7 or storport.2003: crashes randomly
#5114OutbreakerNice work with this new patches. You saved me a lot of headache.
#5115ruthanI tested Micron Sata PCI-E controller - JMB582.  Its only which i found as PCI-E gen3 and Sata 3, others are only PCI-E gen 2.

Its seems to work better than Asmedia and Marwells with Linux, it also works with MacOS, but unfortunelly its not working with Paragon GPT loader (which works with Asmedia and Marwell and NVME drivers).

I tried Universal Sata driver and Micron one too - its not named as 582, but 585 for Windows 10 is working fine and device manage is fine, only something what is need for Paragon GPT to work is missing.

 

Page 342

#5116Mov AX, 0xDEAD
Zitat von ⇗ daniel_k im Beitrag ¶ #5113
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #4907
Take attention:
Windows 8's STORAHCI + Windows's STORPORT have significal performance drop and high CPU usage, there is no fix yet

Just tested it and found no issues, performance is exactly the same as skullteria's and CPU usage was 0% (zero).


i have other experience  - ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (312)
performance drop on my pc:
skullteria's storahci +any storport
Windows 8 STORAHCI + Windows 7 STORPORT

Zitat
Found one interesting thing when Server 2003 with PAE enabled, 8GB of RAM running on VirtualBox:
- Windows 8 original storahci + storport.w7 + storpor8.sys: no issues
- skullteria's storahci + storport.w7 or storport.2003: crashes randomly


storahci from OneCore is "cut" version of DDK sources, they changed&limited a lot places to be compatible with storport_w2003/DDK

#5117daniel_k⇗ @Mov AX, 0xDEAD

Forgot to report that unfortunately changing the device/GUID class in INF file from HDC to SCSIAdapter doesn't fix the 1st device only available in AIDA64's Storage -> ATA/SMART.

Do you think it can be fixed? Only 1st device in ATA devices issue also occurs on VM.
#5118Outbreaker⇗ @daniel_k
I noticed that the uaspstor.sys file is missing in the USB3 Zip-Archive.
#5119daniel_k
Zitat von ⇗ Outbreaker im Beitrag ¶ #5118
@daniel_k
I noticed that the uaspstor.sys file is missing in the USB3 Zip-Archive.

I know, that pack had UASP support disabled, so USB storage devices would use XP's usbstor driver.
Did that because I was testing Etron and VIA UASP drivers to decide which one to include.

Found that the best driver is from VIA, uploaded new pack including it.
#5120sergiox6Hello, can someone send me the "amdxhc_pae_fix.rar"? I can not find it. Thank you.
#5121YuriyCN
Zitat von ⇗ sergiox6 im Beitrag ¶ #5120
Hello, can someone send me the "amdxhc_pae_fix.rar"? I can not find it. Thank you.


⇗ https://www.upload.ee/files/11199750/From_winraid.zip.html
#5122Outbreaker
Zitat von ⇗ sergiox6 im Beitrag ¶ #5120
Hello, can someone send me the "amdxhc_pae_fix.rar"? I can not find it. Thank you.

⇗ https://forums.mydigitallife.net/threads...hardware.81607/
#5123PPeti66x⇗ @daniel_k
Hi!
I tried the new (Win8-based) USB XHCI driver on DELL M4800 notebook. It seems, that works correctly (if USB3 mode is enabled by Windows 7 for 1x bootup). But the HCSwitch is still a problem. It seems, that the Win8 driver can not enable the USB3 mode for the physical ports managed by the Intel HCSwitch. Force-installing (by DEVCON.EXE, ACPI\PNP0A08) the intel HCSwither produces BSOD 0x0000007b (by the PE Explorer, there are no missing import functions). Is there a way to force USB3 mode for the physical ports in Windows XP?
The 2nd thing: Non-Plug and Play Drivers\Kernel Mode Driver Framework server produces error code 24 in the device manager - but seems, that works correctly.
#5124Andalu
Zitat von ⇗ PPeti66x im Beitrag ¶ #5123
The 2nd thing: Non-Plug and Play Drivers\Kernel Mode Driver Framework server produces error code 24 in the device manager - but seems, that works correctly.

Same for my haswell system.
#5125daniel_k
Zitat von ⇗ PPeti66x im Beitrag ¶ #5123
I tried the new (Win8-based) USB XHCI driver on DELL M4800 notebook. It seems, that works correctly (if USB3 mode is enabled by Windows 7 for 1x bootup). But the HCSwitch is still a problem. It seems, that the Win8 driver can not enable the USB3 mode for the physical ports managed by the Intel HCSwitch. Force-installing (by DEVCON.EXE, ACPI\PNP0A08) the intel HCSwither produces BSOD 0x0000007b (by the PE Explorer, there are no missing import functions). Is there a way to force USB3 mode for the physical ports in Windows XP?

USB3 mode on pre-Skylake is still an issue.

Technically there are no issues with HCSwitch, but as it is a KMDF driver and it is early loaded as a filter driver for the PCI bus, on XP the KMDF runtime is still not available (not properly set load order).

Before installing the HCSwitch, do the following:

1) Save the following text as WdfLoadGroup.reg and apply it.
 
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GroupOrderList]
"WdfLoadGroup"=hex:01,00,00,00,01,00,00,00


2) Open the key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder and edit the List (REG_MULTI_SZ) value:

Put WdfLoadGroup below System Reserved and above Boot Bus Extender, like this (one value per line):

 
System Reserved
WdfLoadGroup
Boot Bus Extender
...


3) Now install the HCSwitch driver and restart. Please report if it works.


Zitat von ⇗ PPeti66x im Beitrag ¶ #5123
The 2nd thing: Non-Plug and Play Drivers\Kernel Mode Driver Framework server produces error code 24 in the device manager - but seems, that works correctly.
Zitat von ⇗ Andalu im Beitrag ¶ #5124
Same for my haswell system.

If any of you have the time to test it on Win7 x86 to see if it happens, so we know it's an OS specific issue or not.
#5126daniel_kOn WinXP fully updated, including latest root certificates update, it accepts SHA256 WHQL signed drivers, as long as the file hashes themselves are still SHA-1, didn't expect that!
#5127PPeti66x⇗ @daniel_k
Hi!
WdfLoadGroup had already this value, so I edited only the ServiceGroupOrder List. After force-installing the HCSwitch driver, still fails with 0x0000007B.

Obsolete:
Installing the WDF on Win7 x86 1st failed (XP update system was incompatible), so I installed it via a modded INF file. After installation the system is unable to boot even in the safe mode:
STOP: 0x0000007E (0xC0000005, 0x89174211, 0x80D86988, 0x80D86560)
WDFLDR.SYS - Adress 89174211 base at 8916B000, DateStamp 4a5bbf1d
The test was made on my old Athlon XP 1600 computer (the only one on which I have x86 version of Windows 7) - so is possible, that the problem is the missing SSE2.


UPDATE:
Win7 prevented overwriting of the already present WDF 1.09, and probably this caused the error. After manual file replacing, and then reinstalling the system boots up normally, and the new WDF 1.11 causes the same error code 24 as in XP.
#5128daniel_k
Zitat von ⇗ PPeti66x im Beitrag ¶ #5127
After force-installing the HCSwitch driver, still fails with 0x0000007B.

Finally found the issue.

Open HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Wdf01000

And change Start to 0 (zero).

Make sure you've already changed the ServiceGroupOrder, restart and install the HCSwitch driver.
It won't crash anymore and also fixes the error code 24 in Device Manager, but we need to see if it works.

PS: I've updated the WindowsServer2003.WindowsXP-KB2864202-x86-INTL.exe installer to reflect the change.
#5129PPeti66x⇗ @daniel_k
Changing the Start value solved the Error 24 problem (tested on XP and Win7).
The HCSwitch driver still fails: STOP: 0x0000007B (0xB84CF524, 0xC0000034, 0x00000000, 0x00000000) (no driver filename displayed, only a generic stop error message)
Another interesting thing, that I am unable to install without devcon.exe, because Windows not founds a compatible hardware. But in list made by the devcon the ACPI\PNP0A08 exists. Interesting.
Or something missing or wrong in the INF for XP? (the OS requirement was changed to XP; INF was converted from Unicode to Ansi; iusb3hcs.sys is correctly copied to System32\Drivers at installation)
#5130daniel_k
Zitat von ⇗ PPeti66x im Beitrag ¶ #5129
@daniel_k
Changing the Start value solved the Error 24 problem (tested on XP and Win7).
The HCSwitch driver still fails: STOP: 0x0000007B (0xB84CF524, 0xC0000034, 0x00000000, 0x00000000) (no driver filename displayed, only a generic stop error message)
Another interesting thing, that I am unable to install without devcon.exe, because Windows not founds a compatible hardware. But in list made by the devcon the ACPI\PNP0A08 exists. Interesting.
Or something missing or wrong in the INF for XP? (the OS requirement was changed to XP; INF was converted from Unicode to Ansi; iusb3hcs.sys is correctly copied to System32\Drivers at installation)


I've attached my modified INF file, please try it.
There is nothing else preventing the HCSwitch driver from working.

⇗ @Andalu, please try this if you can.

daniel_k has attached files to this post

 

Page 343

#5131PPeti66x⇗ @daniel_k
The difference: it produces an Unknown device with error code 28. Force-reinstalling it produces 0x000000A1 error at restarting/shutting down, then the same error (0x0000007B) at bootup.
This driver is installed on Win7 as "PCI bus" (used driver files: iusb3hcs.sys, pci.sys, WdfCoInstaller01009.dll) - reinstalling this device on XP with Intel HCSwitch produces the same error - so no more required to do via devcon.exe.
#5132Andalu⇗ @daniel_k,
I installed the KB2864202 (first release) on another partition of the same system (Q87 haswell) where I got error code 24 and here it installs without problems. Same behavior on another haswell system (H97): no problem here too.
I tried once again to install the updated KB2864202 also on the partition where I got error code 24 but the system froze in all attempts. Most likely, some installed security programs (not installed in other partitions/systems) have a driver that conflicts with WDF 1.11. I have to try to install it manually.
#5133daniel_k⇗ @PPeti66x
Did you try to install the driver on XP in the PCI Bus device? It's a must.


⇗ @Andalu

On a test installation, please make sure you follow the instructions in the following posts:
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (342)
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (342)

Then try to install the HCSwitch driver using the INF I've posted here:
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (342)

I'd like to have a definitive answer to this issue.
#5134PPeti66x⇗ @daniel_k
Yes. But when I want to verify it now (booting the system with the last known good configuration), I see, that the "PCI bus" name was changed to a localized (slovak) version, iusb3hcs.sys is present on the driver list, and I am unable to copy files from the pendrive because of a never-seen error. 2 ports works as normally as USB3, 2 is unusable (endless reconnection or no file transfer - one of these is probably physically damaged, because is was always unstable in USB 3 mode, I am not the 1st owner of this machine), 1 works normally as USB2 (as should). Now I will try to make some cleanups and try it again.
#5135Andalu⇗ @daniel_k
USB3 driver installed in Win7 for the Pci Bus via HCSwitch after applying the procedure you indicated, no issue detected, all ports work as expected on a H97 haswell system:



On XP the same procedure give the 7B BSOD. I have to try once again.

EDIT: it works on XP too now:


in XP (unlike win7) the WdfLoadGroup is not present in the list for the key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder
(manually added)

and in the key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Wdf01000
the 'Start' dword is already set to '0' (as for Win7).
#5136daniel_k⇗ @Andalu, thanks for your report.

Actually on Win7 installation of the HCSwitch driver would be interesting if using the Win8 ported driver.
But does Haswell requires the HCSwitch driver at all? I mean, without it, the ports don't work at USB3 speeds?
#5137daniel_k
Zitat von ⇗ PPeti66x im Beitrag ¶ #5134
@daniel_k
Yes. But when I want to verify it now (booting the system with the last known good configuration), I see, that the "PCI bus" name was changed to a localized (slovak) version, iusb3hcs.sys is present on the driver list, and I am unable to copy files from the pendrive because of a never-seen error. 2 ports works as normally as USB3, 2 is unusable (endless reconnection or no file transfer - one of these is probably physically damaged, because is was always unstable in USB 3 mode, I am not the 1st owner of this machine), 1 works normally as USB2 (as should). Now I will try to make some cleanups and try it again.

About the localized strings, it's normal, when the HCSwitch driver is installed, there are localized strings in the INF. You're running a Slovakian localized XP, right?
Even with some "quirks", it seems that the filter drivers is doing its job, seeing that the ports are working at USB3 speeds.
#5138PPeti66x⇗ @daniel_k
I am running English version, set to Slovak locale - so the interface is in English. But it is ok, many applications sets the Slovak as default by these settings.
So the "final" report:
Intel HCSwitch now installs correctly, without BSODs. USB3 works as intended, with real USB3 speeds. And I have 2 semi-functional ports, which works correctly in USB2 mode, but are unusable in USB3 mode (seems to a hardware failure, but works stable with USB2 devices). It is the same in Windows 7 x64, so the drivers are OK.
The problem was: remained things from older experiments, and the WdfCoInstaller01009 installation parts in the inf

"But does Haswell requires the HCSwitch driver at all?"
Which computer requires HCSwitch depends on how the mainboard was made. Manufacturer can make direct USB ports (mainly used on mainboards with 8 or more USB ports), or can use HCSwitch to save physical ports (e.g. notebooks, barebone PCs). The Gen3 (Ivy bridge) Lenovo ThinkCentre M92 also requires it. Z77 Fatal1ty Professional have direct ports.

Is 64-bit port of the Win8 XHCI driver for XP planned in the near future?
#5139Andalu
Zitat von ⇗ daniel_k im Beitrag ¶ #5136
Actually on Win7 installation of the HCSwitch driver would be interesting if using the Win8 ported driver.
But does Haswell requires the HCSwitch driver at all? I mean, without it, the ports don't work at USB3 speeds?

Installing the Win8 ported driver via HCSwitch I received the message about the incompatible software, so I can't go on.
On my H97 haswell system the USB3 ports work normally at their speed already at the end of the Win7 installation, no need to install the driver via switch.
#5140Outbreaker⇗ @daniel_k
I had to add the file ntoskrn8.sys too avoid the missing file problem that i got with the storahci.sys and stornvme.sys file at the first stage of the Windows XP Setup (F2). But when i do this then i run into a BSOD with the SATA driver on VirtualBox.

#5141Andalu⇗ @daniel_k
the Adata SSD Toolbox doesn't work with the AHCI (generic) driver from Extender while using the RSTe 4.7.0.1117 driver there are no problems as with the 'old' backported driver from win8:

    

This tool is very useful because allows the manual trim in XP and until now it has worked with all my SSD drives. The manual trim works also fine for the NVMe drives but, unfortunately, only in Win7. It's a real shame that we can't have the same feature in XP


P.S.: ¶ here I seen the asmedia driver 1.16.61.1 working in XP, how did you do that?
#5142daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #5141
AHCI (generic) driver from Extender
'old' backported driver from win8

I'm confused, please pack these two drivers and send me a PM.

Zitat
The manual trim works also fine for the NVMe drives but, unfortunately, only in Win7. It's a real shame that we can't have the same feature in XP


I think the issue lies in the way the utility detects disks.

Zitat
P.S.: ¶ here I seen the asmedia driver 1.16.61.1 working in XP, how did you do that?


The driver works just fine even if XP doesn't recognize the WHQL signature, try it.
I was just impressed that XP accepted a SHA256 signed WHQL certificate.

#5143Mov AX, 0xDEAD
Zitat von ⇗ Andalu im Beitrag ¶ #5141

the Adata SSD Toolbox
....
This tool is very useful because allows the manual trim in XP and until now it has worked with all my SSD drives. The manual trim works also fine for the NVMe drives but, unfortunately, only in Win7. It's a real shame that we can't have the same feature in XP

Adata SSD Toolbox Trim is useless for WinXP, it doesnt access raw filesystm on disk, it just create big temp files and then remove it. This trigger trim on Win7 but not on XP because real trim job will be processed by NTFS driver

Trim on XP possible only with special utils like commercial defrag when it open raw ntfs partitions and trim free blocks
#5144YuriyCN
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5143

Adata SSD Toolbox Trim is useless for WinXP, it doesnt access raw filesystm on disk, it just create big temp files and then remove it. This trigger trim on Win7 but not on XP because real trim job will be processed by NTFS driver

Trim on XP possible only with special utils like commercial defrag when it open raw ntfs partitions and trim free blocks



Please, advise really working utilities.
Write their names and versions.
#5145genieautravail⇗ @PPeti66x

Can you explain how do you switch from USB 2.0 mode to USB 3.0 mode.

At home, I alway have a Dell E6230 with 2 USB 3.0 ports running at 2.0 speed with XP.
The hardware switch is the same that for your Precision notebook.

 

Page 344

#5146PPeti66x⇗ @genieautravail

IMPORTANT: You should make a backup first (the "Windows\System32\Config" folder), because if something goes wrong, your windows will be unbootable. Mostly the last known good configuration works, but not always!!!
1. Get the new Windows 8 USB 3 driver modded for XP, and install it (you must install the WDF package first and restart, then install the USBXHCI driver, then restart)
1a Verify that the driver is installed and no error in the device manager.
2. Get the Intel USB 3 driver package for the Gen3 (Ivy Bridge) or older chipsets (beginning with Gen4 there is a different driver!).
2a. Extract the Drivers\HCSwitch from the archive
2b. Download iusb3hcs.rar from Daniel_K (last post on previous page), and replace the original inf.
3. In the Device Manager (recommended to switch to displaying by connection) right click on: "ACPI multiprocessor PC"\"Microsoft ACPI-Compliant System"\"PCI bus", select Properties, and in Details tab verify the hardware ID, which must be "ACPI\PNP0A08". If this is OK, then click on Update driver..., Specific location, Don't search. I will choose the driver to install..., then select the modded HCSWitch driver and install it.
NOTE: If you use non-english Windows, the names are mostly localized.
4. If your Windows boots up without problems, verify: for "PCI bus" in Driver Details the "iusb3hcs.sys" must be present. If not, installation failed. If OK, then you should have a real USB3 speeds.
#5147Andalu
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5143

Adata SSD Toolbox Trim is useless for WinXP, it doesnt access raw filesystm on disk, it just create big temp files and then remove it. This trigger trim on Win7 but not on XP because real trim job will be processed by NTFS driver

Trim on XP possible only with special utils like commercial defrag when it open raw ntfs partitions and trim free blocks


I'll be wrong but I couldn't notice any difference between the trim operations performed by Adata SSD Toolbox in Win7 compared to XP. In both OSes, fsutil.exe seems to create, write and then deletes the same *.tmp files:

 

It is difficult to find a commercial software that can trim in XP, one of the few seems to be iobit smart defrag even if it doesn't recognize the nvme disks while the Adata tool correctly recognizes them also in XP even if only in a certain condition. Anyway, for all my SSDs trimmed in XP via Adata tool, smart defrag reports that they don't need any other trimming operation.
#5148genieautravail⇗ @PPeti66x

Thank you very much for the details.

Will try as soon as possible and report the result here.
#5149genieautravail⇗ @PPeti66x

How do you install the USBXHCI driver ?
On my laptop, XP tell me that the already installed drivers are the best and don't want to upgrade them.
By the devices manager, If I try to force the install (disk provided...) for the USB Root Hub by pointing to the USBXHCI.inf file, XP tell me that the file doesn't contain any information about my hardware.
I can only force the upgrade for the USB controller, but after that, the driver doesn't want to start (code 10).

The already installed drivers are the Microsoft generic USB drivers:







#5150infuscomuslooking at those screenshots you installed the USB 2.0 driver not the USB 3.0 driver

if you are wondering which of your USB controllers are the USB 3.0 controllers look for this hardware ID
PCI\CC_0C0330
#5151PPeti66x⇗ @genieautravail
Infuscomus have right - you tried to update the USB2 driver. You can not do it, USB2 driver is required. You probably have installed a USB3 null-driver. You must found it and replace it. For Gen3 (Ivy bridge) should be named as "Intel(R) 7 Series/C216 Chipset Family Universal Serial Bus (USB) Controller - 1E31", but it may be localized.
If updating is not allowed, you can force-uninstall it:
a) Go to Windows\INF folder.
b) Search for "DEV_1E31" (without quotes) in all INF files. You should find something with name oem*.inf. Open it and verify the file content: in the header you should see these 2 lines:
     FileName: PantUSB3.inf
     Abstract: Null driver for Intel(R) USB 3.0 devices
  Rename the file extension from "inf" to "in_", rename the "pnf" extension with the some filename to "pn_"
c) Open the device manager, and search for "Intel(R) 7 Series/C216 Chipset Family Universal Serial Bus (USB) Controller - 1E31", uninstall it.
#5152Mov AX, 0xDEAD
Zitat von ⇗ YuriyCN im Beitrag ¶ #5144
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5143

Trim on XP possible only with special utils like commercial defrag when it open raw ntfs partitions and trim free blocks


Please, advise really working utilities.
Write their names and versions.


O&O Defrag
PerfectDisk
TxBENCH (free disk util, simple GUI) - personaly prefer this one
Naraeon (free disk util with srcs, someone recommended it, but i dont used)

I used O&O Defrag with SandForce based SSD in 2014-2015, but remember version, it has console non-gui componentl so possible to shedule it without run main GUI program
#5153Mov AX, 0xDEAD⇗ @Andalu

Zitat von ⇗ Andalu im Beitrag ¶ #5147

I'll be wrong but I couldn't notice any difference between the trim operations performed by Adata SSD Toolbox in Win7 compared to XP. In both OSes, fsutil.exe seems to create, write and then deletes the same *.tmp files:


I dont know why it run fsutil, but i never see real trim on WinXP with Adata SSD Toolbox, trimcheck always show "untrimed" blocks

Zitat von ⇗ Andalu im Beitrag ¶ #5147

It is difficult to find a commercial software that can trim in XP, one of the few seems to be iobit smart defrag even if it doesn't recognize the nvme disks while the Adata tool correctly recognizes them also in XP even if only in a certain condition. Anyway, for all my SSDs trimmed in XP via Adata tool,


Dont have nvme, cant help wth it

Zitat von ⇗ Andalu im Beitrag ¶ #5147

smart defrag reports that they don't need any other trimming operation.


seems Smart Defrag is bad, there is no standarts to report which blocks trmed or not, so any utils cant display "Bro, your sdd is OK, you dont need trim"
On WinXP proper trim tool calculate ALL free ntfs blocks every time and trim it ALL
#5154genieautravail
Zitat von ⇗ infuscomus im Beitrag ¶ #5150
looking at those screenshots you installed the USB 2.0 driver not the USB 3.0 driver

if you are wondering which of your USB controllers are the USB 3.0 controllers look for this hardware ID
PCI\CC_0C0330

Thank you for the tip.
#5155genieautravail
Zitat von ⇗ PPeti66x im Beitrag ¶ #5151
Infuscomus have right - you tried to update the USB2 driver. You can not do it, USB2 driver is required.

Again, thank you.
YES, the USB 2.0 driver is installed by default by XP as the USB ports works in 2.0 mode with XP.
#5156genieautravail⇗ @PPeti66x

THAT WORKS!
Yesterday, I remembered! That was here:
⇗ https://msfn.org/board/topic/177563-newe...comment=1171879

As I have restored a new disk image of XP, I have forgotten to replace the original acpi.sys and acpi.inf files by the moded ones.
It's why in the devices manager, the device Intel(R) 7 Series/C216 Chipset Family Universal Serial Bus (USB) Controller - 1E31 wasn't present.

Now, it's was the case:



For the next steps, I have the same things as you.









One remark,

In your "How to do" you have forgotten to mention the necessity to change a registry key:

Zitat von ⇗ daniel_k im Beitrag ¶ #5125
2) Open the key HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlServiceGroupOrder and edit the List (REG_MULTI_SZ) value:Put WdfLoadGroup below System Reserved and above Boot Bus Extender, like this (one value per line):1234&nbsp;System ReservedWdfLoadGroupBoot Bus Extender...

Without this change, at boot of XP, I get a BSOD 0x0000007B

Have a nice day!
#5157PPeti66x⇗ @genieautravail
Interesting. By my informations/experience the modded ACPI.SYS build 5048 is not required for Gen3 (Ivy bridge) or older motherboards. The USB3 controller was embedded into a CPU beginning with Gen4. So the QM77 chipset theoretically should not require it.
If you replace back the ACPI.SYS, what happens to the USB3 device driver? Disappears or works normally as intended? I think, your notebook will be better with the original ACPI.SYS, if USB3 works on it.
But is good to see, that it works.
Have a nice day!
#5158Ant.Hello.
Does anybody managed to run Intel HD Graphics 4000 on WinXP 32 bit  and PAE kernel? (Ivy Bridge on Z77 mainboard)
I was trying various driver versions. All of them generate BSOD 0x00000050 cused by igxpmp32.sys

Also Creative Live! 24 soundcard works only with 4GB PAE. Any idea how to fix it?
#5159PPeti66x⇗ @Ant.
X86: ⇗ https://downloadcenter.intel.com/downloa...s-XP32-Embedded
X64: ⇗ https://downloadcenter.intel.com/downloa...s-XP64-Embedded
It works on an unmodified PAE kernel (tested on Dell M4800), but it is unknown, how it works on the patched PAE kernel.
#5160Ant.⇗ @PPeti66x
This driver is for 4th Generation Intel® Core processor graphics (Haswell)
But Ivy Bridge is the 3rd generation.
With patched ntkrpamp.exe the same BSOD 0x00000050 occures at igxpmp32+2376F:

 
.text:10023765                 mov     ecx, [ebp+8]
.text:10023768 push ecx
.text:10023769 call ds:VideoPortGetDeviceBase
.text:1002376F mov edx, [ebp+8]
.text:10023772 mov [edx+98h], eax
.text:10023778 mov eax, [ebp+8]
.text:1002377B cmp dword ptr [eax+98h], 0
.text:10023782 jnz short loc_100237EC
.text:10023784 mov ecx, [ebp-4]
.text:10023787 push ecx
.text:10023788 push offset aGfxfindadapt_5 ; "GfxFindAdapter: Map Video Memory using "...
.text:1002378D push 1

 

Page 345

#5161PPeti66x⇗ @Ant.
Sorry, you are true, I did not noticed that is for the Z77 (haswell still uses 4000 series numbering and most of people do not notice the difference).
So the problem, that you want to use with patched PAE kernel (above 4GiB address space). Because Intel never made a driver for that VGA for Windows 2003 Server (or at least I never see that), this incompatibility seems to be intentional. A similar problem was with the XP USB device drivers - these were ported from Windows 2003.
#5162genieautravail
Zitat von ⇗ PPeti66x im Beitrag ¶ #5157
@genieautravail
Interesting. By my informations/experience the modded ACPI.SYS build 5048 is not required for Gen3 (Ivy bridge) or older motherboards. The USB3 controller was embedded into a CPU beginning with Gen4. So the QM77 chipset theoretically should not require it.
If you replace back the ACPI.SYS, what happens to the USB3 device driver? Disappears or works normally as intended? I think, your notebook will be better with the original ACPI.SYS, if USB3 works on it.
But is good to see, that it works.
Have a nice day!

I will test that the next week!
#5163Mov AX, 0xDEAD
Zitat von ⇗ Ant. im Beitrag ¶ #5160
@PPeti66x
This driver is for 4th Generation Intel® Core processor graphics (Haswell)
But Ivy Bridge is the 3rd generation.
With patched ntkrpamp.exe the same BSOD 0x00000050 occures at igxpmp32+2376F:


Don't sure about desktop IVY, on mobile IVY (HM76) i use 6.14.10.5437 driver with pae unlocked kernel without any problem.
Haswell driver 6.14.10.5445 support some IVY DEV_IDs too, but Intel renamed these entries to "Intel HD 3000" )
#5164Ant.Just checked the same 6.14.10.5437 driver on ⇗ Win7 32 with PAE patch: it works.
But could there be a difference between PAE implementations?
May be my WinXP installation is too old and there need to try this driver on a clean installation?
#5165genieautravail⇗ @PPeti66x

With the original acpi.sys file, the USB 3.0 controller disappear from the devices manager and reappear with the modded acpi.sys file.
Replaced and restaured several times.

Have a nice day!
#5166Ant.BSOD 0x00000050 caused by igxpmp32 was eliminated by replacing videoprt.sys taken from SP2
#5167AndaluThe USB3 driver installation via HCSwitch works on my desktop Ivy Bridge using the original acpi.sys or the modded version 5048 while fails with the acpi6666 from outer space.
The only issue I noticed is when XP boots with an USB3 device already connected to an USB3 port, in this case the device is no longer detected until it is unplugged and re-inserted into the USB3 port. No problems using an USB2 device connected to the same USB3 port.

#5168Andalu
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5153
I dont know why it run fsutil, but i never see real trim on WinXP with Adata SSD Toolbox, trimcheck always show "untrimed" blocks

I used O&O Defrag and TxBENCH to trim an SSD (in PerfectDisk there is a generic "SSD optimize" option and nothing about the trim, so I preferred not to try it) but TrimCheck 0.7 gives always the same verdict: "trim appears to be not working". I think it's TrimCheck that doesn't work properly:

   

However, the only program that seems correctly detect and allow the trim for an NVMe disk is O&O Defrag even though the latest XP compatible version is 17.5 of 2014, but how to be sure that's a real trimming?

#5169infuscomus⇗ @Mov AX, 0xDEAD

any further developments on your ntoskrnl extender?
#5170genieautravailMessage deleted by myself...
#5171Mov AX, 0xDEAD⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #5169
@Mov AX, 0xDEAD
any further developments on your ntoskrnl extender?

Currently NO, i dont see more drivers to port, i mean drivers not related to kernel (like hal/acpi/dxapi/win32k/ntfs/...)
#5172Mov AX, 0xDEAD
Zitat von ⇗ Andalu im Beitrag ¶ #5168
TrimCheck 0.7 gives always the same verdict: "trim appears to be not working". I think it's TrimCheck that doesn't work properly:


Hi Andalu,

I dont know any other check tool, so only TrimCheck can show data in sector before and after deleting temp file.
If TrimCheck show same DATA this mean this block was not trimed by unknow reason, ignore text verdict, always check difference in HEX DATA (SandForce after trim show FF FF/Indilinx BareFoot(OCZ/Toshibas) show random data/...)
#5173YuriyCN
Zitat von ⇗ Andalu im Beitrag ¶ #5168

I used O&O Defrag



You measured how much the write speed of the SSD disk increases
after executing the command "Optimize SSD with TRIM"?
#5174Ant.
Zitat von ⇗ Andalu im Beitrag ¶ #5167
The USB3 driver installation via HCSwitch works on my desktop Ivy Bridge using the original acpi.sys


Which HCSwitch version you are using? Does it depend from xCHI driver?

I was trying to install HCSwitch from ⇗ Lenovo but got BSOD 0x000000A1 caused by pci.sys
#5175Andalu
Zitat von ⇗ Ant. im Beitrag ¶ #5174
Which HCSwitch version you are using? Does it depend from xCHI driver?
I was trying to install HCSwitch from ⇗ Lenovo but got BSOD 0x000000A1 caused by pci.sys

I used the HCSwitch from the driver v1.0.5.235 but I can install the USB3 driver in the normal way even without the switch method on my desktop Ivy Bridge system.
Which USB3 drivers are you using?
Please start reading from ¶ this post from ⇗ @daniel_k and following, you can find info and the 'iusb3hcs.inf' to use.
⇗ @PPeti66x summarized the procedure ¶ here. Don't forget to apply the modify to the "ServiceGroupOrder" registry key.

The only suggest I can give you is to firstly try the original acpi.sys before the modded ones. It seems to work better even on my crazy system.

 

Page 346

#5176Ant.
Zitat von ⇗ Andalu im Beitrag ¶ #5175
Which USB3 drivers are you using?

I'm using  AMD driver (1.1.0.276 / 1.1.0.0145). It works after reloading from Win7 to WinXP. Win8 ported driver(v.1.2) doesn't work.
#5177Andalu
Zitat von ⇗ Ant. im Beitrag ¶ #5176
I'm using  AMD driver (1.1.0.276 / 1.1.0.0145). It works after reloading from Win7 to WinXP. Win8 ported driver(v.1.2) doesn't work.

The USB3 driver backported from win8 that doesn't work is the same version that you can find ⇗ here?
#5178PPeti66x⇗ @genieautravail
Good to known. Thanks for reporting.
-----------

For everyone, who needs Intel HCSwitch:
Today I have tested the new USB 3 Driver and Intel HCSwitch on the Lenovo ThinkCentre M92 (motherboard: IS7XM, chipset: B75 Express). The results: ACPI.SYS build 5048 is not required for the USB 3 device driver. It can be installed and by device manager works correctly. But the Intel HCSwitch device driver will detect the system as incompatible (no errors reported in device manager, but you can not reach USB 3 speeds, and all USB devices are connected to USB 2.0) and will not switch to the USB 3 mode. After installing the ACPI.SYS build 5048, the Intel HCSwitch device driver works as intended.
This means, that is mandatory to use the Vista-based ACPI.SYS build 5048 on Gen3 (Ivy bridge) and older chipsets even if USB 3 itself does not require it. Problem is, that this will make some features unusable on notebooks: display brightness control and internal/external display switching, which are present in the original ACPI.SYS.
#5179PPeti66x⇗ @Ant.
Because modded drivers can not be posted here, for the modded Intel HCSwitch and detailed instructions go here and see the post no. 74: ⇗ https://forums.mydigitallife.net/threads...re.81607/page-4
(in the link to the driver, replace the h??ps with https)
#5180Ant.⇗ @PPeti66x
Thanks. Got it working with AMD xHCI driver and original acpi.sys(5.1.2600.5512).
My mistake was adding a new device instead of updating current driver for existent PCI bus.
#5181Mov AX, 0xDEADHi All,

Currenly i trying to inject DirectX 11/WDDM kernel stuff from Win7 to WinXP, chance to success is very low, but who knows....
win32k.sys will be replaced to ported win7 version, so probably famous good GDI performance on WinXP  will be significaly degraged
#5182daniel_k⇗ @Mov AX, 0xDEAD, that would be awesome!

If it doesn't work or too complex, what about Vista's WDDM? It's closer to XP.

Did you replace your mobo?
Did you ever try to mod the Haswell display drivers to work with Skylake+? Intel barely did changes in its graphics core.
#5183AndaluI did some tests on my M.2 SATA disk with some sata/ahci drivers. Unfortunately, with some drivers, the SSD disk has not been recognized by the programs:






The best driver seems still to be the storahci backported from win8 and also the modded driver by Fernando is still a good choice.

I'm still looking for a good solution for a working trim in XP for SSD and NVMe drives. Today, for the first time an NVMe disk has been correctly recognized as such in a program (TxBench) even if the trim is not allowed anyway:

#5184diderius6⇗ @infuscomus
I think, also in WinXP-IE Optional Patch Integrator v2.3.4b10
in usbxhci.inf
should be renamed to
WppRecorder.sys => WppRecor.sys

Dietmar
#5185infuscomus⇗ @diderius6

OK! will do that.

also, are you available to help with some debugging?
#5186diderius6⇗ @infuscomus

After crazy weeks in Ukraine now I try to come back
to life

Dietmar
#5187Mov AX, 0xDEAD
Zitat von ⇗ daniel_k im Beitrag ¶ #5182

If it doesn't work or too complex, what about Vista's WDDM? It's closer to XP.
No, no closer (
WDDM was introduced in Vista, GDI is done over DirectX API
in Win7 it was impoved by allowing drivers do hardware accelerated GDI processing
Zitat
Did you replace your mobo?
Did you ever try to mod the Haswell display drivers to work with Skylake+? Intel barely did changes in its graphics core.

- Not yet
- I didnt tried, changing ID in driver is funny, but dont sure about success, linux opensource driver can show what registers and other stuff changed in skylake after haswell

#5188skullteriaWell, the main problem to port WDDM is related with the fact the truely implementation is reside on win32k. So, we would need rebuild win32k
#5189Mov AX, 0xDEAD
Zitat von ⇗ skullteria im Beitrag ¶ #5188
Well, the main problem to port WDDM is related with the fact the truely implementation is reside on win32k. So, we would need rebuild win32k
win7's win32k.sys is hard challenge to port, it heavy uses undocumented kernel things like PEB, TEB, thread/process fields, ....

win7 ddk docs tell what vista support old win200 display driver model too, so vista (in theory) can render gdi over old videoprt.sys video driver framework.
#5190skullteriaYes, XDDM is supported until Windows 7. Adapt Win32k compiled to support WDDM is almost impossible. First, need edit function what load dxgkrnl (and dxg too, is the exact function). After, need add functions to support CDD or build own cdd (cannonical display driver - is a generic display driver, because WDDM run top on old XDDM). After, add D3DKmt functions, what several are wrappers of Miniport driver. And, on the function what load display driver, hack to load cdd as display driver if dxgkrnl is loaded and working. In resume, it is almost impossible

 

Page 347

#5191YuriyCN
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5187

WDDM was introduced in Vista, GDI is done over DirectX API
in Win7 it was impoved by allowing drivers do hardware accelerated GDI processing


Look details here - ⇗ [Solution] Acceleration of GUI interface on the non-Aero themes of Windows 7
#5192Mov AX, 0xDEAD
Zitat von ⇗ YuriyCN im Beitrag ¶ #5191
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5187

WDDM was introduced in Vista, GDI is done over DirectX API
in Win7 it was impoved by allowing drivers do hardware accelerated GDI processing

Look details here - ⇗ [Solution] Acceleration of GUI interface on the non-Aero themes of Windows 7

GDI is low level graphics, GUI/themes/composing is high level
for example BitBlt(copy anything on/to screen) can be processed directly by display kernel driver in Win7, but not in Vista. In Vista BitBlt() will be transformed to something other like memory copy command(?)
#5193YuriyCNFeedback on "Microsoft USB 3.0 xHCI driver v2.1" with WinXP-IE Optional Patch Integrator v2.3.4b15.zip

Since v2.3.4.XXX (all versions), USB driver do not work on my motherboard H110M (VEN_8086&DEV_A12F). After installing the driver - error code 37. The latest working version is v2.3.3b21.

#5194Outbreakerv2.3.3.XXX = Generation 1 drivers.
v2.3.4.XXX = Generation 2 drivers.
Try out the AMD/Intel USB 3.0 v3 driver(s).
#5195YuriyCNv2.3.3.XXX = Generation 1 drivers. ---- All versions work fine.
v2.3.4.XXX = Generation 2 drivers. ---- All versions dont work.

Chipset MB ---- Intel H110M

Zitat von ⇗ Outbreaker im Beitrag ¶ #5194

Try out the AMD/Intel USB 3.0 v3 driver(s).


Please, give me URL to this driver.
#5196OutbreakerYou have it already. It's Option 5 in the Script.
#5197YuriyCN
Zitat von ⇗ Outbreaker im Beitrag ¶ #5196
You have it already. It's Option 5 in the Script.


I do not use CMD file.
I ask you to attach a text description who does the driver installation manually.
#5198infuscomus⇗ @YuriyCN

you can find the inf files for the alternate USB 3 driver in   v2.3.4b15\Integrator Files\Patches\AMD&Intel USB 3.0 xHCI drivers
#5199YuriyCN
Zitat von ⇗ infuscomus im Beitrag ¶ #5198
@YuriyCN

you can find the inf files for the alternate USB 3 driver in   v2.3.4b15\Integrator Files\Patches\AMD&Intel USB 3.0 xHCI drivers


I used this driver 3 months ago.
After the appearance a generic driver (ported from Windows 8), I switched to it, since with it:
1) higher performance
2) "Standby mode" works
3) no problems with PAE

Why did the 2nd generation of this driver (v2.3.4.XXX) stop working on my MB?
#5200infuscomus⇗ @YuriyCN

make sure ntoskrn8.sys is in system32\drivers then reinstall the driver

is USB 3.0 working in XP textmode setup for you?
#5201YuriyCN
Zitat von ⇗ infuscomus im Beitrag ¶ #5200
@YuriyCN

make sure ntoskrn8.sys is in system32\drivers then reinstall the driver

is USB 3.0 working in XP textmode setup for you?


That's right, the file ntoskrn8.sys is in system32\drivers.
I installing driver (v2.3.4b15, generation 2), over the already installed driver (v2.3.3b18, generation 1).
The old driver (v2.3.3b18) works fine.

But after installing new driver (v2.3.4b15), I get error code 37.
If I reboot the PC, I get BSOD:

#5202OutbreakerThe file "ntoskrn8.sys" and "storport.sys" need to be in the "C:\WINDOW\system32\drivers" folder if you don't use the Script and only the "*.inf" file.
#5203Andalu⇗ @YuriyCN
before updating the driver, did you install the Kernel Mode Driver Framework v1.11?
#5204YuriyCN
Zitat von ⇗ Andalu im Beitrag ¶ #5203
@YuriyCN
before updating the driver, did you install the Kernel Mode Driver Framework v1.11?


SUPER! Thank! This is the right answer.

The "Microsoft USB 3.0 xHCI driver v2.1" is works, but I didn't notice any performance difference.
How does a Gen 2 driver compare to a Gen 1 driver?
#5205infuscomus
Zitat von ⇗ YuriyCN im Beitrag ¶ #5204

How does a Gen 2 driver compare to a Gen 1 driver?


same performance - the difference with gen2 over gen1 is offloading code extension/modification into the ntoskrnl extender instead of modding the driver directly.

 

Page 348

#5206infuscomus⇗ @Mov AX, 0xDEAD

regarding your ntoskrnl extender - do you have any plans to target windows 2000 in the future? (i also have 2000 DDK if you want a copy)
#5207YuriyCN
Zitat von ⇗ infuscomus im Beitrag ¶ #5205
Zitat von ⇗ YuriyCN im Beitrag ¶ #5204

How does a Gen 2 driver compare to a Gen 1 driver?


same performance - the difference with gen2 over gen1 is offloading code extension/modification into the ntoskrnl extender instead of modding the driver directly.



By the way, the driver Gen1 works better. Returning from standby mode works fine with it.
A driver Gen2, when returning from standby mode, crashes in the BSOD in half the cases.

We need a correct timer patch in the HAL.DLL file - there you can really get
a performance increase in SATA and USB drivers up to 25-30 percent.
The modified HAL.DLL is already there, but some applications do not work with it correctly.
For example, GS-CABer crashes on loading. A more correct patch is needed.
#5208Mov AX, 0xDEAD⇗ @infuscomus,
Hi

Zitat
regarding your ntoskrnl extender - do you have any plans to target windows 2000 in the future? (i also have 2000 DDK if you want a copy)


No any plans, w2000 is too rare&exotic for me (do we have acpi.sys and worked PAE for skylakes+ ?)

#5209Mov AX, 0xDEAD
Zitat von ⇗ YuriyCN im Beitrag ¶ #5207

By the way, the driver Gen1 works better. Returning from standby mode works fine with it.
A driver Gen2, when returning from standby mode, crashes in the BSOD in half the cases.


Привет Юрий(?)
If you learn how to convert bsods to crashdump stacktrace you get more knowledge what "thing" generates bsod
#5210infuscomus⇗ @Mov AX, 0xDEAD

It's possible to get past ACPI A5 BSOD on 2000 for Ryzen with the same fix used to fix XP - but there is no AHCI and no PAE.


I've been experimenting and it seems you can target windows 2000 using Win7DDK by taking the ntoskrnl.lib and hal.lib from the 2000 DDK and using them with TARGETLIB during compilation

Using a VM to test I got ntoskrn8.sys to not throw a "ntoskrn8.sys is corrupted" in 2000 textmode setup using win7DDK by setting TARGETLIB to point to ntoskrnl.lib and hal.lib of 2000 DDK and pointing the sources file to them.
without using the 2000 ntoskrnl.lib and hal.lib you get "ntoskrn8.sys is corrupted" in 2000 textmode setup.

I'm not sure if this is useful though.
#5211YuriyCN
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5209

If you learn how to convert bsods to crashdump stacktrace you get more knowledge what "thing" generates bsod


Майкрософтовский USB драйвер 1-го поколения работает лучше, чем драйвер 2-го поколения. В двух случаях производительность порта одинаковая, но ПК восстанавливается из ждущего режима со старым драйвером стабильнее. При восстановлении из ждущего режима с новым драйвером чаще бывает BSOD или загрузка зависает на черном экране.

Но для меня проблема номер 1 - это корректный патч HAL.DLL. Дело в том, что модифицированный HAL.DLL дает прирост производительности и SATA и USB драйверов до 30%. Например, скорость чтения USB3 флешки возрастает с 65-70 МБ/с до 95-105 МБ/с, скорость линейного чтения SSD возрастает с 170-190 МБ/с до 230-250 МБ/с, что довольно существенно. Но с новым (патченым) файлом возникают проблемы с запуском GS-CABer и возможно других программ, которые как-то нестандартно работают с таймером. При запуске GS-CABер крашится, хотя с оригинальным файлом запускается без падений. Спасает запуск программы в режиме совместимости с Windows 98|2000, тогда краша нет, но мне не совсем нравится такое решение. Нужно разобраться и сделать корректный патч HAL.DLL.
#5212Mov AX, 0xDEAD
Zitat von ⇗ YuriyCN im Beitrag ¶ #5211
Нужно разобраться и сделать корректный патч HAL.DLL

Hi YuriyCN
topic's first page, "Intel MB issues, Wrong timing, Compatibility fix (HAL TSC frequency divider)"
#5213YuriyCN
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5212
Zitat von ⇗ YuriyCN im Beitrag ¶ #5211
Нужно разобраться и сделать корректный патч HAL.DLL

Hi YuriyCN
topic's first page, "Intel MB issues, Wrong timing, Compatibility fix (HAL TSC frequency divider)"



Насколько я понял, речь идет именно о строках, изложенных ниже.
Я ранее поднимал эту проблему в отдельном топике - ⇗ What exactly is the hal timer problem? (3)
но решения так и не нашел. Имеющийся в составе "WinXP-IE Optional Patch Integrator v2.3.4b17" файл HAL не закрывает эту проблему. Мне сложно понять как добавить этот ассемблеровский код в HAL.DLL. Подскажите, пожалуйста, где найти готовый пропатченый файл и почему его не включают в состав WinXP-IE Optional Patch Integrator? Ведь на USB и SATA интерфейсах, получаем довольно большую прибавку в скорости, на моей системе до +30%.


Compatibility fix ("HAL TSC frequency divider")
Some programms do wrong calculation with high values of PerformanceCounter/PerformanceFrequency
(HAL_acpitimer_fix set values to cpu freq), to avoid this problem values need to divide to much
lesser value, Windows 7 just divide it to 1024, so timer frequency on 3600Mhz cpu is only 3.51Mhz

Patch:
- divide to 1024 values of PerformanceCounter/PerformanceFrequency, replace _HalpAcpiTimerQueryPerfCount to:
 mov     ecx, [esp+4]
or ecx, ecx
jz short Skip_Frequency_Mode mov eax, fs:0A4h ; FrequencyLo
mov edx, fs:0A8h ; FrequencyHi
shrd eax, edx, 0Ah
shr edx, 0Ah
mov [ecx], eax
mov [ecx+4], edx
Skip_Frequency_Mode:
 rdtsc
add eax, fs:0ACh ; CalibrationLo
adc edx, fs:0B0h ; CalibrationHi
shrd eax, edx, 0Ah
shr edx, 0Ah
retn 4
#5214nijazxpDoes anybody know why can't I bypass 7b bsod? I tried xp sp3 32bit original vl edition and integral edition 2020.5.5. I used winsetupfromusb and easy2boot together with my usb. I tried modified ntdetect, universal ahci drivers by fernando, universal ahci patch from integral edition, dpms, some acpi patches, pressing f5, f6, f7, setting bios to legacy and mbr, using usb 2.0 port instead of usb 3.0... Why I just can't get past 7b bsod? Is there any way? I thought I am expert who bypassed that problem on my old emachines laptop, but on my newer lenovo laptop I just can't bypass it. I checked hardware ids of my ahci controller to match to those in fernandos and other inf files, and they do. I tried using exactly same boot disk on two laptops, on emachines e725 and on lenovo b51-30 80lk, but although almost every combination/configuration works on emachines, none work on lenovo. I used nlite for integration of textmode drivers, and it was always successful on emachines, but never on lenovo. I only did not try ones under 3.) by Fernando, MSM ones. While those first I already installed on my windows 10, x64 of course. Detected properly as

Zitat
Intel(R) SATA AHCI Controller DEV_22A3 added by Fernando

Honestly I did not still try all acpi drivers from integral edition of xp, could that be solution? Has ACPI anything to do with 7b error? I also looked at devices by connection in device manager and sata controller is on same path as in my old laptop, that is in this order:

Zitat
ACPI x64-based PC
Microsoft ACPI-Compliant System
PCI Express Root Complex
Standard SATA AHCI Controller



Here are my lenovo specs:

standard ahci controller in device manager in windows 10 x64:

Zitat
hardware ids:
PCI\VEN_8086&DEV_22A3&SUBSYS_390117AA&REV_21
PCI\VEN_8086&DEV_22A3&SUBSYS_390117AA
PCI\VEN_8086&DEV_22A3&CC_010601
PCI\VEN_8086&DEV_22A3&CC_0106
compatible ids:
PCI\VEN_8086&DEV_22A3&REV_21
PCI\VEN_8086&DEV_22A3
PCI\VEN_8086&CC_010601
PCI\VEN_8086&CC_0106
PCI\VEN_8086
PCI\CC_010601
PCI\CC_0106



Some specs from Speccy:

Zitat
Operating System
Windows 10 Pro 64-bit
CPU
Intel Pentium N3700 @ 1.60GHz 41 °C
Braswell 14nm Technology
RAM
4,00GB DDR3 @ 1599MHz (11-11-11-28)
Motherboard
LENOVO Lenovo B51-30 (CHV)
Graphics
Generic PnP Monitor (1366x768@60Hz)
Intel HD Graphics (Lenovo)
1023MB NVIDIA GeForce 920M (Lenovo) 38 °C
ForceWare version: 425.31
SLI Disabled
Storage
931GB Seagate ST1000LM014-SSHD-8GB (SATA ) 37 °C
14GB SDHC Card (SCSI )
26GB Linux File-CD Gadget USB Device (USB )
Optical Drives
PLDS DVD-RW DA8A6SH
Audio
Realtek High Definition Audio

Motherboard tab:

Motherboard
Manufacturer LENOVO
Model Lenovo B51-30 (CHV)
Version No DPK
Chipset Vendor Intel
Chipset Model Braswell Host Bridge
Chipset Revision 21
Southbridge Vendor Intel
Southbridge Model Braswell LPC Bridge
Southbridge Revision 21
BIOS
Brand LENOVO
Version C5CN35WW(V2.06)
Date 30. 9. 2016.
PCI Data
Slot PCI-E x4
Slot Type PCI-E x4
Slot Usage Available
Data lanes x4
Slot Designation J5C1
Characteristics PME, Hot Plug, SMBus
Slot Number 0
Slot PCI-E x1
Slot Type PCI-E x1
Slot Usage Available
Data lanes x1
Slot Designation J4B3
Characteristics PME, Hot Plug, SMBus
Slot Number 1
Slot PCI-E x1
Slot Type PCI-E x1
Slot Usage Available
Data lanes x1
Slot Designation J6C1
Characteristics PME, Hot Plug, SMBus
Slot Number 2
Slot PCI-E x1
Slot Type PCI-E x1
Slot Usage Available
Data lanes x1
Slot Designation J6D1
Characteristics PME, Hot Plug, SMBus
Slot Number 3

Storage tab:

Hard drives
ST1000LM014-SSHD-8GB
Manufacturer Seagate
Heads 16
Cylinders 121.601
Tracks 31.008.255
Sectors 1.953.520.065
SATA type SATA-III 6.0Gb/s
Device type Fixed
ATA Standard ACS2
Serial Number W772N4JA
Firmware Version Number LVD6
LBA Size 48-bit LBA
Power On Count 3512 times
Power On Time 454,9 days
Speed 5400 RPM
Features S.M.A.R.T., APM, NCQ
Max. Transfer Mode SATA III 6.0Gb/s
Used Transfer Mode SATA III 6.0Gb/s
Interface SATA
Capacity 931 GB
Real size 1.000.204.886.016 bytes
RAID Type None
#5215infuscomus⇗ @nijazxp

since you are installing XP via USB and you get a 7B BSOD it is likely that your USB 2.0 port connects through the USB 3.0 controller so you will need to use the USB 3.0 driver for install to work.
#5216nijazxpYes, that is correct when I see devices by connection in device manager in windows 10. They are like:

Zitat
ACPI x64-based PC => Microsoft ACPI-Compliant System => PCI Express Root Complex => USB xHCI Compliant Host Controller => USB Root Hub (USB 3.0) => USB Mass Storage Device => Disk drive (labeled 'Linux File-CD Gadget USB Device')

which is actually my android phone with mounted image via app DriveDroid.
I contacted author of Easy2Boot, and he just made some fix of not having enough memory to put xp iso into memory, and he gave me fix now, but although now bsod disappeared my laptop turns off on screen where i have choice to install, repair, quit xp setup.
I tried pressing F5 and F7 and still error appears, just does not turn off, but freezes on same screen.
Are those usb 3 drivers that are found in xp integral edition in patch folder?
I think since easy2boot puts image into memory I do not need any usb drivers, because files are in ram, not on usb?

#5217infuscomus⇗ @nijazxp

The screen should not be turning off during install - you might want to go back to the old version where this didn't happen

with ACPI patch pressing F5/F7 is no longer necessary

even though the ISO is loaded into RAM you will still need the USB 3.0 driver to avoid 7B BSOD - I'm not entirely sure why but I have confirmed this is the case through my testing.

Do you have the latest version of the parch integrator? - v2.3.4b17

If not I can PM you a link to it
#5218nijazxp⇗ @infuscomus
No, I have 2.1.3. Send me the link. What is purpose of ACPI patches? To solve 7b bsod or pc turning off at start of setup? Or to solve some other bsod? Do I need ACPI patch?
Do I need some other patches? I am 100% sure my bsod 7b is not caued by lack of drivers. I will maybe try to go back to old easy2boot because the author is still experimenting with new method, so maybe that is why xp is turning off. My laptop is produced around 2015.
First time that I hear that 7b bsod is related to usb drivers!
#5219infuscomus⇗ @nijazxp

OK, I'll PM you the link.

ACPI patch resolves A5 BSOD and enables multicore CPU support

you can disable ACPI and XP will still work, but you will only have 1 CPU core.
#5220nijazxpThanks, will try those patches and tomorrow post results here. Also will try some more combinations. Previously during signing I had always some error telling me could not contact some timestamp server, probably because I am keeping pc offline, at least cmd and other firewalled apps.

Also Fernando ⇗ said:

Zitat
The S-ATA hdd's have to be connected to one of the Intel S-ATA ports of the mainboard.
Note: Many Intel chipset mainboards have additionally to the Intel SATA ports other SATA ports, which are managed by another on-board SATA Controller (from JMicron, ASMedia or Marvell). Before you continue with your preparations, you should check, if the S-ATA cable of the HDD/SSD, where you want to get the OS and the boot sector installed, is really connected to one of the Intel ports. If it should be connected to any of the non-Intel SATA ports, you have to integrate/load the related special JMicron/ASMedia/Marvell textmode driver instead of the Intel one. Otherwise Windows Setup will not detect your S-ATA connected HDD, SSD or RAID array at all.


Does anybody know how to detect that? Do I have to disassemble laptop really? Look where exactly? Can this be seen via software? Maybe that is the culprit.

 

Page 349

#5221infuscomus⇗ @nijazxp

The patch integrator has a generic SATA driver so you wont need to look for an intel SATA driver.
#5222nijazxpI just tried windows xp integral edition with these patches under [YES] enabled:
1. [YES] Integrat Microsoft SATA/AHCI driver (Backported Win8 driver).
2. [NO]  Integrat Microsoft NVMe driver (Backported Win7 driver).
3. [NO]  Integrat Samsung NVMe driver (Backported Win7 driver).
4. [YES] Integrat Microsoft USB 3.0 xHCI driver (Backported Win8 driver).
5. [NO]  Integrat AMD/Intel USB 3.0 xHCI driver (Patched Win7 AMD driver).
6. [YES] Integrat ACPI Patch (For Intel 370/390 Chipsets and AMD Ryzen CPUs).
7. [YES] Integrat PAE 4GB RAM Patch (Use this to avoid stability issues).
8. [NO]  Integrat PAE 128GB RAM Patch (May have stability issues).
9. [NO]  Remove Windows XP SP3 SSE2 Updates (For CPUs without SSE2 support).
D. [YES] Remove DriverPacks BASE with the included Driver Packs.
K. [YES] Integrat Kernel-Mode Driver Framework 1.11 (Backported Win7 driver).
U. [YES] Integrat UAS/UASP driver (Improves USB storage device performance).
F. [YES] Fixes a PM Timer problem with the Intel CPUs beginning with Skylake.
L. [NO]  Add configuration settings for creating a Live USB Setup.

And it does not work in any case. In case of new easy2boot that developer sent me to fix not enough RAM, it powers off pc when xp displays choice to install or repair.
In case of winsetupfromusb same as above.
In case of original easy2boot it freezes before is loads at all, while still in easy2boot phase.
Could this be because of bad ACPI patch or grub bug?
Is there any other option without grub?
I will also try winpe method of easy2boot, but I think it still uses buggy grub...downloading windows 7 now to get winpe as recommended by easy2boot.
Hope authors will quickly fix grub and easy2boot for my laptop today...
#5223infuscomus⇗ @nijazxp

Those options look correct -

the author of integral edition recommends winsetupfromusb for XP installs via USB.

For ACPI Try one of the other ACPI drivers

in Integrator Files\Patches\ACPI drivers

replace acpi.sys with one of the other options available -

e.g
copy acpi.sys in  acpi 5048 - 2019.11.1 - diderius6 into
Integrator Files\Patches\ACPI drivers
when prompted to replace the file click yes

then build a new XP ISO

P.S As a last resort to try you can disable ACPI by pressing F7 but you'll lose multicore support if you choose this
#5224AddFunNow somebody needs to patch in proper support of modern nVidia cards under XP (Pascal+) and we can have some pretty amazing WinXp builds! :D

What is the last nVidia gen to support WinXp, (iCafe WinXP drivers for GTX 960?)


...
..
.
#5225infuscomus⇗ @AddFun

you can go up to highest end maxwell - 980ti/Titan X - with an INF mod
#5226AddFunIs the driver model for 1xxx/2xxx series that radically different?
#5227AddFunAlso, actual on-topic question, I swapped my working Z390 partition to a Z490 machine. Boots perfectly, but once at desktop, about 5 seconds in I get a "IRQL_NOT_LESS_OR_EQUAL (0x000000A)" BSOD.... Anyone any idea. This CPU has HT (10700k) vs CPU on Z390 (9600k), although I don't think that's it.
#5228slavainactionHi,

There is a problem with installing Generic USB 3.0 xHCI driver v1.2 via Device Manager on my PC.
The HW ID of my USB controller: VEN_8086&DEV_A12F.
Before installing driver I've installed Kernel Mode Driver Framework 1.11 (updated) which i've founded on another forum.
I can't check any errors cause my usb mouse and keyboard stop working after installing driver.

Any ideas how to fix it?
#5229infuscomus⇗ @slavainaction

you need to also have the ntoskrnl extender

in integrator Files\Patches\Miscellaneous copy ntoskrn8.sys into system32\drivers
#5230slavainaction
Zitat von ⇗ infuscomus im Beitrag ¶ #5229
@slavainaction

you need to also have the ntoskrnl extender

in integrator Files\Patches\Miscellaneous copy ntoskrn8.sys into system32\drivers


Well, the problem wasn't solved.
I've installed this update WindowsServer2003.WindowsXP-KB2864202-x86-INTL. Then from WinXP-IE_Optional_Patch_Integrator_v2.3.4b17\Integrator Files\Patches\Miscellaneous copied ntoskrn8.sys into system32\drivers. And tried to install Microsoft USB 3.0 xHCI driver v2.1 via Device Manager.
#5231diderius6⇗ @slavainaction

use

WinXP-IE_Optional_Patch_Integrator_v2.3.3b20

Dietmar
#5232slavainaction
Zitat von ⇗ diderius6 im Beitrag ¶ #5231
@slavainaction

use

WinXP-IE_Optional_Patch_Integrator_v2.3.3b20

Dietmar


Still nothing. I've tried to install:
Only driver
Driver + ntoskrn8.sys + Framework 1.11
Driver + Framework 1.11
Driver + ntoskrn8.sys

And it doesn't work.
#5233infuscomus⇗ @slavainaction

you'll need to run the patch integrator on the vanilla ISO to make a patched ISO and then use that to do a fresh install of XP
#5234diderius6⇗ @slavainaction

I installed this USB 3 driver (from WinXP-IE_Optional_Patch_Integrator_v2.3.3b20) after setup from a original german XP CD.
And it works
Dietmar
#5235slavainaction
Zitat von ⇗ infuscomus im Beitrag ¶ #5233
@slavainaction

you'll need to run the patch integrator on the vanilla ISO to make a patched ISO and then use that to do a fresh install of XP


My USB 2.0 ports connect throw the USB 3.0 Controller. I understood this when I've updated device manager and my mouse and keyboard stopped working. Also XP doesn't see my connected USB flashes. I guess that's why i've got BSOD 07b when i've tried to install XP via USB flash. If I find the correct USB 3.0 driver, I will not get the BSOD 07b, will I?(I've already found the correct AHCI driver and integrate it by nLite).

So could you write me small instruction how to use this integrator? I mean, what do I need to do for the integrator to see my clean image?

UPD: I've patched(choosed Integrat Generic USB 3.0 xHCI driver (Backported Windows 8 driver)) my clean ISO and when I try to boot installation from flash, I've got BSOD 0x00000096.
Used patch: WinXP-IE_Optional_Patch_Integrator_v2.3.3b20

UPD2: WinXP-IE_Optional_Patch_Integrator_v2.3.4b17 gives me BSOD 0xDEADBEEF.

UPD3: FIXED my problem with USB by using this driver: AMD&Intel USB 3.0 xHCI drivers from WinXP-IE_Optional_Patch_Integrator_v2.3.4b17.

 

Page 350

#5236AddFunAlright. Got a clean install. Finally got it to boot out of safe mode. Noticed a issue: stuck at 4GHz clock wise no matter what the motherboard settings. Thought this was a safe mode issue. Didnt have this on z390/9600k. Why would it be capping my clock speed st 4ghz? (benchmarks prove i am at 4ghz +/- 5%)
#5237slavainactionDoes someone have a driver for the integrated video card Intel HD Grapics 530 for XP 32bit?
HW ID: ven_8086&dev_1912

Without a driver, my monitor runs at 40Hz. That is very painful for my eyes.
#5238infuscomus⇗ @slavainaction

there is a universal 2D driver that will work, but no 3D driver at this time.
#5239slavainaction
Zitat von ⇗ infuscomus im Beitrag ¶ #5238
@slavainaction

there is a universal 2D driver that will work, but no 3D driver at this time.


Where can I find it? Please give me link in PM.
#5240genieautravail⇗ @daniel_k

About WinXPPAE:

There is a specific to USB issue.
If I try to format an USB device, the process hang and USB ports 2.0 stop to works until reboot.
Thank you to let us know if this is a weakness of the Microsoft USB driver or if it can be fixed.

Somebody on the My Digital Life forum posted about the same issue and on another one.

Have a nice day!
#5241kukonosau⇗ @diderius6
Hello. Where to find LAST VERSIONS drivers acpi, SATA AHCI, USB31, USB30 and so on for Windows XP x86 for Ryzen? Can you send me, please? Maybe, do you have another drivers for another devices?
#5242diderius6⇗ @kukonosau

Most of the new drivers for XP SP3 can be found on the webside

⇗ https://www.zone62.com

for example in

WinXP-IE Optional Patch Integrator v2.3.3b20
and the newest one
WinXP-IE Optional Patch Integrator v2.3.4b17
Look with Google for them.

And also in

⇗ https://forums.mydigitallife.net/threads...hardware.81607/

from ⇗ @daniel_k

At the moment I do not have more drivers for myself.
But in very next future I will work here on it again

Dietmar

PS: I would be interested in lan driver for i219 and also on DirectX 10, 11, 12.
⇗ @Mov AX, 0xDEAD was working on but I do not hear news about for a long time.
#5243gordo999⇗ @diderius6 ..."Look with Google for them".   The fascists at Google are blocking many legitimate sites that Google regards as dangerous sites. I had to use the dogpile search engine to find the integrator. So far I have only found the v2.3.3b14 version on dogpile. Found it on a Russian site and you have to look carefully to find the link.

ps. just found it on dogpile using "WinXP-IE Optional Patch Integrator v2.3.3b17.zip" ...without quotes.

BTW...thanks for your outer space version of ACPI. Still using it on XP.
#5244OutbreakerThe Betas can now be ignored because the final "⇗ Optional Patch Integrator" version is out, bundled with the WinXP-IE but works also on every other WinXP when renaming the ISO file.
#5245Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #5242

PS: I would be interested in lan driver for i219 and also on DirectX 10, 11, 12.
@Mov AX, 0xDEAD was working on but I do not hear news about for a long time.


Hi diderius6,
"Vista driver model" for WinXP is hard puzzle, dont except much in quick time )
#5246kukonosau⇗ @diderius6
Hello. Thanks for yesterday post. But I don't know how to integrate USB 3.0 or USB 3.1 drivers for Windows XP x86. How to install Windows XP x86 on Ryzen without PS/2 mouse and keyboard? Nlite isn't help me. Dosnet.inf and txtsetup.sif isn't help me also. USB drivers wasn't detected in install time. Maybe, use WinXP Patch Integrator? How use him?
#5247diderius6⇗ @kukonosau

Take a look at the last post here from ⇗ @Outbreaker #5244

Dietmar
#5248kukonosau⇗ @diderius6
Thanks. But I don't understand how to use Integrator. Cannot find archive...
#5249diderius6⇗ @kukonosau

Rename your xp.iso to

Windows XP Professional SP3 x86 - Integral Edition 2020.9.9 (Vanilla).iso

Dietmar
#5250kukonosau⇗ @diderius6
Thanks! So, Integrator nothing add except drivers? Unnecessary programs will not? Drivers only?

 

Page 351

#5251kukonosau⇗ @diderius6
So, drivers USB modify Win8 doesn't fit. How to integrate AMD USB 3.1 WHQL? Where are download it? I forgot page.
#5252slavainactionI have a problem with shutdown and reboot, sometimes they work good, sometimes I press shutdown/reboot, then I have a screen "Windows is shutting down" and system freezes.
The problem was after modified system with both integrators WinXP-IE_Optional_Patch_Integrator_v2.3.4b17 and Windows XP Professional SP3 x86 - Integral Edition 2020.9.9
I just choose ACPI patch and AMD/Intel USB 3.0 xHCI driver, nothing else.
#5253gordo999
Zitat von ⇗ kukonosau im Beitrag ¶ #5246
Nlite isn't help me.
⇗ @kukonosau ...nlite must be XP version and must be run on an XP machine. XP on VM will work.
#5254kukonosau⇗ @gordo999
Nlite integrated successfully, but USB 3.1 is not detected in installation time. How to add USB 3.1 to text mode? For example, SATA AHCI added successfully because has file txtsetup.oem. But USB 3.1 doesn't working.
#5255infuscomus⇗ @kukonosau

you should use the integrator to integrate the USB 3 drivers correctly

if the integrator is not outputting a customized ISO then make sure the folder path is short so the .cmd file can do what it needs to do

e.g
C:\XPIE\
#5256kukonosau⇗ @infuscomus
Integration was successfully, but USB drivers doesn't working in installation time. But ACPI and SATA AHCI working correctly!!!
#5257infuscomus⇗ @kukonosau

try the alternative AMD/Intel USB 3.0 xHCI driver
#5258kukonosau⇗ @infuscomus
Thanks. I will checking. But how to integrate any drivers to text mode, not only SATA AHCI? For example, I want detect graphics card in installation time and integrate driver 368.81. This is opportunity? But all drivers working after installation Windows XP only, on desktop. AMD USB 3.1 WHQL working only desktop, after install only, but I want to working in installation time when use partition.
#5259herotossive been trying to install win xp on my 2400g+ab350m ds3h+ati2400pro without any success, first installation works then after the xp logo it shows this bsod, no matter wich acpi i try it show always 0xA5.. ⇗ https://i.imgur.com/Qy5OAww.jpg
tried both integral and original,,

#5260diderius6⇗ @herotoss

I think, the acpi.sys is restored back to its original.
So, you have to copy by hand the acpi.sys from outerspace ) (last version)
into windows\system32\drivers bei hand
Dietmar
#5261herotossive already tried that.. no luck

#5262Mov AX, 0xDEAD
Zitat von ⇗ herotoss im Beitrag ¶ #5259
no matter wich acpi i try it show always 0xA5.. ⇗ https://i.imgur.com/Qy5OAww.jpg

Hi All
error is 0xC0000034, probably it is ArbCrackPRT again...

better to have crashdump, but if bsod occur in SETUP GUI phase, i think it is hard to get dump file
another way is to change every 0xC0000034 to other increment value to investigate which proc was failed
 
0xC0000034 -> 0xC0000134
0xC0000034 -> 0xC0000135
0xC0000034 -> 0xC0000136
...
26 times :)
...
0xC0000034 -> 0xC000014E
#5263diderius6⇗ @Mov AX, 0xDEAD

Can you do it for us on the acpi.sys from outerspace ),
just rename all the places, where exact this BSOD with 0xC0000034
happens?
So, step by step acpi.sys from outerspace ) will be perfect
Dietmar
#5264usa1ecDetailed instructions for installing Windows XP on modern PCs in Russian.

Методика установки Windows XP на современные ПК не помещается в форумный пост, рекомендую скачать TXT файл - в нем всегда актуальная и обновленная информация.

ТХТ инструкция от 12.09.2020 года (58 кБ) - ⇗ https://www.upload.ee/files/12265364/Win...2020_9.txt.html
#5265infuscomus⇗ @Mov AX, 0xDEAD

I made the changes you suggested - only went up to 14D though so I might have missed one.



infuscomus has attached files to this post

 

Page 352

#5266herotoss⇗ @infuscomus
using acpi_test_14d.zip the error changed to 7B,, ⇗ https://i.imgur.com/zBy0jwT.jpg

#5267infuscomus⇗ @herotoss

strange - you should still be getting the A5 BSOD you got before, only the 0xC0000034 part should change to make it easier to pinpoint the ACPI error

7B BSOD is a storage related issue so that error could be AHCI, NVMe or USB 3.0 driver related (although I integrated those drivers in the ISO I sent you so I'm not sure why you are getting that BSOD)
#5268herotoss⇗ @infuscomus
hahahh i know trust me i have tried many many times installing xp with different drivers and none of them worked.. im getting crazy here.

#5269gordo999
Zitat von ⇗ herotoss im Beitrag ¶ #5268
...i have tried many many times installing xp with different drivers and none of them worked.. im getting crazy here.
⇗ @herotoss ...might not be helpful but I approached it initially from a different direction. I had a stock XP already installed on its own disk from an older system with all the required drivers for nvidia, creative, etc. On my newer B360M I also have PS/2 ports for mouse/keyboard.

When I fired the XP disk up on the B360M it immediately failed with an A5 ACPI error. That was before diderius6 issued his ACPI from outer space. I simply dropped the current modded ACPI.sys in the windir\sys32\driver folder and that fixed the A5 error. Then I got a 7B error which was related to the SATA driver. You said you checked the manual acpi.sys installation. My system did not use acpi.sys, maybe yours does. Did you check that the system did not replace it? If it does, first go into the folder from which the system gets its originals and replace the original with the new acpi.sys. Then replace it in windir\sys32\drivers. You may have to do that offline from another system. I have XP, W7 and W10 all running on my system on separate drives.

About that time, I discovered the XP SP4 unofficial update from Harkus and I applied it. He uses one of the SATA drivers from winraid which you can find when you download the package, or on this site. That got me right to the desktop using a PS/2 mouse/keyboard. Things were surprisingly stable at that point although I had to mess with new nvidia drivers and creative drivers. At least I had it running and could fiddle with a working system.

I bought a USB 3 add-on card and found some VIA drivers on a Czech site, That got me going with USB and I could use my mouse/keyboard via USB. Then ⇗ @daniel_k came out with his AMD drivers and I applied those. Suddenly I had all my mobo USB ports plus my VIA ports. Have not tried the next generation based on win8 drivers but as I said, I have a working system to use when I do.

Might add that nlite has to be an XP version and must be run on an XP system. There is a check box on one of the pages that needs to be checked in order to get the repair install feature going. Otherwise, you end up with a parallel installation of XP if you select to carry on while leaving your current system alone. Also, you cannot access the repair prompt from the installation disk unless it is checked.
#5270infuscomus⇗ @herotoss

I tried to load my acpi_test_14d in textmode setup and got "acpi.sys is corrupted"

so it seems I broke it - that explains the 7B BSOD instead of A5 BSOD because the acpi.sys driver never successfully loaded.
#5271Andalu⇗ @herotoss
this is not the only case where the XP installation is more problematic than expected (or where it cannot even be installed at all). ¶ Here I reported a similar experience. Clearly, mine is not an encouragement to downgrade the bios but a failed XP installation can also depend from that because there is not yet a perfect acpi.sys (as well as hal.dll) suitable for every motherboard, system, situation.
Anyway, I hope we can find the right suggestion to solve the issues.
#5272diderius6⇗ @infuscomus

For to change the BSOD numbers,
you need to check careful, only which 0xC0000034 belongs to

0x000000A5 (0x00000003, xxx, 0xC0000034, yyy) (special acpi BSOD).

And you have to rebuild each identic matching number also at the place, to which the special Acpi-BSOD 03 jumps,
so that you can identify the exact place, where this error happens. And some acpi errors are only listed (and happen) in the source code of ntoskrnl.exe,
for example BSOD 0x7B
Dietmar

PS: Here in the forum I listed long time ago all the 0xA5,(0x03,..) Bsods.
#5273herotoss⇗ @Andalu
yea i was thinking the same that could be my mobo or the bios that cause xp to fail becouse i have it updated to the latest version...

#5274kukonosau⇗ @diderius6
Hello. Where is drivers SATA AHCI for XP x64 for Ryzen? I lost Skullteria post.
#5275diderius6⇗ @kukonosau

⇗ https://ufile.io/ohtuy2p1

Dietmar
#5276infuscomus⇗ @diderius6

did you mean don't change every instance of 0xC0000034 in acpi.sys?
#5277diderius6⇗ @infuscomus

Yes:))

Have a nice day
Dietmar
#5278herotoss⇗ @diderius6 ⇗ @infuscomus
ok guys dont waste more time on it it is my hard drive that is broken, i tried installing win10/win8 and it says inaccessible boot device (7B) r.i.p.,,,, im gonna buy a new one.. im very srry

#5279infuscomus⇗ @herotoss

just buy a new drive, the rest of your system should be OK and work just fine.

I'd like to get this ACPI BSOD solved just in case someone else encounters this problem.
#5280Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #5265
I made the changes you suggested - only went up to 14D though so I might have missed one.

Hi infuscomus
Import table is reconstructed => fully damaged, i mean .rdata section

 

Page 353

#5281Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #5272

For to change the BSOD numbers, you need to check careful, only which 0xC0000034 belongs to
0x000000A5 (0x00000003, xxx, 0xC0000034, yyy) (special acpi BSOD).

And you have to rebuild each identic matching number also at the place, to which the special Acpi-BSOD 03 jumps,
so that you can identify the exact place, where this error happens.

Hi diderius6,
exact place where 0xA5,(0x03,..) generated cannot be determinated because subcode 0x03 generated only in one place - ACPIBuildCompleteMustSucceed
what is ACPIBuildCompleteMustSucceed ? i think this is generic CallBack/Filter/Assert handling function.
One of subcalls generate return value as C0000034 (error value), then after many "RETs" cpu will switch to ACPIBuildCompleteMustSucceed at end
#5282infuscomus⇗ @Mov AX, 0xDEAD ⇗ @diderius6

It would be beneficial if we could get Vista's ACPI driver to work for XP (or at least Vista beta 5365) we could solve these left over compatibility issues.

It would be very difficult to do this however - I tried already to do this and did not succeed - kept getting a 7E BSOD in ntoskrn8.sys
#5283kukonosau⇗ @diderius6
Hello. Thanks for your working, create drivers for XP! This is great work! But I have bad news: NFS Undercover has lagging for me on Windows XP SP3. Other games very well working! My configuration: processor Ryzen 5 2600, graphics card MSI NVIDIA GeForce GTX 960, 16 Gb RAM (without PAE on WinXP SP3 x86), motherboard ASUS AM4 B350 PRIME B350M-K. NFS Undercover has lagging on WinXP SP3 x86, unfortunately, but hasn't lagging on Windows 10. Why? May be, I installed XP incorrectly? Or not enough drivers? I frustrated because XP is better operating system. I must be deleted her and install Windows 10 again. I can't have two operating system together(((
#5284gordo999
Zitat von ⇗ kukonosau im Beitrag ¶ #5283
NFS Undercover has lagging for me on Windows XP SP3.
⇗ @kukonosau ...check the hall.dll and intelppm files. I reported on this problem here but diderius6 had already reported on it.

See post #4271:


After installing the correct hal.dll and intelppm.sys my games worked normally and my Firefox browser started working as well.
#5285kukonosau⇗ @gordo999
Thanks for answers. But where is posts with correct hal.dll? It was many by diderius6. Intelppm.sys is driver for all motherboards? I have motherboard on AMD chipset. I must copy hal.dll into System32 folder? Intelppm.sys into system32/drivers?
#5286gordo999
Zitat von ⇗ kukonosau im Beitrag ¶ #5285
where is posts with correct hal.dll?
⇗ @kukonosau ...sorry I can't remember where the drivers are located. There is a discussion here:

⇗ https://www.win-raid.com/t6268f45-What-exactly-is-the-hal-timer-problem.html

I don't know if you are working with the older drivers or the newer W8-based drivers. I don't know if this applies to them.
#5287XPLives⇗ @Pill Monster
Zitat von ⇗ Pill Monster im Beitrag ¶ #4373
Zitat von ⇗ XPLives im Beitrag ¶ #4337
⇗ @Pill Monster
2000 Advanced Server already had > 4GB memory support.  And standard XP Pro 32-Bit could utilize above the 4GB range for a Ramdrive so it wasn't completely neutered.
Possibly you misunderstood me?
With [quote]"XP Pro 32-bit could utilize above the 4GB range"
 - 4GB range of what?  


   
Obviously it means what it means.  Anything ABOVE the 4GB memory limit.  If you had 32.0GB installed that would mean between 4.0GB -> 32.0GB.

Zitat von ⇗ Pill Monster im Beitrag ¶ #4373

Licensing caps aside, the maximum amount of RAM supported by XP is exactly equal to the maximum amount of RAM supported by the CPU, less hardware reserved.  
XP Pro x86 officially supports 64GB of RAM.


   
I have already tested Server 2003 and it cannot see above 64.0GB.  But it does not mean it would not be possible for someone to find a way to extend beyond this.

Zitat von ⇗ Pill Monster im Beitrag ¶ #4373

RAM drives utilizing "hidden memory"  I label snake oil because there are no hidden addresses that can be seen by RAM disk software but not the CPU.  
RAM disks reside in something called a section object, the OS sees part of this section object - the WS partition. The CPU sees all of it and maps data in and out of the process view using pointers.

XP natively supports 36bit addressing using pae (Page Address Extension). Pae adds 4 bits to an address  - two Page Table Directories and a PTD pointer.
Until SP2 enabled was the default boot mode. Hence why XP Pro x86 is not called XP Pro 32-bit.


   
It's called XP Professional.
⇗ http://web.archive.org/web/2020092506164...z~g/s-l1600.jpg

The 32-Bit was tagged on because it's better for laymans to differentiate between the two.  The x86 is derived from the 8086 processor.  However seeing the x86/x64 next to each other some newbies may think the x86 is superior given the larger number.  I think you've swallowed way too many pills and it's time to cut back.

I disagree with Ramdrives as being snake oil.  They are quite useful in many applications compared to using XP without one.  You may not like how it was employed but without this ability it makes XP on modern hardware under utilized.  You should also blame Microsoft from releasing XP Professional as Server 2003 in full functionality.  That would have made everything better from the start.

Zitat von ⇗ Pill Monster im Beitrag ¶ #4373

Zitat von ⇗ XPLives im Beitrag ¶ #4337
But what is the model number of this supposed $2500 36-Bit Xeon?
 
I guess you had to be there.



   
Not really.  I was there and even there when the 8088 CPUs and the Apple ][s were selling.  You neglected to again mention the "model number" of the Xeon.  You only provided the link to the Pentium III specs with that article.  Often times you will have the exact model number on the CPU itself or in this case the protective plastic outer casing would have it shown.

Even this link beats your by 3 months.
⇗ https://www.cnet.com/news/intel-releases...iii-based-xeon/

The closest link I could find on the possible CPU specs:
⇗ https://ark.intel.com/content/www/us/en/...00-mhz-fsb.html

Shows it was nothing special if this IS the CPU you are referencing.  Single Core, Single Thread.  Most of the time they include the MSRP.  Even if this CPU could tap into the above 4GB memory limit most motherboards at that time probably could not achieve 32.0GB like on Ivy Bridge would be my guess without even looking at all the Xeon P3 server motherboards you could find.

The only interesting tidbit is that it was 36-Bit and nothing more which is why I was asking about the exact model number, not the specs description.

Also you were non specific in the first statement referring to a Xeon processor without specifying what chipset generation.  Had you listed it as the P3 Xeon instead of just $2500 36-Bit Xeon it would have narrowed down to specificity which is why I asked for the "model" number of the CPU.  As for it being expensive this is one reason most people never used this stuff except companies who can afford it.  The best consumer P3 I obtained was the 1 GHz Slot 1 which at the time was the king hitting that first Ghz Barrier.  However, it wasn't until the P4 to break the 3GHZ barrier.   After that most CPUs began to focus more on cores instead of clock speed dominance.  And I think we should all be glad because I was getting sick of the jet turbine engine CPU cooler fan noise of those days.

Also as interesting as P3 Xeons are, they weren't as interesting as ultralite laptops with the Pentium M for the lowest wattage possible.   One reason why the P3s were better than P4s when it came to running them fanless.

The only interesting desktop Xeons to speak of that I've encountered are the Haswell ones that had the 13 Watts.  After that generation nothing since has achieved such low levels and most enthusiast motherboards have excluded Xeons from being installed which is a pity as they are exceptionally efficient CPUs.  Now Xeons are forced with iGPUs which I frown upon.  I'd rather have more cores inside for that space.
#5288XPLives⇗ @canonkong
Zitat von ⇗ canonkong im Beitrag ¶ #4793
After testing for days, I am sure it is a very stable USB driver. USB card from ASMedia, VIA, NEC, TI, Etron chips all on the same mainboard together.



   
Very nice!  Almost like me during SkyLake days.  Bought all the USB cards for XP testing...  Only ones missing are the legacy PCI ones. ;)

P.S. Why are most of yours missing rear metal brackets?
#5289XPLives⇗ @canonkong

Zitat von ⇗ canonkong im Beitrag ¶ #4801
@infuscomus
It is ASRock H110 PRO BTC+ mainboard, it has 13 PCI-E slots, cost $40 USD on taobao.

What!? 13 PCIe slots?
This is not ATX, perhaps EATX?  Monster motherboard.  What computer chassis will you use for it?
#5290diderius6XP SP1 and win2003 nice

nt5src.7z   3.149.677.191 bytes

SHA256
2bb3609fa4c2b2641f43aef751a84db5820b64748b7d2d0891d1cb1e55268ce9
#5291schreiberstein⇗ @diderius6 ... This. Is. So. Beautiful. ... Unbelievable. The crown jewels... after all those years.
#5292diderius6⇗ @schreiberstein

yesss, for example usbstor, usbhub, usbehci, acpi, seems really all
Dietmar

PS: Soon I have holidays and then fun starts..
12 years ago I build XP SP1 below 10 MB.
This I try again but now from scratch.
#5293ruthanCheck this out some XP source leak:
⇗ https://www.tomshardware.com/news/window...posted-to-4chan
#5294diderius6
#5295RayeRAs already posted, WinXP SP1 and Win2003 server sources has leaked. Torrent was still alive today, got the nt5src.7z. The unpacked size is 6.8GB, 277863 files (XP) and 6GB, 248740 files (2k6), so it could be complete. Here I found a screen that somebody seems compiled it (may be fake, who knows): ⇗ http://is2.4chan.org/g/1600905929934.png
So now it should be possible extend functionality of ACPI.SYS much more comfortable, maybe using ACPICA codes. But unfortunatelly the sources are SP1 only and probably most of users prefers at least SP2 (I use SP3) - wouldn't be problem for acpi.sys to load SP1 version by latest post-SP3 kernel? I hope not mcuh. But in case of implementing NT API and kernel extensions it would be worse to step some 10 years back...

 

Page 354

#5296gordo999
Zitat von ⇗ RayeR im Beitrag ¶ #5295
But unfortunatelly the sources are SP1 only and probably most of users prefers at least SP2 (I use SP3) - wouldn't be problem for acpi.sys to load SP1 version by latest post-SP3 kernel?
⇗ @RayeR ...I imagine that you could compile the SP1 version and compare the code to the SP3 binary in IDA to see how the code has changed. Some may have changed a lot while others not much. Also, you could try the SP1 version with SP3 to see what errors you get.
#5297diderius6Hi, most I can build, but for example
winlogon.exe and all the ntoskrnl.exe I cant build
Dietmar
#5298infuscomus⇗ @diderius6

someone managed to build it on 4chan

is2.4chan.org/g/1600905929934.png
#5299diderius6⇗ @infuscomus

razzle offline
build -cZ

gives also all ntoskrnl.exe but still no winlogon.exe and so others, also no pinball.exe and some errors.
You need about 100 Gbyte(!) free space and 6 hours for compile
Dietmar
#5300diderius6Next try with

razzle free offline
build -cZP

Dietmar

PS: May be, that winlogon.exe is a composition of other before builded files. I saw this in Win95.
#5301diderius6Only 9 errors,
but still no winlogon.exe and no pinball.exe :)).

The following is the content of the build error log
Dietmar

2>NMAKE : fatal error U1077: 'cl16' : return code '0x2'
1>NMAKE : fatal error U1077: 'cl16' : return code '0x2'
4>NMAKE : fatal error U1077: 'cl16' : return code '0x2'
2>NMAKE : fatal error U1077: 'cl16' : return code '0x2'
7>NMAKE : fatal error U1077: 'cl16' : return code '0x2'
4>net\tapi\thunk\rc : error RW1024: Couldn't open OBJ\I386\TAPI.RES
4>net\tapi\thunk\rc : error RW1024: Couldn't open OBJ\I386\TAPI.RES
3>net\tapi\thunk\rc : error RW1024: Couldn't open OBJ\I386\TAPI.RES
3>net\tapi\thunk\rc : error RW1024: Couldn't open OBJ\I386\TAPI.RES

PS: Msgina.dll is there.

And from build log:
BUILD: winlogon found in ds\security\gina\dirs., is not a subdirectory of e:\source\xpsp1\nt\ds\security\gina

EDIT: There is no folder winlogon in Source\XPSP1\NT\ds\security\gina
as it should be. This means, no winlogon source code at all, the same for pinball.
You can use sunlogon or minlogon but it has not the same power as winlogon.exe.
#5302usa1ecWhere can I download the source codes of Windows XP?
Please, give me a direct URL.
#5303diderius6From English Wikipedia about winlogon.exe in XP:

"In September 2020 the source code for Windows XP was leaked online by an unknown party without Winlogon's source code, rendering the leaked operating system uncompilable and incomplete."

Dietmar
#5304skullteriaYou need compile "published" folder first. You can find it on NT\base\published

And code of winlogon is missing!
#5305infuscomus⇗ @diderius6

does win2k3 have its winlogon source code?
#5306diderius6⇗ @infuscomus

No, same as for XP SP1, no winlogon source code in leaked win2003
Dietmar
#5307infuscomus⇗ @diderius6

anything in the windows 2000 source or nt4 source code?

edit:

Someone said this on betaarchive

   Do you know how to compile the whole code?

Start Razzle, go to /NT, then run bz. It will compile the whole code which will take a long time.

I'm not sure if this will help though
#5308infuscomus⇗ @daniel_k ⇗ @diderius6 ⇗ @Mov AX, 0xDEAD

I've set up a Threadripper system and attempted to install XP onto it.

Unfortunately it freezes on "Setup is Starting Windows" and never throws a BSOD regardless of which HAL I choose

this behavior happens even on a vanilla en_windows_xp_professional_with_service_pack_3_x86_cd_x14-80428.iso
so it isn't any modded driver causing this.

any suggestions? If not I'll give up for now
#5309diderius6⇗ @infuscomus

About the NT4 and win2000 code I cant say anything, because I dont have.
Interesting is, that the acpi.sys driver from XP SP1 and XP SP3 shows exact the same behavior.
If this is true for other files also, Microsoft will have a really big problem with newer OS.

Have you tried the Threadripper system with a working XP from another compi?
Please tell the exact BSOD in this case so that we can see, what is going wrong
Dietmar

PS: You can make a try with F8 during setup from XP. This is a crazy possiblility and works sometimes.
#5310infuscomus⇗ @diderius6

I have not tried XP from another PC, I'll have to try that.

Unfortunately I haven't got a BSOD, so I'm not sure exactly what the problem is.

F8 or F7? (I'm assuming you mean textmode setup?)

 

Page 355

#5311diderius6⇗ @infuscomus

I mean F8, Safe Mode. The crazy but good XP Setup gives you the chance,
to set up an XP with only the most needed drivers
Dietmar
#5312gordo999
Zitat von ⇗ infuscomus im Beitrag ¶ #5310
Unfortunately I haven't got a BSOD
⇗ @infuscomus  ...there is a way to force a BSOD if Windows freezes. Don't have the info on how to do it right before me but I may be able to find it.
#5313madnikosHi everyone,
I'm having problem to instal win xp to my system.
Firstly with the latest Integral edition and the Patch Integrator with acpi 5048 - 2019.11.1 - diderius6(I've tried others too), Microsoft SATA driver v2.0, Microsoft USB 3.0 xHCI driver v2.1, PAE 4GB RAM Unlock I'm getting BSOD with the 7B code.
So then I dont integrate the microsoft sata driver and I integrate the latest intel ahci(v11.2.0.1006 mod by Fernando) and then I'm getting this BSOD 0x0000000A (0x00000000, 0x00000002, 0x00000000, 0x80841D3F).
My specs are: asus Pro WS C246-ACE, i9 9900KS, nvidia titan x maxwell.
I' ve tried the original iso as well with sp3 and integrate the drivers the Patch Integrator with the same BSOD.
Any ideas?
#5314diderius6⇗ https://github.com/window-chicken/windows.xp.whistler

Dietmar

PS: With pinball and winlogon
#5315skullteria
Zitat von ⇗ diderius6 im Beitrag ¶ #5314

⇗ https://github.com/window-chicken/windows.xp.whistler

Dietmar

PS: With pinball and winlogon


Well, this code is from Windows NT 3.5, the leaked version some weeks ago. The winlogon not work on XP or 2003.
#5316RayeRIt seems that someone on 4chan rebuild Win2k3 sucessfully and boot it in VMware
⇗ https://boards.4channel.org/g/thread/77963845#p77965472
But there's mention about missing winlogon.exe and other files:


So Im missing this files in postbuild
D:\svcpack.x86fre\usa\prerebase\termdd.sys
D:\svcpack.x86fre\usa\prerebase\tdasync.sys
D:\svcpack.x86fre\usa\prerebase\tdipx.sys
D:\svcpack.x86fre\usa\prerebase\tdnetb.sys
D:\svcpack.x86fre\usa\prerebase\tdpipe.sys
D:\svcpack.x86fre\usa\prerebase\tdspx.sys
D:\svcpack.x86fre\usa\prerebase\tdtcp.sys
D:\svcpack.x86fre\usa\prerebase\tsddd.dll
D:\svcpack.x86fre\usa\prerebase\rdpdd.dll
D:\svcpack.x86fre\usa\prerebase\rdpwd.sys
D:\svcpack.x86fre\usa\prerebase\rdpwsx.dll
D:\svcpack.x86fre\usa\prerebase\winlogon.exe
D:\svcpack.x86fre\usa\prerebase\licdll.dll
D:\svcpack.x86fre\usa\prerebase\licwmi.dll
D:\svcpack.x86fre\usa\prerebase\sym\dll\licdll.pdb
D:\svcpack.x86fre\usa\prerebase\sym\dll\licwmi.pdb
D:\svcpack.x86fre\usa\prerebase\sym\exe\winlogon.pdb
Now Im trying to just copy them from my XP instalation, I realised not all are in my system32 but they are all in the ISO. Now the ISO haves the file with a _ at the end like tdasync.sy_. Do you you think renaming and copying would work?


I can imagine that winlogon and RDP could have some higher safety level in MS due a lot of encryption code so the leaker might not have access to them. But those files need not to be modified for new hardware so could be taken from install iso. How about the rebuilt acpi.sys - is it OK?
#5317madnikosDoes anyone know why the Microsoft SATA driver dowsnt work or what the problem and im getting bsod?
#5318genieautravailA tutorial for compiling the leaked source code:

⇗ https://gist.github.com/nk2IsHere/f90285...e772631f64fabb9
#5319gordo999
Zitat von ⇗ madnikos im Beitrag ¶ #5317
Does anyone know why the Microsoft SATA driver dowsnt work or what the problem and im getting bsod?
⇗ @madnikos  ....are you using the SATA driver signed by Fernando or the original SATA driver from Micro$oft? Or is this the newer drivers based on W8? What's the error number on the BSOD? Need more detailed information...which system...mobo, chipset, etc. . BTW..I presume you are trying to get XP to run.
#5320XPLives⇗ @RayeR

Zitat von ⇗ RayeR im Beitrag ¶ #5295
As already posted, WinXP SP1 and Win2003 server sources has leaked. Torrent was still alive today, got the nt5src.7z. The unpacked size is 6.8GB, 277863 files (XP) and 6GB, 248740 files (2k6), so it could be complete. Here I found a screen that somebody seems compiled it (may be fake, who knows): ⇗ http://is2.4chan.org/g/1600905929934.png
So now it should be possible extend functionality of ACPI.SYS much more comfortable, maybe using ACPICA codes. But unfortunatelly the sources are SP1 only and probably most of users prefers at least SP2 (I use SP3) - wouldn't be problem for acpi.sys to load SP1 version by latest post-SP3 kernel? I hope not mcuh. But in case of implementing NT API and kernel extensions it would be worse to step some 10 years back...

Rayer it is good to see you here.

Actually it is unnecessary to worry about this.  As long as use the source code for Windows 2000 Server to create the updated ACPI.sys file it can work with XP SP0-SP3, 2009 POS, and Server 2003.  I tested this before.

As for SP1 source it won't be an issue for SP2 or SP3 to work with it.   What you cannot do is use SP3 source to work with Windows 2000 SP0-SP4, or XP SP0-SP2.

It is imperative to use Windows 2000 source code to create the updated ACPI files so it can be used with all NT5.X versions from Windows 2000->2009 POS.
#5321XPLives⇗ @gordo999
⇗ @infuscomus

Zitat von ⇗ gordo999 im Beitrag ¶ #5312
Zitat von ⇗ infuscomus im Beitrag ¶ #5310
Unfortunately I haven't got a BSOD
⇗ @infuscomus  ...there is a way to force a BSOD if Windows freezes. Don't have the info on how to do it right before me but I may be able to find it.


No, once Windows completely freezes you can't do anything.  If you're lucky Windows can detect the issue and BSOD.  But when Windows freezes before it can BSOD then the keyboard and mouse are unresponsive as well.  Only a reset will get you out of it.

The only way to isolate what is causing the Windows Freeze is troubleshooting.  Figure out what you were doing right before the Windows freezes.  Repeat the same thing multiple times to see if happens again.  Then remove this element and let the computer idle and see if it also freezes up.  If it does it's a hardware issue.  Usually a Windows freezes up when tweaking the system like I have in the past.  Trying to squeeze the least amount of voltage required to run at a particular clock speed.  Other freezes could be driver related or a card that is installed causing it.  So if you have tons of expansion cards you are better off removing all of them.  Use just the iGPU of your CPU to get the video output and see if the system freezes up again.  You might even try a clean reinstallation from scratch as a final test to make sure it's not a driver or registry issue.
#5322infuscomus⇗ @diderius6 ⇗ @XPLives

So I made an image of a known working XP system (with ACPI, AHCI and USB3 patches)
I applied that image to a separate drive in my threadripper system and...

black screen, not even an XP logo, just hangs there

Similar problem in XP textmode setup - hangs at "Setup is Starting Windows"
#5323XPLives⇗ @ruthan

Zitat von ⇗ ruthan im Beitrag ¶ #5293
Check this out some XP source leak:
⇗ https://www.tomshardware.com/news/window...posted-to-4chan

Yes, but we still need Windows 98SE and ME source code leak.

For Windows 2000 it might be possible to add 16.0TB -> 64.0TB MBR drives now instead of 2.0TB.

I need someone with some storage driver programming and ROM ripping experience to help make this happen.

Also add native NTFS into Windows 9X->ME for 64.0TB glorious storage compatibility with NT5.X.

Then multicore and 64.0GB memory support in 9X->ME.  Octa SLI Emulated Voodoo 5 6000 1MB card in virtual memory.
#5324XPLives⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #5322
@diderius6 @XPLives

So I made an image of a known working XP system (with ACPI, AHCI and USB3 patches)
I applied that image to a separate drive in my threadripper system and...

black screen, not even an XP logo, just hangs there

Similar problem in XP textmode setup - hangs at "Setup is Starting Windows"

Always start from scratch rather than a previously installed XP image.  Even though XP can usually migrate to a new system it's not clean and sometimes it will hang detecting devices or can't pinpoint the correct resources.  Also you want to run in NO ACPI mode for this to work.

Use a clean installation and use F7 NO ACPI method to install from scratch on the Threadripper.  It should install with one core and work properly.  Do not add any modified drivers to the installation.  If necessary just use a USB 2.0 PCIe card just to get the USB mouse support and hook the PS/2 keyboard to the rear for input.  Remove all other expansion cards.  Disable in BIOS any onboard sound, LAN, serial com port, parallel port, and other onboard devices which can use up IRQ resources.  Also disable onboard USB 3.0 if possible.  For SATA Controller if it has two brands try and disable the other SATA controller brand also to save more resources.  In the BIOS one more tip look for CPU Cores setting.  Change it to 1.  Some BIOS may not boot on 1 Core and hang so set to 2 Cores.  This happened on my Z370.

If you get through XP setup on AM4 like I did then this proves Threadripper can also work in NO ACPI mode.  Then a proper BIOS mod might allow ACPI installation and multicore with Threadripper.
#5325infuscomus⇗ @XPLives

Even after pressing F7 it still froze on "Setup is Starting Windows"

I've also tried F5 and tried all the different HAL options - still froze on "Setup is Starting Windows"

 

Page 356

#5326XPLives⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #5325
@XPLives

Even after pressing F7 it still froze on "Setup is Starting Windows"

I've also tried F5 and tried all the different HAL options - still froze on "Setup is Starting Windows"


Probably need to brute force it and use DOS to install it.  Any chance you can record a video of the display output from installing from a clean XP ISO?  No modified drivers.  The only driver you will need now that I thought about it some more is the AHCI SATA driver for the AMD SATA controller only.  No other drivers should be added to the Clean XP ISO. Also disable all those onboard devices I mentioned and set to 1 Core in the BIOS.

Which ThreadRipper did you get and what motherboard brand and model?

Did you try to locate the oldest BIOS and flash to v1.0?

Make sure no other internal expansion cards.  Remove USB PCIe cards also.  Use just PS/2 keyboard only.

Ahh just remembered some other things.  Downclock the clock speed to 800 MHz and disable Turbo.  Disable all sleep modes.

Use HDMI video output on motherboard if it has built in iGPU.  If no iGPU then use a GT 710 PCIe graphics card.

I'd give it a shot if you shipped it.  But in my opinion only Intel Z370 seems to be the best motherboard that I've tested so far for XP without BIOS modding or ACPI drivers modding to work in multicore.  Z390 should work the same as Z370 as well as I can't see any major chipset differences.  Z470/Z490 would probably be the same with more CPU cores support.  Once they get to 10nm or Sapphire Rapids is where the unknown will be.  DDR5 and PCIe 5.0 will be included and whether the BIOS will still be present or removed is the question.
#5327diderius6⇗ @infuscomus

I have seen this behavior from XP Setup,
when the Bios of the compi has problems with the geometry layout of the harddisk.

I overcome this with using RMPREPUSB vers 2.1.739.

I put the harddisk in an USB box and let the harddisk been formatted with only this tool.
After during XP Setup I choose "Leave HD as it is" and the blackscreen is gone always (!)
Dietmar
#5328infuscomus⇗ @diderius6

I do have a 4TB SATA HDD attached so this could be the problem - I don't want to move it to a USB enclosure at the moment.

If I change the partition table on the 4TB from MBR to GPT and format to ext4 could doing that solve this?
#5329diderius6⇗ @infuscomus

Most SATA controllers can not handle under pur XP a 4 TB harddisk.
For to understand what is going on, disconnect everything and use a max. 2 TB harddisk,
formatted with RMPREPUSB vers 2.1.739
Dietmar
#5330madnikos⇗ @gordo999 if you look my previous post I gave all the information about my system and what drivers I 've tried but now I have a new update, I managed to finish the first step of xp instalation and then after the restart when it is setting up devices I' m getting again BSOD 0x0000000A. I' m using the win 8 port for usb 3 and sata but i' ve tried the intel achi as well with the same resault. I cant get pass the installing devices part of the instalation without bsod
#5331infuscomus⇗ @diderius6

OK, I disconnected all of my SATA drives this time (nothing at all connected) and tried again - still froze at "Setup is Starting Windows"


I am wondering if the problem is ACPI related because my linux install logged these errors (see spoiler) but without a BSOD I can't be sure.


17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CD.MT5D], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CD.MT4D], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CD.WT4D], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CD.MT3D], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CD.WT3D], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CD.MT2D], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CD.WT2D], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CD.MT1D], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CD.WT1D], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CC.MT5C], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CC.MT4C], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CC.WT4C], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CC.MT3C], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CC.WT3C], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CC.MT2C], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CC.WT2C], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CC.MT1C], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CC.WT1C], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CB.MT5B], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CB.MT4B], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CB.WT4B], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CB.MT3B], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CB.WT3B], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CB.MT2B], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CB.WT2B], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CB.MT1B], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CB.WT1B], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CA.MT5A], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CA.MT4A], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CA.WT4A], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CA.MT3A], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CA.WT3A], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CA.MT2A], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CA.WT2A], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CA.MT1A], AE_ALREADY_EXISTS (20190816/dswload2-326)
17:26:04 kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20190816/psobject-220)
17:26:04 kernel: ACPI BIOS Error (bug): Failure creating named object [\_SB.I2CA.WT1A], AE_ALREADY_EXISTS (20190816/dswload2-326)


#5332diderius6⇗ @infuscomus

Just hit F7 during Setup and choose Standard PC.
If the error is Acpi related,
you can then install XP
Dietmar

PS: Have you formatted your harddisk with RMPREBUSB?
#5333infuscomus⇗ @diderius6

I tried F7 option - still froze at "Setup is Starting Windows" although the keyboard turned off but did not turn back on

pressing F5 for the other HALs and they also froze

I have not formatted the 4TB with RMPREPUSB yet as I have disconnected the drive
#5334diderius6⇗ @infuscomus

Please make a try to format your only harddisk for XP Setup with RMPREPUSB in an USB box.
All your symptoms during Setup I have had on some compis, where
the geometry of the harddisk was not recogniced correct.
Strange enough this happens exact only at the place,
that you describe
Dietmar
#5335infuscomus⇗ @diderius6

I'm skeptical that it is the hard disks causing the problem, it still froze even when no storage was connected at all (except the optical drive for the XP CD)
#5336diderius6⇗ @infuscomus

Another possibility is to make a direct XP Setup to an USB disk.
In this case, the problem with harddisk geometry will not happen,
Dietmar

PS: When you put your XP.iso on an USB stick and start install with firadisk,
any problem with the SATA connector will be gone. I make this on a board with destroyed SATA.

For USB install via Firadisk see
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (253)
#5337infuscomus⇗ @diderius6

RMPREPUSB did not work unfortunately.

This might be a larger problem - I tested my recovery media built using PE of Windows 10 1607 and it also froze i.e the swirling ring never showed up, just had the windows logo sitting there forever.

I'll need to find out the earliest windows 10 version that boots.
#5338XPLives⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #5328
@diderius6

I do have a 4TB SATA HDD attached so this could be the problem - I don't want to move it to a USB enclosure at the moment.

If I change the partition table on the 4TB from MBR to GPT and format to ext4 could doing that solve this?


Ahhh!

There's your problem.  It's your SATA hard drive capacity.

Here's what I recommend use a 120GB Primary Hard Drive for storing your Boot Partition C: - 98SE DOS 2GB FAT32, D: for XP 32GB FAT32, E:32GB FAT32, F:Largest remaining capacity chunk FAT32.

2TB Secondardy Hard drive NTFS one entire 2.0TB partition if you wish or can split it into multiple 128GB partition chunks NTFS if you want to have XP SP0 backward compatibility.

Only hook up the 1st hard drive or SSD 120GB.  Install 98SE DOS onto C:, then later install XP to D:

Once the XP installation is successful you can hook up the 2nd 2.0TB SATA hard drive and it will see it fine for additional storage.

I don't recommend you hook up any drive larger than 2.0TB internally as XP cannot see it properly (yet) unless someone helps me modify the storage driver then it would be possible to see 16TB and maybe 64TB drives in XP internally in the future.  For now not yet.
#5339infuscomus⇗ @diderius6 ⇗ @XPLives


I'm leaning towards it being an ACPI related error rather than anything to do with the 4TB drive - I tested Vista betas, Vista RTM, Vista SP1, 7 RTM, 7 SP1, 8.0 and 8.1 (Vista and later should have no issue with 4TB drives correct?) and all of them except for 8.1 gave an A5 0x00000011 BSOD when I attempted to boot from them.
#5340gordo999
Zitat von ⇗ XPLives im Beitrag ¶ #5321
No, once Windows completely freezes you can't do anything.  
⇗ @XPLives ...
In case your keyboard still works, and in many cases it does with a freeze in Windows, here's the method for forcing a BSOD.

⇗ https://www.techrepublic.com/article/cre...-in-windows-xp/

"Here's how to create a BSOD:

   Launch the Registry Editor (Regedit.exe).
   Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters.
   Go to Edit, select New | DWORD Value and name the new value CrashOnCtrlScroll.
   Double-click the CrashOnCtrlScroll DWORD Value, type 1 in the Value Data textbox, and click OK.
   Close the Registry Editor and restart Windows XP.

When you want to cause a BSOD, press and hold down the [Ctrl] key on the right side of your keyboard, and then tap the [ScrollLock] key twice. Now you should see the BSOD".

I read elsehwere that a different service needs to be used if you have a PS/2 keyboard (rather than the i8042prt driver listed above.

 

Page 357

#5341XPLives⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #5339
@diderius6 @XPLives


I'm leaning towards it being an ACPI related error rather than anything to do with the 4TB drive - I tested Vista betas, Vista RTM, Vista SP1, 7 RTM, 7 SP1, 8.0 and 8.1 (Vista and later should have no issue with 4TB drives correct?) and all of them except for 8.1 gave an A5 0x00000011 BSOD when I attempted to boot from them.

Vista and Windows 7 will probably encounter an ACPI related issue that you verified and others have as well.

Windows 8.0 and 8.1 to Windows 10 probably will not have the ACPI related issue since they are all based on the same NT branch version with updated ACPI support.

XP does not work with internally connected drives of 2.2TB or higher or 2.0TiB set for MBR.  Vista and higher do not have this issue for MBR or GPT high capacity drives.  Server 2003 supports GPT so it might possibly accept drives of 4TB internally connected but I have NOT tested this so don't assume this works as it might only allow large capacity GPT drives as internal storage but not the OS boot drive.

XP will probably either lock up the system at the point where you stated if using such a high capacity drive since MBR is only supported and the 512 Bytes per Sector maxes out at 2.2TB.  The BIOS may even hang in some cases on much older systems with lower capacity limits.

Try the XP reinstallation using a single 120GB HDD or SSD set for MBR (not GPT) as the Primary internal SATA drive.  If possible use another XP working system to delete all the partitions on that drive and recreate it from scratch.  XP might not like the partitioning style done by Vista or later Windows versions including Linux.  Do not hook up any other drives and repeat the CLEAN ISO not a previous imaged one for the new XP installation test with just only the AMD SATA AHCI driver slipstreamed and no other modified drivers such as the USB 3.0, ACPI, or Daniel_K or Diderius6 enhancements.  Use the F7 NO ACPI to do the new test instead of F5.  Use the internal SATA optical disc drive for the XP installation source files.  Remove all internal PCIe cards and use the CPU iGPU or a GT 710 PCIe card for video output.  Use PS/2 keyboard to rear PS/2 motherboard port.  Set CPU Cores = 1 and downclock MHz to 800 MHz.   Disable Turbo mode and Sleep modes in BIOS if possible.

If you cannot do this exactly you are wasting your time guessing as what's the problem.

Can't really comment on whether that BSOD forced keyboard trick works when adding that registry modification.  When my computer completely freezes you can tell it is frozen because the Num Lock and Caps Lock button that lights up cannot be turned on and off aside from the dead mouse cursor.  I'd be surprised if this works when my machine has completely frozen without BSOD.  I have to reset my system or power it off manually.
#5342diderius6⇗ @infuscomus

I build a new acpi.sys for 5.1.2600.1106 (xpsp1.020828-1920)
english (USA) XP pro SP1 for to solve BSOD A5 0x11 on my Asrock fatal1ty gaming k6 board with this XP SP1 version.
MD5 from this original XP SP1 CD engl (USA) Retail CAE234FB80361EDAACEFE5F48B203B86
SHA-1 02695740D94FFB094FC3E80A7111C9501D534F6D
KEY ..

Also I integrate with nlite the Sata driver ver. 1006 from fernando.
XP setup stops (just hangs) with my new acpi.sys at the very first beginning of setup
"Setup is starting Windows".

This is acpi related, because when I chose via F5 "Standard PC" the installation continues
Dietmar

EDIT: Now comes the most most crazy thing: I can install this XP SP1 with the acpi.sys for XP SP3,
I think because it is from outerspace )..

EDIT2: With original acpi.sys (changed back on this installed XP) from XP SP1 I get ACPI BSOD A5 0x11.
With my new build acpi.sys direct from above I get BSOD 0x7B. This means, that the acpi BSODs can also make this 0x7B BSOD, which is normally given out, when no boot device can be found by XP (no working arcpath).

With the acpi.sys from outerspace ) all is ok and now the real fun with the new compiled XP SP1 starts.
#5343gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5342
With my new build acpi.sys direct from above I get BSOD 0x7B. This means, that the acpi BSODs can also make this 0x7B BSOD, which is normally given out, when no boot device can be found by XP (no working arcpath).
⇗ @diderius6 ...I have always related the "Setup is starting Windows" error with the 0x7B error and caused by the SATA driver. I say that because Windows loads a SATA driver at that stage whereas acpi.sys seems to be loaded earlier.

Obviously, a SATA driver is loaded to get the disk running but apparently Windows loads it's own SATA system related drivers when Windows starts. I noticed that when installing from the setup disk. The first error I got was the 0xA5 error claiming my acpi.sys had issues. I could bypass that using F7 (I think) but just as Windows started, I'd get the 0x7B error and that was related to the SATA driver.

Wonder if there is a connection between acpi.sys and Fernando's driver? There probably is because acpi.sys seems to run the entire driver loading chain for PCI.
#5344diderius6⇗ @gordo999

What a nice idea!

I do an intensive check for this.
On this Asrock board is also an Asmedia 106 SATA-port.
There happens the same: With my new build acpi.sys (against BSOD A5) (from original english SP1 CD)
also on the Asmedia 106 Sata port I get Bsod 0x7B and works with acpi.sys (XP SP3) from outerspace ).

But then I do USB boot. And voila, my new build acpi.sys (from SP1) works!
So, the normal acpi.sys make fit against BSOD A5, has a problem with SATA drivers.

And now comes the most crazy which gives BIG hope for a really new acpi.sys build from SCRATCH:

My acpi.sys (build from XP SP1) can boot XP SP3

Dietmar

PS: The result from all this testing is:
When the compi gets frozen at the message "Setup is starting Windows"
goes always to the boot device, here Sata, with not shown BSOD 0x7B.
Credit and thank you very much ⇗ @gordo999 .

EDIT: For USB3 boot of XP SP1 I use the nice driver from ⇗ @daniel_k and ⇗ @Mov AX, 0xDEAD
        AMDXHCI_XP_FINAL_V3

#5345infuscomus⇗ @diderius6

do you have any systems with a problematic ACPI table? i.e A5 BSOD in Vista/7/8.0 and only 8.1 and later work correctly?
#5346diderius6⇗ @infuscomus

Yes, I have a crazy notebook,
Lenovo Ideapad flex 10,
where I can install XP only without any acpi.
And no version of Win7 works there, only win8 and win10
Dietmar
#5347gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5344
When the compi gets frozen at the message "Setup is starting Windows" goes always to the boot device, here Sata, with not shown BSOD 0x7B.
Credit and thank you very much @gordo999 .

⇗ @diderius6 ...just a guess from me. The credit goes to you. You did the work and have the expertise. Congratulations, and thanks.
#5348infuscomus⇗ @diderius6

Normally F7 would also work for me as well to get past an ACPI A5 BSOD - but on my threadripper system it still freezes on "Setup is Starting Windows"

Even with no storage devices connected

I don't think I've mentioned what threadripper hardware I have

Gigabyte TRX40 DESIGNARE
THREADRIPPER 3960X CPU
MSI RTX 2070 VENTUS
G.SKIL 8x8GB 3600mhz RAM
2x KINGSTON 1TB A2000 NVMe SSDs
4x Crucial MX500GB SATA SSDs
1x 4TB WD Blue HDD
#5349diderius6Make a try with the storport driver from Skullteria Dietmar
#5350infuscomus⇗ @diderius6

which storport version was this? link please?
#5351diderius6⇗ @infuscomus

⇗ https://ufile.io/ngkxtrjm

Dietmar
#5352diderius6⇗ @infuscomus

I noticed some more about the behavior from XP belonging to
"Setup is Starting Windows".
Even when you do USB boot (or install), there must be a working driver for the harddisk been loaded,
even when no harddisk is connected at all. Or it hangs.
We wonder all the time, why an BSOD 0x7B can happen, when everything is ok for USB boot.
It is also time dependend, XP needs enough time for to switch from harddisk driver to the USB driver at first place for boot

Dietmar
#5353gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5352
We wonder all the time, why an BSOD 0x7B can happen, when everything is ok for USB boot. It is also time dependend, XP needs enough time for to switch from harddisk driver to the USB driver at first place for bootDietmar

⇗ @diderius6 ....Sorry for the length of this but I don't think the answer to why the 0x7B BSOD error happens is that easy to understand. You probably know all this already, I am just going over what little I remember about the role acpi.sys plays in the enumeration of devices during the Windows boot process. I have a good explanation from Microsoft which I will post if I find it.

Meantime, I found this article which shows the layout of the device tree with acpi.sys at the root of the tree.

⇗ https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/device-tree

Also....

⇗ https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/acpi-driver

I am not sure about this but all devices attached to PCI and PCIe busses must be enumerated. Even if you have no SATA drive connected, the SATA port itself on the motherboard needs to be enumerated. The boot process or Windows needs to know there is some kind of storage port available.

My background is in computer hardware so I tend to think of the chips on the motherboard, like bus controllers, as devices as well. Windows definitely sees them as such although much of that may be hidden from the user. So, Windows will see each SATA port as a device through the SATA controller drivers. I think that's what may cause the 0x7B error, if the IDE ATA/ATAPI controller in device manager does not have the required driver for the motherboard ports. That can definitely be related to acpi.sys.

Obviously, when you boot, before Windows is initialized, the system needs to know about the SATA ports. It doesn't care at this point whether they are serial ports or parallel ports, it just checks for the ATA standard, that an ATA port is available. I think that is done in BIOS or in the boot code on the SATA disk, if it is attached. If you use a USB boot device only, the boot code has to be included on the USB device. When you first boot, the system knows nothing about Windows, the loading is done by what we used to call a bootstrap loader.

⇗ https://www.computerhope.com/jargon/b/bootload.htm

During the bootstrap processes, the operating system is initialized. Actually, Windows is still booted by a DOS-like process. When Window's does start, at the 'Setup is Starting Windows', or 'Windows is Starting', Windows needs to load its own drivers, but first it needs to enumerate the system to see what drivers needs to be loaded. ACPI.sys is involved in that process BEFORE the SATA controllers are loaded. That might explain why the 0xA5 error occurs before the 0X7B error when both acpi.sys and storport.sys are not right for XP.

I have forgotten a lot of this and would have to read the theory again. However, the plug and play system is dependent on acpi.sys. ACPI does the enumeration of the entire plug and play system and that pretty well is the PCI/PCIe bus system. If acpi cannot enumerate an appropriate driver for the motherboard SATA ports, it may give that 0X7B error. That might be a problem between acpi.sys and storport.sys.

Please be aware that my description of this theory is not intended to be completely accurate. I am only offering suggestions for why there may be problems between an acpi.sys and a SATA controller driver like storport.sys.

Storport.sys seems to be related to the Device Manager section IDE ATA/ATAPI Controllers. My understanding is that the controllers control the SATA controllers on the motherboard, since SATA means Serial ATA. During Windows initialization, it will be reading that section to initialize the SATA bus (device stack), whether there is a SATA disk connected or not.

In the same manner, if you try to connect a USB drive to a USB port that has not been properly enumerated and initialized, the USB drive will not work. The fact that your system worked from a USB drive suggests acpi.sys and/or the plug and play manager is working correctly with the USB driver stack. The 0x7B error suggests there is a problem between acpi.sys and possibly storport.sys, but only when Windows is trying to load.

If there is a difference (conflict) between what acpi.sys reports during its enumeration of the plug and play devices and what Windows sees through its storport.sys information, that may be the source of the 0x7B error. Storport.sys is likely responsible for sending back data about the motherboard SATA ports and if it cannot talk to acpi.sys, an error will occur.

I don't know, I am only theorizing. If you boot from a USB device, the boot process will involve the boot code on the USB device. However, Windows still has to enumerate the devices on the busses of the motherboard. The USB device stack will be enumerated separately from the storage device stack.

It's not clear to me how acpi.sys fits into this process during setup or during the pre-Windows boot process. Maybe it's not involved till Windows is involved. So, maybe the boot code and the BIOS code handles the SATA controllers on the motherboard before Windows tries to start.

If you do a setup from the installation disk, something on the disk detects in XP that something is wrong with the acpi.sys driver on the XP disk. It would be interesting to see what the original XP setup code is checking for when it determines the acpi.sys driver is not correct. If you bypass that with F7, or install acpi.sys from outer space, and let setup proceed, it will load all the required drivers for XP, then you will see 'Setup is Starting Windows'. If the SATA controller is not the right one, you will get the 0x7B BSOD.

It seems to me acpi.sys and the SATA controller driver (is it storport.sys???) must be matched, whether you have a SATA device attached or not.
#5354XPLives⇗ @infuscomus
Zitat von ⇗ infuscomus im Beitrag ¶ #5348
@diderius6

Normally F7 would also work for me as well to get past an ACPI A5 BSOD - but on my threadripper system it still freezes on "Setup is Starting Windows"

Even with no storage devices connected

I don't think I've mentioned what threadripper hardware I have

Gigabyte TRX40 DESIGNARE
THREADRIPPER 3960X CPU
MSI RTX 2070 VENTUS
G.SKIL 8x8GB 3600mhz RAM
2x KINGSTON 1TB A2000 NVMe SSDs
4x Crucial MX500GB SATA SSDs
1x 4TB WD Blue HDD


   
Now I know the specs.  I tried looking at all ThreadRippers and the lowest is 180 Watts and most pushing to 250 Watts.  Still too hot for my taste to invest in.  If it can get down to 80 Watts in 5th Generation it might be worth it or when AMD releases a DDR5 and PCIe v5.0 chipset to warrant investing.

However I've seen some 1st Gen TR CPUs drop in price in $200 range so maybe I will look into this in the future and find a good TR4 motherboard.  The other question is have you ever seen any TR4 motherboard with a legacy PCI slot?  So far I've only seen PCIe only.

If you could record a video using a smartphone and upload this to youtube or somewhere to download that shows from before the XP installation begins to the point where it gets to the point where it freezes on "Setup is Starting Windows" I can try and do a comparison to isolate on my own system to do specific tests on Intel and AMD to see what happens if I remove certain drivers at different points to see if still works or freezes up.

I have motherboards that can also disable the Storage Controllers so I could also see what effect this has and I have larger than 2.2TB drives as well.  This might be a good test for USB only.

Another thing is modifying a BIOS which is considered XP compliant ACPI and tweaking it until it causes a BSOD A5 Error and doing testing.

What is minimum amount of BIOS modification code to trigger this error on a good XP ACPI.sys compliant BIOS to do extra testing.  This would be a way to see how this plays with storage drivers.

Since you tested F7 but neglected to mention if you used a 120 GB HDD or SSD connected as the only primary drive in your testing and no other drives, nor if you only used the correct AMD SATA controller driver and no other modified drivers there are too many variables to make a conclusion.

But you mentioned no storage device connected.  Even without any storage devices connected you still have another issue.
HOW are you installing XP?  Are you using a SATA optical disc drive?

If so that means it has to load the correct AMD SATA controller driver at some point when it switches from the DOS to the XP GUI setup stage.

Check if in your BIOS can you full disable all SATA controllers onboard and repeat the test.

The other thing I would try is getting an Asmedia 1061 SATA PCIe controller and use that as the Storage Controller to boot from with all on board SATA controllers disabled in the BIOS.  Also hook up your SATA optical disc drive to this Asmedia controller.  If you cannot disable them in the BIOS you will have to modify it.  That will guarantee no conflict caused by the onboard SATA controllers being detected.

I haven't fully investigated this but does the AMD AM3 SATA storage driver work on an AM4 SATA storage controller?  Or was there a significant change making it incompatible?

The only interesting thing is if you could make Threadripper work would be getting the 64 Cores / 128 Threads CPU model to work with XP.  If that could be done it would be the most powerful system to date.
#5355XPLives⇗ @diderius6

Zitat von ⇗ diderius6 im Beitrag ¶ #5352
@infuscomus

I noticed some more about the behavior from XP belonging to
"Setup is Starting Windows".
Even when you do USB boot (or install), there must be a working driver for the harddisk been loaded,
even when no harddisk is connected at all. Or it hangs.
We wonder all the time, why an BSOD 0x7B can happen, when everything is ok for USB boot.
It is also time dependend, XP needs enough time for to switch from harddisk driver to the USB driver at first place for boot

Dietmar


What is the source location of the XP installation files when installing to USB?  Are you using an optical disc drive to read XP installation files from?

 

Page 358

#5356XPLives⇗ @diderius6

Zitat von ⇗ diderius6 im Beitrag ¶ #5346
@infuscomus

Yes, I have a crazy notebook,
Lenovo Ideapad flex 10,
where I can install XP only without any acpi.
And no version of Win7 works there, only win8 and win10
Dietmar


What is the CPU model installed in this Lenovo Ideapad flex 10?  Too many models to find exact specs.
My guess is this is SkyLake or later CPU.
#5357XPLives⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #5345
@diderius6

do you have any systems with a problematic ACPI table? i.e A5 BSOD in Vista/7/8.0 and only 8.1 and later work correctly?

Starting with Coffee Lake you will find this behavior from what I've heard of Windows 7 ACPI problem since they are devoted to Windows 8.1 and 10.0 branch.  Although 8.0 should also work.  But I believe I could install Vista and Windows 7 onto Z170 with no issues many years ago.  The problem is random errors booting up probably caused by ACPI since Haswell on Vista.

A lot of laptops that are XP ACPI compliant when installed in NO ACPI mode will not work correctly such as the internal keyboard or touchpad will not function.  Some devices require ACPI to work.
#5358infuscomus⇗ @diderius6 ⇗ @XPLives

regarding XP and larger than 2TB hard drives -

I noticed the import table for disk.sys of vista RTM is a match for XP ntoskrnl hal and classpnp.sys

I'm wondering if it might be possible to swap XP disk.sys with vista RTM disk.sys to get larger disk support?

edit:
and disk.sys of windows 7 SP1 is a match with ntoskrn8 extender.
#5359diderius6⇗ @infuscomus

Just try. I did the same with the files from winserver2003 and works,
but only for GPT disks and <=2 TB
Dietmar
#5360infuscomus⇗ @diderius6

It seems partmgr.sys is also needed for 2TB+ drives to become available - but needed imports are missing.

⇗ @Mov AX, 0xDEAD
if you are able can you add functions to ntoskrn8 extender for partmgr.sys to work?
#5361sashbbbbHelo frierds! Need aspi.sys for install windows xp on lenovo laptop 100-15iby(Intel Celeron N2840 Bay Trail DDR3 2GB ) .
Tried all versions is  tried all versions from WinXP-IE assembly Optional Patch Integrator v2.3.3b20/

error in boot windows BSOD 0x000000B4 (The video driver failed to initialize)
#5362gordo999
Zitat von ⇗ sashbbbb im Beitrag ¶ #5361
Helo frierds! Need aspi.sys ...error in boot windows BSOD 0x000000B4 (The video driver failed to initialize)
⇗ @sashbbbb  ....do you mean acpi.sys or aspi.sys? If you mean aspi.sys, you won't find it here. Try here:

⇗ http://web.ncf.ca/aa571/aspi.htm

If you have reached the stage where you are getting a video driver error, you are past the point where acpi.sys could be a problem. Look for the text, 'Windows is Starting' during boot or setup. If you get past that point, then the error occurs, you need to fix your video driver problem. You might be able to use F8 during boot to reach the selection screen where you can select a VGA driver, so you can boot. Then you will have to fix your video driver error.
#5363YuriyCNNew SATA AHCI Controller driver StorAhci version 1.0 with SOURCE CODE.

StorAhci is based on Microsoft's storahci sample driver for Windows 8 and was changed to support Windows Server 2003 SP1 and SP2 with out of the box storport.sys driver. In addition we added a txtsetup.oem file to load it from a driver floppy disk at the F6 text setup stage. StorAhci is a universal SATA AHCI Controller driver for use with AMD, Intel and any other chipsets.

⇗ https://sourceforge.net/projects/storahci-for-windows-2003/
#5364sashbbbbThis is error in boot windows BSOD 0x000000B4
in safe boot



sashbbbb has attached images to this post  ⇗ lenovo laptop 100-15ibyWi  ⇗ boot last known configura  ⇗ save boot not driver VGA.  ⇗ save boot.jpg  ⇗ boot.jpg
#5365diderius6⇗ @sashbbbb
Make a try with the STORAHCI driver with storport.sys from ⇗ @skullteria .
⇗ https://ufile.io/ngkxtrjm
The storport.sys you have to add by hand into windows\system32\drivers
Dietmar

PS: And use the acpi.sys from outerspace ) .
#5366diderius6For the very first time I succeed to compile XP SP1 from Sources without any error.
There I noticed, that for ntoskrnl.exe not all source files are there, some are precompiled and there only as *.obj.
After instruction for W2003 build, you should remove all "read only" marks.
But when you make a clean build with build -cZP those *.obj are deleted and no ntoskrnl.exe is build.
Now fun starts: I make a mini XP SP1 from them by scratch
Dietmar

EDIT: This XP SP1 has a storport.sys 5.1.2600.1106 .
#5367skullteriaWell, it's occours because source haven't exinit.c and systime.c, only generated obj for x86 and ia64. So, when you run clean, delete these obj too, and build fail to compile kernel
#5368diderius6Oh so much fun

I just build with ntldr, ntdetect.com, hal.dll and ntoskrnl.exe fresh compiled from Source
a working XP SP1 with commandline.
I integrate iastor.sys from Fernando into this minixp
and this runs on 8700k Asrock fatalty board
Dietmar

PS: As winlogon.exe I use renamed minlogon.exe from XP embedded.

#5369RayeR
Zitat von ⇗ XPLives im Beitrag ¶ #5320

Actually it is unnecessary to worry about this.  As long as use the source code for Windows 2000 Server to create the updated ACPI.sys file it can work with XP SP0-SP3, 2009 POS, and Server 2003.  I tested this before.
As for SP1 source it won't be an issue for SP2 or SP3 to work with it.   What you cannot do is use SP3 source to work with Windows 2000 SP0-SP4, or XP SP0-SP2.
It is imperative to use Windows 2000 source code to create the updated ACPI files so it can be used with all NT5.X versions from Windows 2000->2009 POS.



I need to clarify this...
So you mean there was already leaked sources of acpi.sys from W2k that can be rebuild and used for all newer windows up to SP3/Wk3? I read that some subset of W2k sources had leaked before but didn't investigated further.
Are you sure there was not any critical acpi.sys updates in newer OS versions that would require some minimal version for specified OS version? I would guess ahat acpi.sys from XP SP1 would be more advanced than one from W2k.

And how about that acpi.sys patches linked in this thread? I though they are original binaries that was hacked/patched on binary level using disassembler and hexa exitor, not rebuilded from sources. am I right?

diderius6 also mentioned about acpi.sys from XP SP3 from "outer space" that it worked for him, it's meant to be original SP3 version or some hacked one?
He aslo mentioned "I build a new acpi.sys" - is it mean from leaked  src?
Update: oh, I see you just rebuild and run 'miniXP' - congrats :) But a pitty about missing kernel sources :(

BTW from the ⇗ posted description of acpi.sys it seems it's respnsible for enumerating other devices and loading drivers so I can imagine that if something not anumerated properly then disk driver is not loaded getting other error.
BTW2 there's mention about AMLI debugger, did someone able to run it? It should help debugging ACPI issuses.
#5370diderius6I succeed to integrate the original winlogon.exe
into my minixp.
But now comes a screen, that I have never seen before
and which names should be put there

Dietmar

PS: Admin or Administrator works but then hangs for a minute and then asks again;)) for..

 

Page 359

#5371schreiberstein⇗ @diderius6 I suppose it is a language mismatch.
Did you try to place US English binaries instead of German ones?
#5372diderius6⇗ @schreiberstein

I tried both, english and german XP SP1 winlogon.exe.
Also with winlogon from server2003, XP SP0, XP SP3,
only original from XP SP1 works,
but fails via password
Dietmar

I see, that you have to build the user profile by hand.
Oh, this is a hard job. But look at the date of build;))
Dietmar

#5373diderius692.5% of files are build via Sources and work all.
When you add the missing 7.5% files from working XP SP1,
you have a full XP SP1
Dietmar

#5374gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5370
PS: Admin or Administrator works but then hangs for a minute and then asks again;)) for..
⇗ @diderius6 ...Dietmar...that Window seems to be the registration Window, not the logon window, and I have seen this behavior before. If I remember correctly it is related to the Internet Explorer version.

Ps. (added later)...press the Options button (Optionen) and see if it leads you to options for registering, like by phone.

I don't remember whether you have to change IExplorer from version 8 to version 6 or vice versa. Or, you may not have IExplorer installed. Registration needs it and if it's not there or working the registration window fails.

Not sure if XP1 required you to install IExplorer from the Windows Components menu where the Add/Remove files is located. Microsoft had legal issues with it and had to make IExplorer removable.

Would be nice to get Windbg working remotely so we could debug problems like that. I was working on it but I have been busy with other projects during the summer.
#5375diderius6I make an interesting discovery with my minixp.
You get BSOD 0x7B with an acpi-XP (halmacpi.dll together with ntkrpamp.exe and acpi.sys),
when for any reason the acpi.sys driver is not loaded
Dietmar

As you can see on the pic, the driver iastor.sys for the harddisk is loaded but acpi.sys is missed.
So you need an entry in registry for acpi.sys.

EDIT: Yeppp, this was the very first time, that I succeed to switch direct on 1 XP installation,
via edit only HKLM\SYSTEM\ControlSet001 and
change hal.dll, ntoskrnl.exe => halmapic.dll, ntkrpamp.exe, acpi.sys

with result of a working

"Standard PC" => "Multiprocessor Acpi PC"

EDIT2: For this minixp with unmodified acpi.sys happens no BSOD A5 (acpi related). This is interesting.



#5376diderius6minixp "Standard PC" bootlog

Service Pack 110 14 2020 16:23:21.500
Loaded driver \WINDOWS\system32\ntoskrnl.exe
Loaded driver \WINDOWS\system32\hal.dll
Loaded driver \WINDOWS\system32\KDCOM.DLL
Loaded driver \WINDOWS\system32\BOOTVID.dll
Loaded driver pci.sys
Loaded driver isapnp.sys
Loaded driver MountMgr.sys
Loaded driver ftdisk.sys
Loaded driver \WINDOWS\System32\DRIVERS\WMILIB.SYS
Loaded driver PartMgr.sys
Loaded driver iaStor.sys
Loaded driver disk.sys
Loaded driver \WINDOWS\System32\DRIVERS\CLASSPNP.SYS
Loaded driver KSecDD.sys
Loaded driver Ntfs.sys
Loaded driver \SystemRoot\System32\DRIVERS\swenum.sys
Loaded driver \SystemRoot\System32\DRIVERS\i8042prt.sys
Loaded driver \SystemRoot\System32\DRIVERS\kbdclass.sys
Loaded driver \SystemRoot\System32\Drivers\Fs_Rec.SYS
Loaded driver \SystemRoot\System32\drivers\vga.sys
Loaded driver \SystemRoot\System32\Drivers\Npfs.SYS


minixp "ACPI Multiprocessor" bootlog

Service Pack 110 14 2020 15:30:09.093
Loaded driver \WINDOWS\system32\ntoskrnl.exe
Loaded driver \WINDOWS\system32\hal.dll
Loaded driver \WINDOWS\system32\KDCOM.DLL
Loaded driver \WINDOWS\system32\BOOTVID.dll
Loaded driver ACPI.sys
Loaded driver \WINDOWS\System32\DRIVERS\WMILIB.SYS
Loaded driver pci.sys
Loaded driver isapnp.sys
Loaded driver MountMgr.sys
Loaded driver ftdisk.sys
Loaded driver PartMgr.sys
Loaded driver iaStor.sys
Loaded driver disk.sys
Loaded driver \WINDOWS\System32\DRIVERS\CLASSPNP.SYS
Loaded driver KSecDD.sys
Loaded driver Ntfs.sys
Loaded driver \SystemRoot\System32\DRIVERS\i8042prt.sys
Loaded driver \SystemRoot\System32\DRIVERS\kbdclass.sys
Loaded driver \SystemRoot\System32\DRIVERS\swenum.sys
Loaded driver \SystemRoot\System32\Drivers\Fs_Rec.SYS
Loaded driver \SystemRoot\System32\drivers\vga.sys
Loaded driver \SystemRoot\System32\Drivers\Npfs.SYS
#5377RayeRYes it's logical as ACPI is the root enumerator if you select ACPI compatible PC it then loads other buses drivers.
#5378diderius6⇗ @Gelip ⇗ @skullteria

Do you have real Windows XP Embedded SP1 at Beta archive?
I mean not the normal XP Embedded.
There has been a Windows XP Embedded that works with the real files from XP SP1,
without any fba.exe

Dietmar
#5379ruthanBTW what is target of these source codes experiments?
1) Of course it could help to understand how XP works, to fix some problems and add some functionality, but what else?
2) Its there big difference between SP1 and SP3, do you thing that you can use some enhanced SP1 files and make them run with SP3, without big flaws?
3) Its there any chance just make this SP1 build more advanced and compatible than SP3, its too much work?

 Im asking because lots of apps are simply requiring some SP2 or SP3 installed, im sure that you could somehow to bypass that, but maybe these SPx really adding some important functionality not mostly some security fixes.. but never studied it in deep?
#5380diderius6⇗ @ruthan

The most important is to have an acpi.sys for any compi using XP SP3.
And here we have a good chance, because acpi.sys from XP SP1 can boot XP SP3 and shows very similar behavior.
And the Source Code for acpi.sys is complete.
Dietmar

PS: And yes, very interesting to know, how XP in detail works.
#5381789
Zitat von ⇗ diderius6 im Beitrag ¶ #5380
an acpi.sys for any compi using XP SP3.

Do you mean there might be hope for 2003 beyond Haswell ?
#5382diderius6⇗ @789

Do you mean Win2003?
I remember, that Windows Embedded for XP uses the acpi.sys from Win2003.
So, until now Win2003 should run on nearly any newer compi with modded acpi.sys outerspace ) from XP SP3
Dietmar
#5383diderius6I succeed to build an Multiprocessor ACPI XP SP1 from the Source files and storahci from fernando,
with real winlogon.exe and a size of about 70 MB.
Now comes the most strange thing, which is so interesting to take a deeper look on.
On the first boot with the acpi.sys build from Source I get NO BSOD.
But when I reboot it again, I get Bsod A5 (0x11) acpi related
Dietmar

EDIT: This behavior is reproducible. This happens in registry. When I replace registry (whole folder config) after A5 BSOD with the original registry,
no Bsod A5 happens. It looks, like registry has a memory for Bsods. System.log is nearly empty after 1. start with original acpi.sys and gives Bsod on reboot. And the most crazy thing is: After this Bsod A5 (11) even the acpi.sys from outerspace )
gives the same Bsod. Just like memory for Bsod in registry.

Service Pack 110 15 2020 12:49:57.093
Loaded driver \WINDOWS\system32\ntoskrnl.exe
Loaded driver \WINDOWS\system32\hal.dll
Loaded driver \WINDOWS\system32\KDCOM.DLL
Loaded driver \WINDOWS\system32\BOOTVID.dll
Loaded driver ACPI.sys
Loaded driver \WINDOWS\System32\DRIVERS\WMILIB.SYS
Loaded driver pci.sys
Loaded driver isapnp.sys
Loaded driver MountMgr.sys
Loaded driver ftdisk.sys
Loaded driver PartMgr.sys
Loaded driver iaStor.sys
Loaded driver disk.sys
Loaded driver \WINDOWS\System32\DRIVERS\CLASSPNP.SYS
Loaded driver KSecDD.sys
Loaded driver Ntfs.sys
Loaded driver NDIS.sys
Loaded driver Mup.sys
Loaded driver \SystemRoot\System32\DRIVERS\i8042prt.sys
Loaded driver \SystemRoot\System32\DRIVERS\kbdclass.sys
Loaded driver \SystemRoot\System32\DRIVERS\swenum.sys
Loaded driver \SystemRoot\System32\DRIVERS\update.sys
Loaded driver \SystemRoot\System32\Drivers\Fs_Rec.SYS
Loaded driver \SystemRoot\System32\drivers\vga.sys
Loaded driver \SystemRoot\System32\Drivers\Msfs.SYS
Loaded driver \SystemRoot\System32\Drivers\Npfs.SYS
Loaded driver \SystemRoot\System32\DRIVERS\rdbss.sys
Loaded driver \SystemRoot\System32\DRIVERS\mrxsmb.sys


#5384diderius6I make a test, if one of the new drivers (see bootlog)
can make this Bsod A5 (0x11).
But I come also to dektop via real winlogon without them,
meaning the same driver list as with minixp.
And the strange behavior of 1 time possible boot with normal acpi.sys stays.
So, this Bsod A5 (0x11) is not related to the new *.sys drivers (I check, that none of them is loaded) but
for full winlogon and its dlls.

This Bsod I do not understand at all, because it means, that a Bsod can happen driver independend
Dietmar

PS: When I change back full winlogon against the renamed minlogon from Windows Embedded, this Acpi Bsod A5 0x11 is gone.

But I get Bsod C000021A with the remaining extra dlls needed for full winlogon.

STOP: 0xC000021A

Cause
This error occurs when a user-mode subsystem, such as WinLogon or the Client Server Run-Time Subsystem (CSRSS), has been fatally compromised and security can no longer be guaranteed. In response, the operating system switches to kernel mode. Microsoft Windows cannot run without WinLogon or CSRSS. Therefore, this is one of the few cases where the failure of a user-mode service can shut down the system.
#5385gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5384
I make a test, if one of the new drivers (see bootlog)
can make this Bsod A5 (0x11).
⇗ @diderius6 ...this may help...or not.

⇗ https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/bug-check-0xa5--acpi-bios-error

 

Page 360

#5386diderius6Yesssssa,
I just build a fresh acpi.sys from sources
which will NEVER show again Bsod A5 (0x11,0x8,..).
And the very best is:
I have a XP, which shows exact this error before
and with this brandnew acpi.sys this is gone(!), means
boots normal, waaaoh, we see light at the end of the tunnel with Bsod A5
Dietmar

⇗ https://ufile.io/72r8ilvh

and the next (better) acpi.sys
⇗ https://ufile.io/hsjutifo
#5387diderius6In C:\NT\base\busdrv\acpi\driver\shared

acpiinit.c

//
   // Now call the Interpreter to read the Differentiated System
   // Description Block and build the ACPI Name Space.
   //
   status = AMLILoadDDB( table, &diffDataBlock );
   if (NT_SUCCESS(status) ) {

       //
       // Remember that we have loaded this table and that we have a
       // handle to it
       //
       RsdtInformation->Tables[Index].Flags |= RSDTELEMENT_LOADED;
       RsdtInformation->Tables[Index].Handle = diffDataBlock;

   } else {

       ACPIPrint( (
           ACPI_PRINT_CRITICAL,
           "ACPIInitializeDDB: AMLILoadDDB failed 0x%8x\n",
           status
           ) );
       ASSERTMSG(
           "ACPIInitializeDDB: AMLILoadDDB failed to load DDB\n",
           0
           );

       KeBugCheckEx(
           ACPI_BIOS_ERROR,
           ACPI_SYSTEM_CANNOT_START_ACPI,
           8,
           (ULONG_PTR) table,
           table->Header.CreatorRev
           );

   }
   return STATUS_SUCCESS;
}


=>

   //
   // Now call the Interpreter to read the Differentiated System
   // Description Block and build the ACPI Name Space.
   //
   status = AMLILoadDDB( table, &diffDataBlock );
   if (NT_SUCCESS(status) ) {

       //
       // Remember that we have loaded this table and that we have a
       // handle to it
       //
       RsdtInformation->Tables[Index].Flags |= RSDTELEMENT_LOADED;
       RsdtInformation->Tables[Index].Handle = diffDataBlock;

   } else {

      RsdtInformation->Tables[Index].Flags |= RSDTELEMENT_LOADED;
      RsdtInformation->Tables[Index].Handle = diffDataBlock;


   }
   return STATUS_SUCCESS;
}
#5388gordo999⇗ @diderius6 ...a bit of research revealed that the RSDT table has pointers to other tables. One of them is the Debug Port Table 2 (DBG2). If you have the time, could you look to see if there is a pointer to the Debug Port Table?

I have been unable to get a remote debugging connection using the acpi from outer space? I will work on this myself but I have a long learning curve ahead of me.

Thanks for your effort on this.
#5389diderius6⇗ @gordo999
In the Source for acpi is no pointer to the DBG2 table,
so this table seems not direct related to acpi. In the RSDT table itself I dont find a pointer to DBG2.
But a search for the string DBG2 shows its appearance
at a lot of other places, see picture, for example in cdebug.cpp
Dietmar

#5390kukonosau⇗ @diderius6
Hi! Why Windows Vista x64 different BSOD crash randomally? My configuration: CPU AMD Ryzen 5 2600, motherboards ASUS B350M-K, GPU GTX 960, 16 Gb RAM in 2 slots 8 Gb. BIOS Update to actually version doesn't help me. I see often 0x0000000A and 0x0000019 errors. I see often IRL_NOT_LESS_OR_EQUAL or BAD_POOL_CALLER or BAD_POOL_HEADER. Why? ACPI is not compatible? Platform updates Vista doesn't help also. I tried disable LAN Controller and HD Audio Controller in BIOS, but this is not help me also.

And why Windows 7 x64 is lagging? Windows 7 has not BSOD, but games (for example, GTA V) lagging, however FPS is highest than Windows 10 often. Windows Vista has many BSOD, but games very well working, opportunately. I don't sure in 100 per cents. Windows XP x86 thanks to your drivers generally working normally. Why? BIOS ASUS specially limit perfomance old operating systems? If buy analog motherboards from GIGABYTE then system will working normally, probably?

What happen? Where is problem? I must be buy motherboards with socket AM3+ for old operating systems? Can you help me, please? Wait answers...
#5391diderius6⇗ @kukonosau

The US army uses XP SP3. I think that this is the reason why it is much more stable than newer OS.
XP64 is much more unstable.
Because acpi.sys seems to be compatible through all Win OS,
today I make a try with acpi.sys from win8.1 under XP
Dietmar
#5392kukonosau⇗ @diderius6
Problem with acpi? I don't mistake? Win7 acpi don't compatible also? I forget check Win8.1 in all games. But Mafia: Definitive Edition in Win8.1 working properly. Why Win7 working incorrectly in games, but Vista correctly? However, Win7 hasn't BSOD, but Vista has many BSOD. Win10 also check disks after install Win7 or Vista. But if install your modify XP with Patch Integrator then Win10 willn't checking disks.
#5393kukonosau⇗ @diderius6
Why Vista crash randomally in Ryzen? From acpi? Do you have crash Vista or it is working properly?
#5394diderius6⇗ @kukonosau
Vista was for me only like a game. I succeed to boot it from USB and to put it on a Fat32 partition.
That was enough. And about Win7: I compare Skype on XP via Win7 in 2009. Oha, this was the last time that I had an daily installation with win7. A little bit I like win 8.1. And from win10 I like, that I can install it together with XP on my Thinkpad x230 Lenovo notebook. In my eyes there has been no advantage in OS since XP SP1. Take a look at the search function and you will agree with me at once
Dietmar

PS: Vista is something like a bad clone from winserver 2003 with new driver model. For what I need this?
On my compi with x58 chipset I have not seen a single bluescreen for years. So I use this machine with harddisk for compiling.
With SSD I get errors but with harddisk not. SSD are soso much bad for safe data, USB sticks also.
#5395diderius6In acpi.sys from win8.1 32 bit there are

51 missing functions in ntoskrnl in XP SP3
6 missing functions in hal.dll in XP SP3.

I checked this via Dependency Walker for acpi.sys vers. 6.3.9600.18939 (winblue_ltsb.180210-0600)
and acpi.sys version 6.3.9600.17393 (winblue_r4.141006-1627)

Dietmar
#5396RayeRI just try to replace acpi.sys in my WinXP SP3 by one that I compiled from W2k3 sources (without any modification, just recompiled). The system booted normally, no errors in event log but I quickly found that my CPU (i7-2600K) is heating a lot, about 70C like in full load but real CPU load was 0-1%. When I swapped acpi.sys back to my SP3 version and rebooted the temparature dropped back to normal 35C for idle load. So there must be some compatability problem between them...

EDIT I could try your fresh builds...

BTW where are printed debug messages by ACPIPrint() function? Can be seen via serial line WinDbg?
#5397diderius6⇗ @RayeR

This may be a problem because cpu always runs in C0 state.
Change intelppm.sys against modified one
Dietmar
#5398RayeRYes, same behavior with your ACPI.SYS
Where can I find the modified INTELPPM.SYS please?
BTW my SP3 version is 5.1.2600.5512 and same for INTELPPM.SYS
#5399diderius6⇗ https://ufile.io/8zdzlh8v
#5400Andalu
Zitat von ⇗ diderius6 im Beitrag ¶ #5386
Yesssssa,
I just build a fresh acpi.sys from sources
which will NEVER show again Bsod A5 (0x11,0x8,..).
And the very best is:
I have a XP, which shows exact this error before
and with this brandnew acpi.sys this is gone(!), means
boots normal, waaaoh, we see light at the end of the tunnel with Bsod A5
Dietmar

I tried to install the Integral Edition 2020.9.9 ISO with your "acpiDBBhackbetter" on my crazy Asrock H310M-HDV but I still got the A5 BSOD even if with a different code (0x03,0x8,0xC,0x4). Same BSOD with a working XP disk drive from another motherboard (Q370).


P.S.: do you have the possibility to choose a different hosting site, please? Sorry to point this out but Ufile is really a hassle, it requires to solve the reCaptcha even to download a few bytes. Also to log in here another reCaptcha to solve and other waste of time.

 

Page 361

#5401infuscomus⇗ @Andalu

UFile has a reCaptcha? I've never seen it - not sure why you get it.
#5402Andalu
Zitat von ⇗ infuscomus im Beitrag ¶ #5401
@Andalu

UFile has a reCaptcha? I've never seen it - not sure why you get it.

take a look:



Downloading on that site is not possible without allowing these requests:
#5403diderius6⇗ @Andalu
With Firefox Browser and XP SP3 I dont see any Captcha on ufile.io
Dietmar
#5404Andalu
Zitat von ⇗ diderius6 im Beitrag ¶ #5403
@Andalu
With Firefox Browser and XP SP3 I dont see any Captcha on ufile.io
Dietmar

The updated image I posted is from Firefox and XPSP3.

However, beyond the reCaptcha, to download from that site is mandatory allow requests also from google otherwise it is not possible. Anyone can verify it for himself.
I just wanted to report this without any other intention.
#5405RayeR
Zitat von ⇗ diderius6 im Beitrag ¶ #5399
https://ufile.io/8zdzlh8v


Thanks, but when I replaced only ACPI.SYS and INTELPPM.SYS my CPU is still running hot. When I replaced also HAL.DLL from the package I got BSOD
STOP: 0xA, (0, 2, 1, 0x80522848)
#5406diderius6Hi,
after talk with ⇗ @daniel_k I understand,
what I have to do to make acpi.sys from outerspace ) also immun against BSOD
0x000000A5 (0x00002001,1,xx,yy)
Dietmar

PS: It is really crazy: The Source Code from XP SP1 in acpiosnt.c told me, that for XP it is unimportant
if the OS gives a hint, if it is PIC model or APIC model. XP looks ONLY, if the model is there..

Now I do not have a single board or notebook left, where I cant install full acpi XP.
In this moment I am installing XP SP3 on the crazy Lenovo Ideapad Flex 10.
Win7 cant be installed there, BUT XP SP3 ..

⇗ https://ufile.io/nr34td75
#5407gordo999
Zitat von ⇗ kukonosau im Beitrag ¶ #5390
I see often 0x0000000A and 0x0000019 errors. I see often IRL_NOT_LESS_OR_EQUAL or BAD_POOL_CALLER or BAD_POOL_HEADER. Why? ACPI is not compatible?
⇗ @kukonosau ...the error 0x19 is related to the IRL_NOT_LESS_OR_EQUAL or BAD_POOL_CALLER or BAD_POOL_HEADER errors. You may have problems with your RAM memory boards. I think that because your system runs OK with Win x86 but not with Win x64.

Try running the memory board one at a time with each board in the first slot. I presume you have installed the boards correctly as per the B350M manual. An 8 Gb memory card should be enough to run both x86 and x64 well enough so games don't lag. Also, make sure the memory cards are properly inserted. While you have the cards out of the socket, look at the contacts to make sure they are clean and use 99% isopropyl alcohol to clean the contacts. Don't use anything less than 99% since that type has water in it and you don't want water on the contacts.

Have you run a memory diagnostic? Sometimes a faulty memory card won't show up with just a few runs, you need to run the test repeatedly for a long time. Even then, the best way is to use a known good memory card. If you insert them one at a time, it's not likely that both cards are bad. I have found the problem is usually the cards not being inserted properly. Just removing them and re-inserting them often works well.

The 0xA error can be related to a bad memory card or to a card not inserted properly. Or it could be related to a bad driver or hardware device. It could be caused by the wrong ntoskrnl.
#5408gordo999
Zitat von ⇗ Andalu im Beitrag ¶ #5400
P.S.: do you have the possibility to choose a different hosting site, please? Sorry to point this out but Ufile is really a hassle, it requires to solve the reCaptcha even to download a few bytes. Also to log in here another reCaptcha to solve and other waste of time.
⇗ @Andalu ...I get a captcha error message but it claims it cannot contact the captcha site. The file downloads OK however. Are you running an app that could be blocking Captcha?

I am running NoScript and AdBlock on Firefox. Sometimes I have to 'Allow' certain sites on NoScript and turn of AdBlock. I know there have been problems with Captcha due to sites running the wrong version.
#5409infuscomus
Zitat von ⇗ diderius6 im Beitrag ¶ #5406

In this moment I am installing XP SP3 on the crazy Lenovo Ideapad Flex 10.
Win7 cant be installed there, BUT XP SP3 ..

⇗ https://ufile.io/nr34td75


I will try this acpi.sys on my threadripper system.

edit: No good, still stuck at "Setup is Starting Windows"
#5410Andalu
Zitat von ⇗ gordo999 im Beitrag ¶ #5408
@Andalu ...I get a captcha error message but it claims it cannot contact the captcha site. The file downloads OK however. Are you running an app that could be blocking Captcha?

I am running NoScript and AdBlock on Firefox. Sometimes I have to 'Allow' certain sites on NoScript and turn of AdBlock. I know there have been problems with Captcha due to sites running the wrong version.


My problem is that the reCaptcha is required too many times on Ufile.io.
I have already listed the requests necessary to download a file for that site, now I try to explain better:
from the main page of any ufile link, to access the download function, you must first authorize the scripts from 'ufile.io' to 'ajaxgoogleapis.com' and then, to activate the real "download" function for the related button, you must authorize the scripts to the reCaptcha site (google.com and gstatic.com) even if it won't be displayed anymore.

So, even if the reCaptcha is not displayed or requested, it was still necessary to allow the scripts from ufile.io to the reCaptcha site, otherwise the download became impossible to enable. It can be easily verified with NoScript or other similar FF add-ons.
#5411infuscomus⇗ @Andalu

on mine I have

ublock origin 1.30.4
popup blocker ultimate 11.1.0

maybe popup blocker blocks the captchas?
#5412infuscomus⇗ @diderius6

Unrelated to ACPI
it seems that win2k3 supports accessing larger than 2tb disks - and the import tables match XP.



infuscomus has attached files to this post
#5413diderius6⇗ @infuscomus

I use the files in XP SP3,
but my 4 TB harddisk on a Sata port cant work under XP. It is even only recogniced on the Intel Sataport, the asmedia Sata port ignores this 4 TB harddisk complete.
Have you seen a report, that winserver 2003 Bit 32 can work and boot from harddisks >2TB?
Somebody told me, that you can fake an installed winserver 2003 as XP, but I never tested or tried.
I know, that the Kernel is different. But with the leaked sources you can see, that you also can build a XP 3790.
Interesting, if all drivers from XP work there also and if this XP 3790 with disk.sys from win2003 can work with more than
2 TB harddisk
Dietmar
#5414Andalu
Zitat von ⇗ infuscomus im Beitrag ¶ #5411
@Andalu

on mine I have

ublock origin 1.30.4
popup blocker ultimate 11.1.0

maybe popup blocker blocks the captchas?

I don't think it depends on the ad-blocker. Even to log in here you have to solve the reCaptcha so the ad-blocker should block it here too but I believe that hardly happens, or am I wrong?

I just tried two times to download from ufile: the first time the reCaptcha did not appear and the second time it was displayed. It happened within a few seconds from one attempt to the next without changing anything.
This script/XHR (⇗ https://ufile.io/ajax/generate_download/) needed to allow for downloading from ufile.io contains this message:  "Please complete the reCAPTCHA field to proceed"
#5415infuscomus⇗ @Andalu

I see on my system the captcha tries to load in the bottom left of my screen, but something blocks it and then the download starts as normal.

does installing popup blocker make a difference?

 

Page 362

#5416Andalu⇗ @infuscomus
nothing changes even with Popup Blocker Ultimate 8.1 (last version FF 52 compatible).
As said before, it's not a pop-up but a script.
Are you sure that on the bottom left of the screen Popup Blocker Ultimate blocks the reCaptcha and not the little window referring to privacy terms as is displayed in the image I posted above?
#5417infuscomus⇗ @Andalu

I can see the Captcha if I turn off ublock origin.

maybe it's because you're on on old firefox version - try basilisk browser, works with XP.
#5418AndaluI still got the reCaptcha, even if once on three attempts:

#5419infuscomus⇗ @Andalu

which site would you prefer we use to upload files?
#5420Andalu⇗ @infuscomus
I can't recommend any specific file hosting site as I rarely upload. In general, you might prefer some site that does not require mandatory linking to external sites to download (or at least that can be blocked with browser add-ons). I still don't understand why ufile requires to allow a mandatory connection to ajaxgoogleapis.com (maybe for geolocation?).
Much better without the reCaptcha that unfortunately was also introduced in this forum to simply log in. Today I logged in more than 4 times and I had to solve at least 20 reCaptcha
#5421gordo999⇗ @Andalu ....I should have mentioned that I was using Windows 7 when I downloaded from ufile.
#5422YuriyCN
Zitat von ⇗ infuscomus im Beitrag ¶ #5417
@Andalu

I can see the Captcha if I turn off ublock origin.

maybe it's because you're on on old firefox version - try basilisk browser, works with XP.


RUSSIAN. Browsers for Windows XP

Браузеры для Windows XP:

1) Браузер 360ЕЕ (аналог Google Chrome) - собран на 69 и 78 версии Хрома. 360ЕЕ прекрасно работает на ХР, а штатный Хром для ХР закончился на 49 версии. Описание - ⇗ http://forum.ru-board.com/topic.cgi?foru...73&start=1380#7
Скачать - ⇗ https://yadi.sk/d/U-_l7A5LmbARhA



2) Браузер Basilisk v55 ru-xpmod (аналог FireFox) - по количеству настроек превысит 360ЕЕ, имеет большой набор предустанновленных плагинов, в том числе для резки рекламы, встроен TOR анонимайзер.
Скачать - ⇗ https://yadi.sk/d/HtCypk9HO_H1cw



3) Браузер TOR - браузер на основе FireFox, предназначенный для анонимной работы в сети. Новые версии WinXP не поддерживают. Последняя версия с поддержкой WinXP версия 7.5.6.
Скачать - ⇗ https://yadi.sk/d/UGGKCzNJDEFvIg

Модернизированная версия TOR - браузера на основе последней версии (обновлены внутренние компоненты, добавлена поддержка нод 3-й версии).
Скачать - ⇗ https://www.upload.ee/files/12349986/TB756_ru_0445.ZIP.html



4) Opera v12.18_45 - неофициальная портативная сборка последней классической версии браузера Opera, с исправлениями для корректного отображения сайтов.
Скачать - ⇗ https://www.upload.ee/files/12359701/Ope....18_45.zip.html



5) Прочие браузеры.
Форумчанин rodocop напомнил о целом семействе актуальных браузеров для Windows ХР на движке Goanna.
MyPal - ⇗ https://github.com/Feodor2/Mypal
Centaury - ⇗ https://github.com/Feodor2/Centaury/releases от Feodor'a,
и россыпь сборок roytam'a:
NewMoon - ⇗ https://o.rths.ml/palemoon/palemoon-28.1...cac52b-xpmod.7z
Basilisk - ⇗ https://o.rths.ml/basilisk/basilisk52-g4...cac52b-xpmod.7z
IceApe - ⇗ https://o.rths.ml/hbl-uxp/iceape.win32-2...cac52b-xpmod.7z
Borealis - ⇗ https://yadi.sk/d/e9i4Uzz56le-cQ
А также его любимый Vasilisque - ⇗ https://yadi.sk/d/s8w31JCslJ5vbw и еще более любимый (да, на устаревающем движке, но зато самый легкий из всех приведенных) K-Meleon - ⇗ https://yadi.sk/d/IUdnrsBfsMAzrA
3 последних русифицированы комрадом vikmin (с просторов браузерного рунета) при скромном участии rodocop, и, наряду с MyPal, подготовлены для портабельного использования.
Рекомендация от vikmin - Vasilisque+v.0.13.0-ru-RU Portable_x32 (Кастом-сборка на базе Centaury 0.13.0) - ⇗ https://www.upload.ee/files/12402914/Vas...0-ru-RU.7z.html
#5423Andalu
Zitat von ⇗ diderius6 im Beitrag ¶ #5406
Now I do not have a single board or notebook left, where I cant install full acpi XP.

In case you want to find the first board for which, at the moment, it is not possible to install or run XP without any problem, I could suggest you to try with an asrock H310M-HDV
#5424diderius6⇗ @Andalu

Which Bsod do you see on the asrock H310M-HDV,
when you install XP with the acpi.sys from outerspace ) ?
Dietmar
#5425Andalu⇗ @diderius6
here the BSOD with acpi.sys from outerspace:
0x000000A5 (0x0000000D, 0x8A30B818, 0x4449555F, 0X00000000)

here the BSOD with acpiOuterspace2001fit:
0x000000A5 (0x0000000D, 0x8A2A41C8, 0x4449555F, 0X00000000)
#5426diderius6⇗ @Andalu

Oh, I think this Bsod I solved long time ago here in this forum with special acpi.sys for geniautravail (or similar^^)
Dietmar
#5427diderius6Hi,
I noticed, that the search function here in the forum gives only results, which are not older than about a month.
Is there a special setting in search, that it searches everywhere and for all time
Dietmar
#5428Andalu⇗ @diderius6
I think to have already tried all yours acpi.sys versions.
No one of them has worked with my crazy board unless I downgrade the bios to the first released version as reported ¶ here
#5429diderius6⇗ @Andalu

Look for special acpi.sys here in the forum for this BSOD,
I have done this for 0x000000A5 (0x0000000D Bsod
Dietmar

⇗ https://ufile.io/griun32t
#5430Andalu⇗ @diderius6
thanks but its hash value is already listed in my acpi.sys archive
I tried however to copy it on a XP working hard drive but without success: 0x0A bsod

 

Page 363

#5431diderius6⇗ @Andalu

Please tell me, what the exact Bsod with this acpi.sys is
Dietmar
#5432Andalu⇗ @diderius6
just tried with the Integral Edition iso (only with acpi and sata-ahci drivers) and it seemed to work but i got the irq_not_less_or_equal error on the gui setup
text mode correctly completed
error code: 0x0000000A (0x000000B0, 0x00000002, 0x00000000, 0x804F5B33) occurred during the devices installation after the license agreement window.
#5433diderius6⇗ @Andalu

Make a try with an older version, around this (XP from 5 Mai version)

winxp-ie-optional-patch-integrator-v2.3.3b14

and chose the storport driver
Dietmar
#5434Andalu⇗ @diderius6
about storport.sys I assume you're referring to the nvme driver
#5435Andalu⇗ @diderius6
iso from WinXP-IE 2020.5.5 patch integrator v2.3.3b14 (nvme, acpi, sata-ahci and USB3 drivers included):
on usb3 port: system hangs on "setup is starting windows"
on usb2 port: 0xDEADBEEF  bsod

iso from WinXP-IE 2020.5.5 patch integrator v2.3.3b14 (acpi, sata-ahci and USB3 drivers included):
on usb2 port: system hangs on "setup is starting windows"
on usb3 port: text mode completed - same irq_not_less_or_equal error as above on the gui mode
#5436diderius6⇗ @Andalu
No, just change the driver for your harddisk to old STORAHCI with storport from ⇗ @skullteria
Dietmar

PS:And boot from real CD, connected to a SATA port.
#5437Andalu
Zitat von ⇗ diderius6 im Beitrag ¶ #5436
@Andalu
No, just change the driver for your harddisk to old STORAHCI with storport from @skullteria
Dietmar

PS:And boot from real CD, connected to a SATA port.

To prepare an iso with the skullteria driver I must use an older patch integrator version because the v2.3.3b14 contains the storpor8.sys and I also have to find a cd to burn :)
#5438Andalu⇗ @diderius6
I just done an attempt to replace storahci.sys. storahci.inf, storport.sys (besides acpi.sys) with the skullteria version on a working XP disk: identical irql_not_less_or_equal error as before.
#5439diderius6⇗ @Andalu

Hit direct before GUI setup F8 and chose "Safe Mode".
This Bsod 0x0000000A (0x000000B0, 0x00000002, 0x00000000,
is a driver problem, not related to Acpi
Dietmar
#5440Mov AX, 0xDEAD
Zitat von ⇗ Andalu im Beitrag ¶ #5435
@diderius6
iso from WinXP-IE 2020.5.5 patch integrator v2.3.3b14 (nvme, acpi, sata-ahci and USB3 drivers included):
on usb3 port: system hangs on "setup is starting windows"
on usb2 port: 0xDEADBEEF  bsod


Hi Andalu

0xDEADBEEF is error of ntoskrnl_extender, it means it found some error when someone called it (ported usb3 driver), second code can tell more, i numerated it as 0,1,2,3 to define what procedure inside sources generated it
#5441Mov AX, 0xDEADHi,

1) For compiling acpi.sys i use little helper (first run "tools\razzle.cmd offline free" to setup environment variables)

 
set __BUILDMACHINE__=xpsp1
set BUILDDATE=020828-1920

rem set 386_OPTIMIZATION=/Og
rem set LINK_TIME_CODE_GENERATION=1

build /Zegbw



Generated acpi.sys fully match with acpi.sys from downloadable "winxp sp1 eng KBxxxxxx" (except debug/build timestamps). You can uncomment two REMs to enable compiler's global optimization (it works, but i never tested working state of final binary)


2) Comparing acpi.sys from SP1 and SP3 with BINDIFF (plugin for IDA) show me no difference, but only one thing is important - acpi.sys SP1 was compiled with /Oy optmization, SP3 with /Oy-, this mean SP1 dont use EBP register as frame base.
Basicaly on x86 we don't need frame pointer because ESP is enough for this purpose, but M$ in SP3 dont care about compiler flags :)

#5442Andalu
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5440
Hi Andalu

0xDEADBEEF is error of ntoskrnl_extender, it means it found some error when someone called it (ported usb3 driver), second code can tell more, i numerated it as 0,1,2,3 to define what procedure inside sources generated it


Hi Mov
the error code on the gui mode setup is always the same and I got it always on the same point after the license agreement window during the "Installing Devices" step:
0x0000000A (0x000000B0, 0x00000002, 0x00000000, 0x804F5B33)
#5443Andalu
Zitat von ⇗ diderius6 im Beitrag ¶ #5439
@Andalu

Hit direct before GUI setup F8 and chose "Safe Mode".
This Bsod 0x0000000A (0x000000B0, 0x00000002, 0x00000000,
is a driver problem, not related to Acpi
Dietmar

No way to enter the safe mode, I got the following message:
"Windows XP Setup cannot run under safe mode. Setup will restart now"
#5444diderius6⇗ @Andalu

It is another driver, which makes this problem. This other driver writes in wrong memory.
So with F8, or working XP from other compi or with disabling nearly everything in Bios you can overcome this.
I have had the same message on the Asus A320M board
Dietmar
#5445diderius6⇗ @Andalu
Use an original XP SP3 from CD with wished integrated drivers
Dietmar

 

Page 364

#5446Andalu⇗ @diderius6
I added no other driver than acpi and sata-ahci in the ISO.
Even in bios all other devices are disabled.
#5447diderius6I just make a new acpi.sys on the base of ⇗ @daniel_k very last 5048 version against
BSOD 0x000000A5 (0x00002001,..)
Dietmar

⇗ https://ufile.io/6svkbsz6
#5448diderius6⇗ @Andalu

Make a try with original XP SP3 CD(!), only modded acpi.sys
and the STORAHCI driver with storport.sys from ⇗ @skullteria on it
Dietmar

PS: When you have another Ryzen board with working XP, make a try with this XP and the
SATA ⇗ @skullteria driver.
#5449Andalu⇗ @diderius6
on my crazy board is mounted a 9400F (without graphics) so using a working XP I have to enable safe mode with VGA support and even in this case I get the identical error.

I'll try your advices on the next hours, thanks ;)


Edit: please note that XP correctly installs on this board by downgrading the bios to the first release v1.20 (as reported ¶ here) so I can think that the issue is "bios-dependent".

P.S.: only intel boards here, unfortunately.
#5450diderius6⇗ @Andalu

Make a try with your own "F8".
Delete all drivers, that you dont need,
on the setup CD (dont forget to delete cache also) or on the driver folder after txt Setup on harddisk.
I have never tested this methode for Setup
but on a working XP I succeed with this to overcome crazy BSODs because of an unknown driver.
Even the driver is mentioned in registry,
via bootlog you can see, that nothing bad happens,
only the (unknown)bad driver is not loaded.
It is like to work with Windows Embedded, only vice versa
Dietmar

EDIT:
Edit: "please note that XP correctly installs on this board by downgrading the bios to the first release v1.20 (as reported here) so I can think that the issue is "bios-dependent".
Can you downgrade your Bios again? If yes, set up then there a fresh XP, update your Bios and do F8 boot with this XP from before.
#5451Andalu⇗ @diderius6
I can still make a new downgrade because I had not updated to the final version (4.20) but to the last downgradeable version (3.30).
#5452Andalu⇗ @diderius6
I first tried the way most simple :):
Bios downgraded to the older version (1.20) > XP installed with the ISO from Patch Integrator v2.3.3b14 (only acpi.sys and sata-ahci driver from reactOS) > installation completed without issues > system turned off before the first reboot  > updating bios to the v3.30 > system rebooted but working only in safe mode. In normal mode it restarts automatically just the XP logo appears. I also updated the vga driver but the result doesn't change.

Maybe I have to switch my two coffee lake CPUs, using the one with integrated vga on this board.
#5453diderius6⇗ @Andalu
"system rebooted but working only in safe mode"
Now you can delete/rename/disable any driver, that you dont need for boot.
Via this way you will find the driver, which gives BSOD
Dietmar

PS: In first place I think, it is one of the sata-drivers, which gives this Bsod.
And the real reason is bad new BIOS. You can compare the DSDT tables old Bios /new Bios.
#5454Andalu⇗ @diderius6
doesn't seem to be depending from the sata-ahci driver, I already tried almost of them but XP restarted in all attempts.
A weird thingh is that the USB2.0 Hub shows the exclamation point on each restart even if I correctly updated it before.
The USB3 XHCI works.

I'll make a new attempt on the next hours, now I have to take a time-out :)
thank you very much
#5455diderius6⇗ @Mov AX, 0xDEAD

So this means, we have the Source code for acpi.sys for XP SP3:)).

Very interesting tool BINDIFF. I look for such a tool but do not find.
Do you know how it works? Is it just looking, if for different inputs the output for two binaries
is always identic or is it more intelligent and tried to "understand" the Binaries?

Interesting is to compare hal.dll and ntoskrnl from XP SP1 and SP3.
hal.dll SP1 uses the old hardware clock but hal.dll SP3 not.
And even ntoskrnl from XP SP1 has a storport, this does not work together with storport from win2003
Dietmar
#5456Andalu⇗ @diderius6
I just tried the following operations:
- Bios downgraded once again to the version 1.20
- WinXP-IE 2020.5.5 installed with these options:



- Installation completed without issues but the USB mouse didn't work during GUI setup
- XP starts correctly but USB2 and USB3 don't work anyway (error code 10)
- Bios updated to the v3.30 and system restarted with same hard disk with no changes
- system restarts automatically when the XP logo appears
- XP works in safe mode only, below the Device Manager:



Maybe I have the craziest board around?
#5457diderius6⇗ @Andalu

Make a new try without the UASP driver
Dietmar
#5458Andalu⇗ @diderius6
just tried installing an XP-IE iso with acpi and sata drivers only, nothing changes. Below an image from the bios version 1.20 (older):



At moment, I have to alternatively switch between keyboard and usb mouse (+adapter) on the only PS/2 port existing.

This time upgrading to the bios version 3.3 the system restarts automatically even in safe mode
#5459diderius6⇗ @Andalu

When you succeed to start in Safe Mode, disable everything in Device Manager.
It is an driver which makes Bsod, a driver which is only loaded in normal mode.
Still I think about problems with the Sata driver

Dietmar
#5460Andalu⇗ @diderius6
I disabled almost all (perhaps even the required ) as from the images below:

   


and also the most obvious thing I had forgotten ("automatically restart" on the system failure) so I can report the irq_not_less_or_equal error code:
0x0000000A (0xB0, 0x02, 0x00, 0x804F5B33) that I got in all attempts made, until now, with the following sata-ahci drivers:

   

 

Page 365

#5461Mov AX, 0xDEAD
Zitat von ⇗ Andalu im Beitrag ¶ #5442

Hi Mov
the error code on the gui mode setup is always the same and I got it always on the same point after the license agreement window during the "Installing Devices" step:
0x0000000A (0x000000B0, 0x00000002, 0x00000000, 0x804F5B33)


No, i talk about your second error 0xdeadbeef(x,y,z,a)
0x0000000A generated outside of acpi.sys
#5462Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #5455
@Mov AX, 0xDEAD
So this means, we have the Source code for acpi.sys for XP SP3:)).

Very interesting tool BINDIFF. I look for such a tool but do not find.
Do you know how it works? Is it just looking, if for different inputs the output for two binaries
is always identic or is it more intelligent and tried to "understand" the Binaries?


⇗ @diderius6
Yes, probably sp1 sources is same as sp3, but w2003 acpi sources has little difference and look better(i think bugfixes ), OS list inside acpi.sys
 
WinXP SP1                                                            Windows 2001 SP1
WinXP SP2 Windows 2001 SP2 Windows 2001 SP1
WinXP SP3 Windows 2001 SP2 Windows 2001 SP1
W2003 RTM Windows 2001.1 Windows 2001 SP1
W2003 SP2 Windows 2001.1 SP1 Windows 2001 SP2 Windows 2001.1 Windows 2001 SP1


same in sources:

 
WinXP  SP1                                                            Windows 2001 SP1
W2003 Windows 2001.1 Windows 2001 SP1


this mean M$ not added "Windows 2001.1 (W2003)" to any XP's apci.sys, but added "WinXP SP2" to W2003 SP2 binary

BINDIFF is very smart, it compare "flow" and "blocks", not registers or other primitive  differencies

Zitat

Interesting is to compare hal.dll and ntoskrnl from XP SP1 and SP3.
hal.dll SP1 uses the old hardware clock but hal.dll SP3 not.
And even ntoskrnl from XP SP1 has a storport, this does not work together with storport from win2003


hal maybe different because MS killed DMA above 4G in hal.dll sp2+
ntoskrnl sp3 has more exportable funcs compared to sp0 or sp1

#5463diderius6⇗ @Mov AX, 0xDEAD

Some time ago I noticed,
that Windows Embedded uses the acpi.sys from Win2003.
Question in this is, what changed and where is advantage.
acpi.sys from Win2003 is more similar to acpi.sys from Vista.

When you build an 3790 XP, work all drivers from XP SP3 there
Dietmar


Dietmar
#5464Andalu
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5461
No, i talk about your second error 0xdeadbeef(x,y,z,a)
0x0000000A generated outside of acpi.sys

Here the complete error code I got when I try to install a Win-XP Integral Edition 2020.5.5 iso via usb stick connected to a usb2 port:
0xDEADBEEF (0x00000002, 0x8A226B18, 0x8A339858, 0x00000000)
#5465diderius6Hi,
somebody here who knows,
what this line means for the Sata device in Bios in DSDT?
Is Osel some kind of Operation System selector?
Dietmar

Device (SATA)
       {
           Name (_ADR, 0x00130000)  // _ADR: Address
           OperationRegion (SATR, PCI_Config, 0x74, 0x04)
           Field (SATR, WordAcc, NoLock, Preserve)
           {
               Offset (0x01),
               PMEE,   1,
                   ,   6,
               PMES,   1
           }

           Method (_STA, 0, NotSerialized)  // _STA: Status
           {
               If ((OSEL == 0x02))
               {
                   Sleep (0xC8)
               }


               Return (0x0F)
           }

           Method (_DSW, 3, NotSerialized)  // _DSW: Device Sleep Wake
           {
           }
}
#5466diderius6⇗ @Andalu

See my post

¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (200)

There it was for sure the Sata driver with exact the same behavior as yours
Dietmar
#5467daniel_k⇗ @diderius6, what is the chipset of your laptop?
Need to check datasheet

OSEL can be found in OperationRegion (GNVS, SystemMemory, 0xFFFF0000, 0xAA55) section, memory mapped registers (?!) where chipset configuration is stored.

Can you find OSEL variable in other tables? May be related to OS version.
Is really suspicious, if OSEL = 0x2, _STA (status) sleeps for 0xC8 (200 ms), way above 1.76 ms timeout value that SATA specs says.

Your DSDT has some stupid multiple OS checks.

OS version is stored in many variables:

1) stored in OSVR var
If (_OSI ("Windows 2001 SP3")) -> does NOT exist in ACPI.SYS, useless!
{
Store (0x04, OSVR)
}
2) Direct check against _OSI method:
If (LOr (_OSI ("Windows 2006"), _OSI ("Windows 2009"))) {}
3) stored in OSYS var
If (_OSI ("Windows 2001 SP2"))
{
Store (0x07D2, OSYS)
}
Search for OSYS, OSVR and (_OSI ("Windows... to find where an OS check is being performed.
#5468daniel_k
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5462
Yes, probably sp1 sources is same as sp3

MS must have changed something, as my system hangs when using acpi.sys from SP1 (original SP1 or compiled from leaked sources) on an SP3 install disc.
#5469gordo999
Zitat von ⇗ Andalu im Beitrag ¶ #5454
... I already tried almost of them but XP restarted in all attempts.
⇗ @Andalu ...can you turn off automatic reboot at the F8 menu to produce a BSOD screen...to see the error message? There may be another driver involved. Also, do you have another graphics card you can plug in the mobo video slot? That way you can turn off the internal graphics in BIOS.
#5470Mov AX, 0xDEAD
Zitat von ⇗ daniel_k im Beitrag ¶ #5468
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5462
Yes, probably sp1 sources is same as sp3

MS must have changed something, as my system hangs when using acpi.sys from SP1 (original SP1 or compiled from leaked sources) on an SP3 install disc.

Ok, i was wrong, sp3 sources different, but i dont found yet any critical difference, even extracted kernel structs (bless PDB Ripper) from acpi.pdb dont show byte shifts

After many try&tests i found MS C/C++ compiler and some options who is most similar to produce SP3 acpi.sys  - v13.10.4035 from W2003 SP1 DDK
(need update i386mk.inc + makefile.* also), bindiff show most functions compiled SP1 to be 100% byte match with acpi.sys SP3, difference is about 15 funcs:
Zitat

already done:
0.97  _ParseScope                         
0.99  _OSInterface                        
0.97  _GetPciAddressWorker                
0.82  _While
0.42  _OSNotifyDeviceCheck                
0.98  ACPIWakeEnableDisableAsync(x,x,x,x)

pending:
0.91  _AmliTestDebugPrintFunc  
0.72  _ACPIThermalTempatureRead
0.99  AcpiArbRetestAllocation(x,x)        
0.99  AcpiArbTestAllocation(x,x)          
0.96  AcpiArbRollbackAllocation(x)        
0.95  ACPIInterruptServiceRoutine(x,x)    
0.90  ACPIDevicePowerProcessPhase3()      
0.70  ACPIRootIrpCompleteRoutine(x,x,x)   
0.36  ACPIInternalGetDeviceExtension(x)



"done" mean changes to *.c to produce sp3 exact logic

#5471daniel_k
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5470
Ok, i was wrong, sp3 sources different, but i dont found yet any critical difference, even extracted kernel structs (bless PDB Ripper) from acpi.pdb dont show byte shifts

After many try&tests i found MS C/C++ compiler and some options who is most similar to produce SP3 acpi.sys  - v13.10.4035 from W2003 SP1 DDK
(need update i386mk.inc + makefile.* also), bindiff show most functions compiled SP1 to be 100% byte match with acpi.sys SP3, difference is about 15 funcs:

Thanks for looking into it!

Interesting that the original or compiled acpi.sys from SP1 works on VirtualBox and an old Sandy Bridge Lenovo laptop, but hangs on my CFL system.
Certainly SP3 code improved compatibility with newer systems.
#5472Andalu
Zitat von ⇗ gordo999 im Beitrag ¶ #5469
@Andalu ...can you turn off automatic reboot at the F8 menu to produce a BSOD screen...to see the error message? There may be another driver involved. Also, do you have another graphics card you can plug in the mobo video slot? That way you can turn off the internal graphics in BIOS.

I had already enabled the way to see the error code on bsod as reported ¶ here and replaced the graphics card without success. In the bios there is no reference to internal graphics because my cpu (i5 9400F) does not have an integrated vga.
#5473Andalu
Zitat von ⇗ diderius6 im Beitrag ¶ #5466
@Andalu

See my post

¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (200)

There it was for sure the Sata driver with exact the same behavior as yours
Dietmar

Nothing changed even using an XP ISO from the "en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974" CD to which I manually added storport.sys v5.2.3790.4173 and StorAhci driver from skullteria via nLite, besides the working acpi.sys:

- with bios v1.20 it correctly installs but usb is still not working (error code 10):


- with bios v3.30 XP starts only in safe mode:


in normal mode I got the same A5 bsod as always even disabling "all the disableable".
#5474daniel_k⇗ @Andalu

Which patched acpi.sys are you using?
That error 10 seems to be related to the qword dsdt table issue.

What is the device ID of the following devices?
- PCI Data Acquisition and Signal Processing Controller
- Unknown Device
#5475Andalu⇗ @daniel_k
I'm using acpi.sys 5048 with SHA-1: B368439FE2C052A81EF1F388EA7F5DD81FA970F3

here the device IDs:
- PCI Data Acquisition and Signal Processing Controller (VEN_8086&DEV_A379&CC_SUBSYS_A3791849&REV_10)
- for the "unknow device" now I see ACPI\ACPI000E but I have installed a different ISO from the posted images. But if I'm not wrong I seen  a different ID for the ISO of the images.
Give me please some time to downgrade the bios and then reinstall that ISO.


Edit1: I didn't need to reinstall from the beginning, it was enough to downgrade the bios to the v1.20 and then restart from gui mode since the text mode was correctly completed with the bios v3.30 before to get the usual bsod on the "Devices Installation" step.
The unknow device has now the ID ACPI\INT3450


Edit2: the posted images are from the ISO with acpi.sys 6666 of the "acpiOuterspace2001fit" package.

 

Page 366

#5476daniel_k⇗ @Andalu, no need to downgrade the BIOS.
#5477daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #5475
Edit1: I didn't need to reinstall from the beginning, it was enough to downgrade the bios to the v1.20 and then restart from gui mode since the text mode was correctly completed with the bios v3.30 before to get the usual bsod on the "Devices Installation" step.
The unknow device has now the ID ACPI\INT3450

Hmm

With BIOS 1.20 the unknown device is ACPI\INT3450 ?

With BIOS 3.30 there is no (unknown) device with the same ID?

This ID is from Intel Serial IO host controller, which is usually hidden on purpose by the DSDT table on any Windows version below 8.0.
#5478Andalu
Zitat von ⇗ daniel_k im Beitrag ¶ #5476
@Andalu, no need to downgrade the BIOS.

at moment the XP installation is impossible without downgrading to the older bios version (1.20)

Zitat von ⇗ daniel_k im Beitrag ¶ #5477

Hmm
With BIOS 1.20 the unknown device is ACPI\INT3450 ?
With BIOS 3.30 there is no (unknown) device with the same ID?
This ID is from Intel Serial IO host controller, which is usually hidden on purpose by the DSDT table on any Windows version below 8.0.


I confirm that with bios v3.30 there is not such ACPI\INT3450 but ACPI\ACPI000E.

As a little note about the bios v3.30: with acpi5048 I got the A5 bsod in normal mode but the system enters the safe mode.
With acpi666 I got an acpi bsod with both normal and safe mode.
#5479daniel_k⇗ @Andalu

Do you have a PS/2 keyboard? Try to disable the USB3 controller and see if it boots in Normal mode with BIOS 3.30.

I'm suspicious of the XHCI/RHUB related entries in the DSDT table.
#5480Andalu⇗ @daniel_k
as from the images ¶ here I disabled almost all but nothing changed, same A5 bsod occurred in normal mode
#5481daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #5480
@daniel_k
as from the images ¶ here I disabled almost all but nothing changed, same A5 bsod occurred in normal mode

Sorry, I missed that.
Did you already post the complete error code with the 4 parameters?
Sometimes we get a hint from those parameters.
#5482Andalu⇗ @daniel_k
no problem to report it once again:
0x0000000A (0x000000B0, 0x00000002, 0x00000000, 0x804F5A97)
#5483daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #5482
@daniel_k
no problem to report it once again:
0x0000000A (0x000000B0, 0x00000002, 0x00000000, 0x804F5A97)

Huh, thought you were getting the A5 BSOD in your message below:
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (365)
#5484diderius6⇗ @Andalu ⇗ @daniel_k

The DSDT tables from Bios 1.20 and Bios 3.30 are very different
Dietmar



diderius6 has attached files to this post
#5485Andalu
Zitat von ⇗ daniel_k im Beitrag ¶ #5483
[Huh, thought you were getting the A5 BSOD in your message below:
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (365)

I have to clarify which are the error codes and the circumstances they occurred.

Bios v3.30
acpi5048 (SHA-1: B368439FE2C052A81EF1F388EA7F5DD81FA970F3):

- normal mode -> BSOD 0x0000000A (0x000000B0, 0x00000002, 0x00000000, 0x804F5A97)
- safe mode -> OK

acpi6666 (SHA-1: 7CA08F984C0D4D91E554E11D643929D4A286CA7C):
- normal and safe mode -> BSOD 0x000000A5  (0x0000000D, 0x898FD4B0, 0x4449555F, 0x00000000)


Bios v1.20
acpi5048 (SHA-1: B368439FE2C052A81EF1F388EA7F5DD81FA970F3): normal mode -> OK
acpi6666 (SHA-1: 7CA08F984C0D4D91E554E11D643929D4A286CA7C): normal mode -> OK


No USB3 driver works with the bios v1.20 (error code 10 - this device cannot start).
#5486diderius6I looked for my own DSDT and I was right

in Bios from 2013 is written in DSDT for the Flex 10 (no OSEL variable at all(!))

           Method (_STA, 0, NotSerialized)  // _STA: Status
           {
               Return (0x0F)
           }

in last Bios from 2015 is written in DSDT

           Method (_STA, 0, NotSerialized)  // _STA: Status
           {
               If (LEqual (OSEL, 0x02))
               {
                   Sleep (0xC8)
               }

               Return (0x0F)
           }
#5487daniel_k⇗ @Andalu

Now it's clear.

When you can, please try this:
⇗ http://www.mediafire.com/file/x2zskq56vbla9pu

It's based on acpi6666, there are 2 variants.
#5488daniel_k⇗ @diderius6
What is the "oldest" Windows you can install?

You can fake the version by patching acpi.sys.

Rename the Windows 2001 SP1 string to:

Windows 2012 - Windows 8
Windows 2013 - Windows 8.1
Windows 2015 - Windows 10

Erase " SP1" with zeros.
#5489Andalu⇗ @diderius6
Thank so much
Unfortunately I don't understand anything about DSDT table (and not only about it )
#5490Andalu⇗ @daniel_k
acpi give me the 0x000000D1 bsod but..........

acpi2 works!!!!   

Thanksssss

 

Page 367

#5491daniel_k⇗ @Andalu

Seriously? I want a screenshot!
#5492diderius6⇗ @daniel_k

This means, that this Bsod 0x000000A5 (0x0000000D,xx,yy)
goes to

ACPIDetectDuplicateHID(x)  (brrr..)

and we have a better acpi.sys from outerspace )
Dietmar
#5493Andalu
Zitat von ⇗ daniel_k im Beitrag ¶ #5491
@Andalu

Seriously? I want a screenshot!

Thank you for the trust



Do you know that the latest bios version for my former crazy board is the 4.20?
#5494daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #5493
Thank you for the trust

I had to see it to believe it!
Nice!

Zitat
Do you know that the latest bios version for my former crazy board is the 4.20?


Yes, you're going to update it?

#5495Andalu
Zitat von ⇗ daniel_k im Beitrag ¶ #5494
Yes, you're going to update it?

I do not know. After the v3.30 it is no longer possible to downgrade, at least that's what they report.
#5496diderius6⇗ @Andalu

Dont upgrade Bios!!!
Only when you have an EEpromer and a lot of free time;))
Dietmar
#5497Andalu⇗ @diderius6
to avoid problems I have not updated the bios of the asus Q370 anymore
#5498daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #5495
Zitat von ⇗ daniel_k im Beitrag ¶ #5494
Yes, you're going to update it?

I do not know. After the v3.30 it is no longer possible to downgrade, at least that's what they report.


Was just asking.

If you have no issues, stick with 3.30, of course!
#5499daniel_k⇗ @Andalu and ⇗ @diderius6

Can you please try the latest acpi.sys 6666 from yesterday, now modified to fake Windows Vista, 8, 8.1 and Windows 10?
⇗ http://www.mediafire.com/file/hwio6yp5je1hqkq

I'd like to test the reliability of acpi.sys. On my Gigabyte Z370, in a quick test, it seems to work just fine even with Windows 10 (Windows 2015 string) version.

By doing this. acpi.sys "runs" code from DSDT table that is usually hidden by a version check. Also may expose devices that are also hidden in older versions of Windows.
Please take note of any misbehavior and new device that might be detected.
#5500diderius6Hi Daniel,
on the Asrock Fatalty K6 all 5 acpi.sys work, nice:)).
On the crazy Flex 10 no one.
Interesting, I found another compi, where the same symptoms happen of
disappearing harddisk under XP, Win7.
It is the compi with board ef10mi2.
I compare their Bios DSDT version: The version 1.4 shows this behavior,
but the very first bios version 0.26 not. In Spain this board is
in a lot of school laptops Intel® Classmate PC Marble Point (EF10MI2) and there are videos on Youtube,
how they flash their Bios back to ver. <1.4 and voila, now win7 works and I think XP also.
I compare those Bios: In old version no OSEL at all, no sleep order for Sata.
And some devices are not present. And it seems important,
to disable the USB2.0 ehci.sys driver in the DSDT table.

So, with some work I can edit my DSDT also and boot XP.
But this means, that I have to desolder the Bios chip again
and I am not sure, if this Mini laptop survives it a second time.
Would be nice to have an easy to use DSDT upload program for any Bios (also Insyde, brrr..)
Dietmar

PS: When you think about, what this mean: Intel, Lenovo force the people to install at least Win8.1.
May be the easy trick in DSDT is, just to let the Sata wait and you get Bsod 0x7B.
#5501daniel_k
Zitat von ⇗ diderius6 im Beitrag ¶ #5500
Hi Daniel,
on the Asrock Fatalty K6 all 5 acpi.sys work, nice:)).

Great! It's seems to be a pattern, desktop boards are easier to deal with.

Zitat
On the crazy Flex 10 no one.


The same Stop A5 0x2001 error?

Zitat
PS: When you think about, what this mean: Intel, Lenovo force the people to install at least Win8.1.
May be the easy trick in DSDT is, just to let the driver from the harddisk wait and you get Bsod 0x7B.


On laptops they do whatever is needed to prevent unsupported OSes from being installed.

#5502diderius6⇗ @daniel_k
No, with newer acpi.sys from outerspace )
the A5 2001 Bsod is gone. No message, no Bsod,
only that no harddisk can be found
Dietmar
#5503daniel_k
Zitat von ⇗ diderius6 im Beitrag ¶ #5502
only that no harddisk can be found

I think that our patches make acpi.sys ignore something that Windows 8.1's acpi processes.

Does Linux boots on that Flex 10? If so, can it detect the hard disk?
#5504Andalu⇗ @daniel_k
XP correctly starts on my Asus Q370 with all five acpi.sys. I don't have noticed any issue but the time for testing has been short :)

About the unknow devices, here the new recognition only with the acpi2015 version:



I'll try with asrock H310 soon.
#5505daniel_k⇗ @Andalu, thanks for testing the files.

Great news!

 

Page 368

#5506Andalu⇗ @daniel_k
all acpi versions also work on the asrock H310M-HDV and a new recognition with acpi2015 only. Also the ID for the unknow device is identical (ACPI\INT33A1):



Edit: updated the image
#5507infuscomus⇗ @daniel_k

I tested your acpi2015.sys on TRX40 Threadripper.

No good.
#5508daniel_k⇗ @Andalu

Thanks, so we finally have an acpi.sys that survives Win10 specific codes of DSDT table (at least for Intel systems)!
#5509daniel_k
Zitat von ⇗ infuscomus im Beitrag ¶ #5507
@daniel_k

I tested your acpi2015.sys on TRX40 Threadripper.

No good.

Doesn't surprise me.
AMD screwed up the ACPI tables.

Sadly, Intel is much easier to deal with (regarding desktop boards) than AMD.
#5510infuscomus⇗ @daniel_k

would you be willing to help me in trying to mod the ACPI tables to get this to work?
#5511daniel_k
Zitat von ⇗ infuscomus im Beitrag ¶ #5510
would you be willing to help me in trying to mod the ACPI tables to get this to work?

Sorry, but it's a too time consuming hit and miss task.

I've already take a look at the tables of Ryzen/Threadripper boards. Too much different than Intel's.

What I can suggest you is to search if there is a board that does work with Win7, grab its BIOS and compare the tables with the ones from your board.
#5512infuscomus⇗ @diderius6

I do have an AM4 Ryzen board (ASRock AB350 G K4) that I can confirm does work for both 7 and XP - since I lack experience with ACPI coding the only difference I can see is the AB350 uses iasl compiler 20120913 and the Threadripper uses 20190509.

It's not a huge loss if I don't get XP working on Threadripper, but it's interesting and I think it would still be cool if I can somehow manage to get it to work.
#5513diderius6⇗ @infuscomus

Can you see any harddrive on Threadripper using XP or win7
Dietmar

PS: Have you extracted the DSDT table? Is there a command "OSEL"?
#5514infuscomus⇗ @diderius6

I'm not sure at this time, windows 7 has an A5 BSOD and XP gives a black screen. I'm guessing that the storage devices will work once ACPI works.

I've disassembled my DSDT - it has OSVR for OS detection - "Windows 2001 SP1" is 0x09 so I've use notepad++ to change all the OSVR <= 0x0C parts to 0x09

Windows 7 will load the DSDT now, but it seems to get stuck on the CPUSSDT table (because parameter4 of A5 0x11 0x8 BSOD is 0x03242016)
So I'm assuming there is still something I need to fix in my DSDT.
#5515diderius6⇗ @infuscomus

I take a look at the DSDT table from AB350 and the threadripper. They are very different.
I can see, that in the Threadripper DSDT is made heavy use of OS select.
I think, that also the acpi.sys from win7 can be hacked for this Bsod.
But very strange appears for me, that with hitting F5 and chose "Standard PC" XP does not work.
This means, the problem is not only acpi related
Dietmar
#5516infuscomus⇗ @diderius6

Do you think you could hack acpi.sys of windows 7?
#5517diderius6⇗ @infuscomus
You can send me your acp.sys from win7 with A5 0x11 0x8 BSOD
and I try
Dietmar

PS: I just think, that maybe the black screen under XP on Threadripper can be the videodriver.
So make a try with VGA.
#5518infuscomus⇗ @diderius6

here



infuscomus has attached files to this post
#5519diderius6⇗ @infuscomus
here

⇗ https://ufile.io/b9oz1igy

and next better :))

⇗ https://ufile.io/n2yl4xt1

and the last one with absolute blockade of Bsod A5 (0x11,..)

⇗ https://ufile.io/dxh0is6o

Dietmar

PS: This one is build with very very old Ida. I think, it is the best, because other IDA versions show different machinecode???

⇗ https://ufile.io/yd1oggj9
and the laast one
⇗ https://ufile.io/ybkcc6ih

⇗ https://ufile.io/9otk450d   Now I am out of ideas.

Before it was like slaughter of acpi.sys. Now comes chirurg for Bsod 0x000000A5 (0x00000011,0x00000008,yyy,zzz)
⇗ https://ufile.io/ncpa34rv
#5520789
Zitat von ⇗ diderius6 im Beitrag ¶ #5382

modded acpi.sys outerspace

acpi.sys from service pack 3 for XP which you attribute to aliens ?  What about service pack 2 for windows 2003 ?
And will the modified acpi.sys be available for download as the modified iaStor.sys is available ?

 

Page 369

#5521infuscomus⇗ @diderius6

your acpi88.sys works!!! no DSDT mod required!

No USB 3.0 or NVMe just yet, I still need to integrate those drivers, but the SATA drives showed up just fine (Easy2boot has an additional command prompt portion to windows 7 setup where it lists all the drives detected)

Sorry I don't have pictures yet, phone died, recharging.

Hopefully we can now do the same for XP!



edit: added picture - NVMe driver working, USB 3.0 need to try again -

for USB 3.0 I think I forgot to include KMDF.
#5522diderius6⇗ @infuscomus

What a crazy fight with different Ida versions. Modern versions of Ida show parallel working flow diagrams??
I always think, in acpi.sys is everything done step by step. And I am right.
The last acpi88.sys I make with Ida 4.7.0.830 from 2003(!),
6 years before win7 was on the market, no Vista no XP SP2:))..
I am happy, that it works for you.
Because this crazy fight with Ida, now I understand for the very first time a lot, how acpi.sys works.
So, it gives for me also nice result
Dietmar

PS: And win7 is nothing than a clone from XP SP1.
#5523infuscomus⇗ @diderius6

can you try the same hack that worked on windows 7 acpi.sys with XP acpi.sys?
#5524diderius6⇗ @infuscomus

I thought, that I have done this hack on 28 December 2018 an acpi.sys for XP.
But just now I notice,
that this hack was not complete.
So, I try in the afternoon today, in 6 hours
Dietmar
#5525canonkong⇗ @infuscomus
TRX40 can work on win7 with the mod acpi.sys mow?
⇗ TRX40 win7 64bit driver
#5526infuscomus⇗ @canonkong

32-bit only for now.
#5527diderius6⇗ @infuscomus

This is the last possible hack for acpi.sys in XP SP3 from outerspace ) (also with the very last update from ⇗ @daniel_k ),
for the very first beginning of Acpi ACPIInitializeDDB.

There are a lot of other possibilities, but this hack works against all solved Bsods before and

0x000000A5 (0x00000011,0x00000007,xx,yy)

and

0x000000A5 (0x00000011,0x00000008,uu,zz)

Dietmar

⇗ https://ufile.io/t2ok9fmg
#5528daniel_k⇗ @diderius6

We can "ignore" most errors, but the 0xA5 (0x03) cannot be ignored.

When processing non-critical methods, acpi.sys calls ACPIBuildCompleteGeneric, which does not crashes if fails.
When processing critical methods, acpi.sys calls ACPIBuildCompleteMustSucceed, which crashes if fails.

This usually occurs with opcodes in required methods (_INI and others) that acpi.sys (still) does not understand/support.

ACPIBuildCompleteMustSucceed can be replaced with ACPIBuildCompleteGeneric, but this only works if the DSDT tables have no incompatibilities, otherwise Windows crashes with 0xA (IRQL_NOT_LESS_OR_EQUAL).
#5529infuscomus⇗ @diderius6

I'm sad to say that this did not work unfortunately - same result as before.

So I'm guessing a windbg session is now required - I'm very new to this so I'll need alot of help with it.

edit:

I have an idea -

you were thinking it might be my RTX 2070 preventing boot, so this got me thinking.

Since I know windows 7 can boot in CSM mode with the RTX 2070 I am thinking of using BOOTVID.DLL from windows 7 in XP - Import table is a match.
#5530diderius6⇗ @infuscomus

It can be also the 4TB harddisk or any other device, that is connected.
So, disconnect all, disable in Bios nearly all,
look that in Bios is all set to maximal CSM compatibility
and make new try with this new acpi.sys from outerspace )
Dietmar

PS: Use original CD connected to a Sata port.
#5531infuscomus⇗ @diderius6

will do,

On another subject regarding 4TB drives - I was able to see in a VM that these server 2003 drivers - ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (361) - allowed me to see larger than 2TB disks in XP.

But this was in a VM, real hardware might be different.
#5532daniel_kA large disk won't prevent XP from booting.

Probably the core count is the issue here, HAL or Kernel go nuts.
#5533infuscomus⇗ @daniel_k

I searched my motherboard manual and found this option -

Downcore Control
Allows you to select the number of CPU cores to enable (the number of CPU cores may vary by CPU).
(Default: Auto)

I'll see if lowering the number of CPU cores makes a difference.
#5534daniel_k⇗ @infuscomus

Didn't know you could limit the number of cores on TR. Fingers crossed!
#5535infuscomus⇗ @daniel_k ⇗ @diderius6 ⇗ @Mov AX, 0xDEAD



Yep!! that was it!! ( options available under it were labeled weirdly in BIOS Though, it was either "Two (1 + 1)" or "Four (2 + 2)" or Auto)

Damn, so the XP kernel panics with too many cores! That's a bummer.

Also, the generic USB 3.0 that Mov AX, 0xDEAD made does not work, but I found the source code for the windows 10 USB 3.0 driver (xhci and hub) in the shared source kit - Mov AX, 0xDEAD did you want to try and port that?

 

Page 370

#5536daniel_k
Zitat von ⇗ infuscomus im Beitrag ¶ #5535
Yep!! that was it!! ( options available under it were labeled weirdly in BIOS Though, it was either "Two (1 + 1)" or "Four (2 + 2)" or Auto)

Damn, so the XP kernel panics with too many cores! That's a bummer.

What is the setting that fixes it? Two or Four? And how many available cores you see in Task Manager?

Zitat
Also, the generic USB 3.0 that Mov AX, 0xDEAD made does not work, but I found the source code for the windows 10 USB 3.0 driver (xhci and hub) in the shared source kit - Mov AX, 0xDEAD did you want to try and port that?


Error 10 in controller or hub in Device Manager?

Mov AX, 0xDEAD already said that the source is incomplete, missing many include files. And, to be honest, it wouldn't help you as probably should a resource allocation issue related to ACPI.

#5537diderius6nice!!!
#5538infuscomus⇗ @daniel_k

Two (1 + 1) was the setting that fixed it.

I only went into XP textmode setup to see if it froze or not, it no longer froze.

So I haven't yet looking in task manager to see the core count (it's late I'll check tomorrow) - and I don't have PS/2 or USB 2.0 in this machine so I don't have a way to interact with XP right now.
#5539Mov AX, 0xDEAD⇗ @infuscomus

Zitat

Also, the generic USB 3.0 that Mov AX, 0xDEAD made does not work, but I found the source code for the windows 10 USB 3.0 driver (xhci and hub) in the shared source kit - Mov AX, 0xDEAD did you want to try and port that?


Hi infuscomus,

- I never tried to compile usb3.0 because part of *.h is missed, maybe they are external (from kernel tree) or maybe absense in leak.
- Sources is not identical with 8.0 binaries because they are rip from "Win 8.1/10 ARM", they want some newer functs from 8.1+ kernels (ExTimer* stuff)
- If someone can recreate missed *.h i think compiling is possible

#5540Mov AX, 0xDEADI have some news:
acpi.sys SP1 sources can be converted to be like SP2/3 version (SP3 is same as SP2, no changes in binary), bindiff now show 100% byte-match codebase, confirmed to work on few pre-skylake bioses with Windows XP SP3
#5541gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5522
PS: And win7 is nothing than a clone from XP SP1.
⇗ @diderius6 ..seems that way. I think what they have done mainly with W7 is remove the 16 bit functionality and make it more a true 32/64 -bit system. Then again, if you take all the stupid tablet stuff from W8 and W10, and built in spying and other toys, they're not all that different than XP. You guys have proved that by adapting W8 drivers to XP.
#5542gordo999
Zitat von ⇗ infuscomus im Beitrag ¶ #5529
So I'm guessing a windbg session is now required - I'm very new to this so I'll need alot of help with it.
⇗ @infuscomus ...do you actually have a remote connection using windbg to XP? I started on that a while ago but had to put it aside while I did other stuff. I am just getting back to it now.

I had a remote connection from a W7 host to a W7 and W10 target using a USB to serial adapter on the host. I was able to run windbg on the host and trace through the W7/W10 target OS's. At this time I cannot re-establish the connection to either W7, W10, or XP.

There are some tricks to learn when using windbg but it's not all that difficult at a basic level. There is so much depth to windbg as to what it can dump and how to do that. That's the hard part, the language can get pretty heavy in how to address it.
#5543infuscomus⇗ @daniel_k

Two (1 + 1) gives 8 cores and 16 threads.

Can you try to patch the kernel to handle more CPU cores?
#5544infuscomus⇗ @canonkong

Your patched Windows7 x64 ACPI driver worked - however none of the attached storage devices were detected, no SATA or NVMe even though they showed up just fine in Windows7 x86.
#5545infuscomus⇗ @diderius6 ⇗ @daniel_k ⇗ @Mov AX, 0xDEAD

I tested these USB 3.0 drivers

backported win8.0 usbxhci driver
patched amdxhc 1.1.0.0276
patched etronxhci driver

along with daniel_k's acpi2015.sys

None of these USB 3.0 drivers are working on my Threadripper machine. All my motherboard USB 3.0 ports are useless :(
#5546diderius6⇗ @infuscomus

Take a look in Bios, if all those USB ports are enabled
and if there are other settings too.
What shows USB 3 xhci and USBhub in device manager
Dietmar

PS: Does USB mouse, keyboard work there?
#5547infuscomus⇗ @diderius6

No USB Mouse or Keyboard, so I'll need a remote desktop session to check device manager but I don't have network drivers installed in this XP image, so I need to reimage it with the network drivers installed.
#5548canonkong⇗ @infuscomus
Here is two mod win7 64bit acpi.sys for TRX40, you can try it.
#5549infuscomus⇗ @canonkong

the one you posted yesterday already got past the A5 BSOD,
what changed in this acpi.sys?
#5550canonkong⇗ @infuscomus
I used other ideas to modify the file, hope it can work fine.

 

Page 371

#5551daniel_k
Zitat von ⇗ infuscomus im Beitrag ¶ #5543
Can you try to patch the kernel to handle more CPU cores?

I have no idea how and where Windows enumerates and manages cores.

Zitat
No USB Mouse or Keyboard, so I'll need a remote desktop session to check device manager but I don't have network drivers installed in this XP image, so I need to reimage it with the network drivers installed.


I'm afraid that it'll be useless.

Probably issue with ACPI x PIC (interrupt controller).

Try to load XP setup in Standard PC (no ACPI), press F7 when you see the "Press F6 if you need to install a third-party SCSI or RAID driver".

#5552infuscomus⇗ @daniel_k

Standard PC froze on "Setup is Starting Windows" - even with downcore set to Two (1 + 1)

I did a quick test with a server 2003 ISO to see if it also had a kernel panic over CPU cores - it did not and gave an A5 BSOD (same BSOD as windows 7), so there is a way to fix the panic somewhere in 2003 kernel.
#5553daniel_k
Zitat von ⇗ infuscomus im Beitrag ¶ #5552
I did a quick test with a server 2003 ISO to see if it also had a kernel panic over CPU cores - it did not and gave an A5 BSOD (same BSOD as windows 7), so there is a way to fix the panic somewhere in 2003 kernel.

Unfortunately we don't have a modded Server 2003 acpi.sys.
Try to use the one from XP.
#5554diderius6⇗ @infuscomus

If the very laast acpi.sys from outerspace ) not works,
you can send me your win2003 acpi.sys and I try to mod it against
Bsod A5 (0x11,0x08,xx,yy)
Dietmar

PS: May be it is really better, always to use the kernel from win2003.
But I dont know if it can be hacked, so that it appears always like XP SP3 to outer world.
#5555diderius6I make a strange discovery.
After I succeed to change in Bios from Sata => Standard Mode (IDE),
I get message, that the acpi.sys is defect (acpi.sys ist beschädigt).
This message for acpi.sys from outerspace ) I never saw before.
Now I change acpi.sys to the 5048 acpi.sys (very last version from ⇗ @daniel_k )
and modd it against Bsod A5 2001.
And voila, now my harddisk can be seen and for the very first time
I can direkt install XP to the most most crazy notebook Flex 10 Ideapad from Lenovo,
because the trap in Bios about sleeping for Sata is now over;))
Dietmar

PS:This was the hardest job ever to enable full Acpi on this Baytrail notebook. No mouse, brrr..;))
This is with the last x64 Bios for win10^^.

acpi.sys laast 5048 version also against A5 2001 Bsod
⇗ https://ufile.io/k778gsaw

Edit: Without acpi all USB2, USB3, USB mouse work. With acpi even no USB mouse.
In device manager is shown correct xhci Host controller and Usb3 root Hub but the usb devices have vid_&pid_
000000 numbers or are shown as unknown devices. This is for the modded USB3 diver from Win8 and from the AMD USB driver from ⇗ @daniel_k true. I also tried Daniels acpi15.sys, no difference.

#5556diderius6Found in Source in NT\public\sdk\inc\ks386.inc
for XP SP1 but this  00020H means 32 processors maximal is also true for Win2003 from the leaked source.
In the Debug version of ntkrnlmp.exe XP SP3 it is also mentioned MAXIMUM_PROCESSORS
but on other place or file is its value 00020H  declared.
So, first test is, if this win2003 can run on Threadripper. If yes, the problem is at other place.

;
; Miscellaneous Definitions
;

MAXIMUM_PROCESSORS equ 00020H
INITIAL_STALL_COUNT equ 00064H
IRQL_NOT_GREATER_OR_EQUAL equ 00009H
IRQL_NOT_LESS_OR_EQUAL equ 0000AH
MUTEX_ALREADY_OWNED equ 000BFH
THREAD_NOT_MUTEX_OWNER equ 00011H
#5557LabudicoHello! Please help me to choose right acpi for Asrock Z390M Pro4. If i select i486 mode windows XP installed with all drivers for SATA, NVME SSD, PAE 128GB. But in acpi mode i have these BSOD



Labudico has attached images to this post  ⇗ IMG_20201025_005911_187.j
#5558diderius6⇗ @Labudico

Make try with this acpi.sys
Dietmar

⇗ https://ufile.io/3504p4rp
#5559infuscomus⇗ @diderius6

In NT\public/sdk/inc/ntpsapi.h there is also

// begin_nthal

#if defined(_WIN64)

#define MAXIMUM_PROCESSORS 64

#else

#define MAXIMUM_PROCESSORS 32

#endif

// end_nthal

you have the SP1 code right?
can you compile both an original SP1 ntoskrmp\hal and a modded ntoskrmp\hal with the  increased maximum processor changes to ntpsapi.h and ks386.inc ?
This way we can spot the differences to see what we might need to change to increase CPU core count support.
#5560infuscomusUSB 3 works correctly in windows 8.1 but ntoskrnl extender would need extra functions for it to work.

missing functions -
ExCancelTimer
ExDeleteTimer
ExSetTimer
ExAllocateTimer
PoFxCompleteIdleCondition
PoFxCompleteIdleState
PoFxUnregisterDevice
PoFxReportDevicePoweredOn
PoFxIdleComponent
PoFxCompleteDevicePowerNotRequired
PoFxActivateComponent
PoFxStartDevicePowerManagement
PoFxRegisterDevice
PoFxSetDeviceIdleTimeout
ZwUpdateWnfStateData
ZwQueryWnfStateNameInformation



that's alot of work to do.
#5561diderius6⇗ @infuscomus

Have you tried to install the very first win2003 on Threadripper board?
If it works, the number of processors is not the main problem
Dietmar

PS: There may be also other files needed for XP boot, which depends on MAXIMUM_PROCESSORS.
#5562infuscomus⇗ @diderius6

server 2003 RTM? I have not.

The one that worked was server 2003 SP2.
#5563infuscomus⇗ @diderius6

Server 2003 RTM - has the problem.

Server 2003 SP1 - does not have the problem.
#5564diderius6⇗ @infuscomus

MAXIMUM_PROCESSORS appears at >45 places in Source code from XP SP1 for i386.
Now I am looking, in which of this files the number of MAXIMUM_PROCESSORS is set to 32 and I simple change it everywhere to 64 and compile
Dietmar
#5565diderius6MAXIMUM_PROCESSORS is set to 32 in

hal386.inc
Ks386.inc
ndis.h
ndismain.h
ntddk.h
nthal.h
ntifs.h
ntpsapi.h
wdm.h
winnt.h

So, at least MAXIMUM_PROCESSORS appears in halmacpi.dll (not mentioned in Debug halmacpi.dll) and ntkrnlmp.exe (in Debug version mentioned)
Dietmar

PS: Other variables may depend on MAXIMUM_PROCESSORS <= 32, so there is no garantie, that it will work.

Until now I do not find in the Debug Binaries from XP SP3, at which place MAXIMUM_PROCESSORS is set to 32.
This may be, because the place, where it is set to 32, may have another name.

 

Page 372

#5566kukonosau⇗ @diderius6
Hello. WinXP64 is unstable working on Ryzen. But how do you fix errors IRQL_NOT_LESS_OR_EQUAL and SYSTEM_SERVICE_EXCEPTION in post #2202? And how to programmers drivers? Where is literature? I must learning C/C++ or 7IDAFreeware?
#5567infuscomus⇗ @kukonosau

I would suggest using XP-32bit instead.
#5568kukonosau⇗ @infuscomus
Okay, I know. But I am interesting x64 Edition. Is Patch Integrator for XP64 exist? ACPI from #2202 by diderius6 is last acpi for XP64? Where is last acpi for XP64 for Ryzen?
#5569infuscomus⇗ @diderius6 ⇗ @daniel_k ⇗ @Mov AX, 0xDEAD

I setup an XP install in VMWare with acpi,ahci,usb3,pae all integrated - imaged that VM and then restored that VM to my real threadripper hardware.

I've gotten to the XP desktop on threadripper in ACPI mode with downcore option, but I have no USB and no network - however I can see there is an XP driver for my NIC HWID but without input I can not install it.

any way to install the NIC drivers without input?
#5570diderius6⇗ @infuscomus

With Nlite this is possible
Dietmar

PS: I just put all needed XP SP1 files from Source for 32 => 64 processors,
now compiling on very fast compi, cross fingers:))..
Until now no errors..
#5571Labudico⇗ @diderius6
Thank you! This ACPI work!
My PC:
CPU: Intel i3 8350k
MB: AsRock Z390M Pro4
RAM: 32GB (2x16) Samsung ECC Reg
VGA: GTX 1060 6GB
SSD Sata and SSD NVME
I installed system from DVD-rom, Easy2boot and Yummi not working on my motherboard, i don't now why, whith him only in i486 mode.
whith this ACPI all work good, if only one problem - not work restart - system freeze after end all tasks, PC off with only when click Shutdown. It's possible to change ACPI on istalled system?

My Windows image with: SATA driver, NVME driver, ACPI (Dietmar),  PAE 128GB, USB 3.0 driver - see on my screentshot - I upload this image on the mega.nz



Labudico has attached images to this post  ⇗ 2020-10-26_003927.png
#5572diderius6⇗ @Labudico

Niceee:))!

I think, soon we have XP SP3, which can run on 64 cores.
Just compare normal XP SP1 files with them with updated for 64 processors and put this changes to XP SP3 in binaries,
Dietmar
#5573Andalu
Zitat von ⇗ infuscomus im Beitrag ¶ #5412

Unrelated to ACPI
it seems that win2k3 supports accessing larger than 2tb disks - and the import tables match XP.


It doesn't work in XP SP3 on a 4TB disk connected to a sata port:



nothing changes even using the Paragon GPT Loader included in the WinXP-IE 2020.09.09 ISO.
#5574infuscomus⇗ @Andalu

damn, I was hopeful it would work because it worked in a VM, but I guess not.
#5575diderius6Compiling is ready, in 1 hour(!) XP SP1 compiled.
Ntoskrnl, hal.dll are all there with 32 => 64 processors.
But I get 1 error in build log:

12>NMAKE :  U1073: don't know how to make '..\analysis\filtercf\obj\i386\dvranalysisfiltercf.lib'

Now I change files against new compiled and look, if XP SP1 starts with them
Dietmar
#5576lsmlcxWhere can i get the WinXP-IE 2020.09.09 ISO ?
thanks.

--------------------------------------------------
I have got.
⇗ https://www.zone94.com/downloads/softwar...ntegral-edition
#5577LabudicoDriver for Intel(R) Ethernet Connection (7) I219-V where i can donwload for Windows XP?
#5578diderius6⇗ @Labudico

Until now, they do not exist. Until now, very last version for XP is i218 (all versions)
Dietmar
#5579Andalu⇗ @infuscomus
I too had hoped for that. I still don't remember the procedure I applied a few years ago to have a 4TB MBR disk recognized.
#5580Labudico
Zitat von ⇗ lsmlcx im Beitrag ¶ #5576
Where can i get the WinXP-IE 2020.09.09 ISO ?
thanks.


Image based on WinXP-IE 2020.09.09 for AsRock Z390M Pro4
⇗ https://mega.nz/file/UYVEABwb#tkfb1STY4a...rlFD-vDSTIr_x3o

Cleaned WinXP-IE image:
⇗ https://mega.nz/file/sYEngaRL#ceX3Nc8iZc...f8TxyBltcu3VsbU

 

Page 373

#5581diderius6Yeppp,
miniXP with full acpi support starts with brandnew for 64 processors build

ntkrpamp.exe
halmacpi.dll

Now I only need a compi with 64 processors ;))
Dietmar

#5582infuscomus⇗ @diderius6

can you PM me the ISO? I'll test it.
#5583diderius6⇗ @infuscomus

Until now, it is not possible to build an *.iso
from the files of the leaked XP SP1 source.
I can send you my minixp with 64 processors for hal.dll and ntoskrnl.exe,
it has Iastor driver and full acpi support, it should run in any virtual surroundings
Dietmar

Just copy and paste it to your harddisk and after run diskcheck, thats all.
At once we will see: Works or not. May be others files build for 64 processors are also needed.
I have them.
#5584infuscomus⇗ @diderius6

OK, send me your minixp.
#5585schreibersteinOkay... Back to XP...

I have recently upgraded my computer to the Z490 platform.

- Motherboard: Gigabyte Z490 Vision D
- CPU : Intel Core i9 10850K
- RAM: 4 x 16GB DDR4 3200 MHz (64GB)
- GPU - SLOT 1 : Sapphire AMD Radeon RX 5700 XT Pulse
- GPU - SLOT 2 : Sapphire AMD Radeon 7970 Dual-X (3GB VRAM)
- Intel NIC Onboard : i225 2.5G (8086:15F2)
- Intel NIC Onboard : i219-V 1G (8086:0D4D)
- Audio: Realtek ALC 1220 (compatible OOTB with last XP driver)

Attached via Exsys 1010 PCI-Express to PCI box for enhanced XP functionality
- Intel PRO/1000 PCI card
- Creative Audigy 2 ZS

Due to a slight lack of time, I decided to install via the XP Integral Edition 2020.9.9.

I did not look into XP further previously on my Z390 Designare in late 2019 after I encountered several deal breaking issues:
- AMD USB XHCI driver is awful => Breaks 16-Bit applications (NTVDM crashes immediately)
--> Dead NTVDM also resulted in many program installers not working (perhaps due to 16-Bit code paths for compatibility)
--> USB devices often did not work upon reboot
--> Flaky connection
--> Low transfer speeds
- Booting was unreliable (often stuck on black screen)
- Switching graphics drivers would result in annoying black screen (only safe mode workaround)
- Less than 1GB of RAM usable
- Slow boot

When my used Nvidia Geforce 780 GTX just randomly died, I did not continue my experiments.
Now I have a Radeon 7970 and it is excellent.

I was at first scared to purchase a motherboard (Z490 Vision D) without any PS/2 ports. (You may purchase the Vision G variant which has one PS/2 port where both keyboard and mouse can be connected via a Y-cable adapter)
However, the new Windows 8 based XHCI driver works absolutely flawless! So, no regrets in regards to giving up PS/2 for good.
I NEVER had any issues so far. Installation worked fine. Very stable and good speeds!
Excellent, native experience! And best of all, NTVDM works and 16-Bit applications are not a problem anymore.

------

Right now, I am using XP with:
- Backported Microsoft XHCI driver
- Backported Microsoft AHCI driver (should probably switch to Intel RST based driver, but don't know which one as of right now)
- Integral patched ACPI.sys for modern systems
- Integral HAL timer patch

It works much much better than last year! :-)

I also attempted the 4GB and ALL RAM patch for ntoskrnl, but it did not work properly:
The system boots with both configurations and detects 4GB or 63.xGB respectively.
Problems:
- daniel_k Creative Audigy driver audio output is only noise (ASIO and DirectSound can work fine though, but not as Windows Mixer device) - Realtek works just fine
- When NIC and Audigy are used, the system can just hang
- Windows GDI (UI, scrolling, etc.) performance is DRAMATICALLY reduced! Window moving is choppy, scrolling in browser is awfully slow. TOM2D benchmark score decreases from 1400 to 400

Strangely, prime95 and other memory intensive benchmarks did not report any errors, crash the system, or report any corrupted results, even when it used way more RAM than the detected 890 MB.

I patched the files myself via the presumably latest patcher.
I hope memory detection can be improved by extending XP (perhaps with the newly discovered source code) to not use any conflicting memory regions.
At least 4GB would be very sweet. Or at least more than 1. Cannot imagine 1GB used to be considered "WOW! THATS OVERKILL!"

Some 2000 workloads are really fine on this machine. But opening a web browser in 2020 will really cripple this machine.
Old games, old apps, EAX sound work as they should.
It would be nice to get Intel Turbo Boost. It was enabled (?) by default on my Z390 Designare XP setup (4.8 GHz), but on my Z490 setup it is LOCKED at 3.6 GHz, no matter the workload.
(Turbo Boost works on any other operating system)
And yes, hyperthreading is enabled and I see 20 threads.
Boot is also significantly faster. When the boot screen disappears on my 5700 XT, my 7970 gets activated as primary display output. The 5700 XT is only used when a MS-DOS application goes into fullscreen mode.
I have a KVM-Switch and easily can switch inputs for this purpose.

It would also be nice to have some kind of native Intel network driver for any of the onboard NICs.

Overall, I am very very happy to see so much progress over the past year, especially in regards to the USB3 driver.
Terrific work!

Thank you very much to everyone involved!

Cheers,
schreiberstein
#5586diderius6In acpi.sys Debug version of XP SP3 is

MAXIMUM_PROCESSORS

not mentioned

Dietmar
#5587AndaluThanks to the own formatting utility the WD external USB3 4TB disk drive is now correctly recognized in XP:



Now I have to find a solution for the seagate 4TB disk
#5588Andalu⇗ @schreiberstein
thanks for your very complete report which is an excellent reference for those who will choose to use XP on a comet lake system .....I am tempted too :)

I am confident that the PAE issue can also be solved.
#5589infuscomus⇗ @diderius6

So I was not sure how to properly get your minixp onto my XP SSD - So I instead decided to swapout the ntoskrnl and hal on an original XP SP1 ISO with the modded version and rebuild the ISO use nlite.

XP_SP1_MOD.ISO - gets to "Setup is Starting Windows" and then...  reboots immediately! damn!

does SFC check ntoskrnl and hal? if so, how do I overwrite it?

-----

Can you try compiling again just with fewer changes this time?

try changing only these lines of code?

ntpsapi.h - 32 -> 64

nthal.h - 32 -> 64

ks386.inc - 00020h -> 00040h

hal386.inc - 00020h -> 00040h - there are 3 hal386.inc in XP source, did you get them all?
#5590sashbbbbHello friend!
Need new acpi.sys Windows Xp for notebook lenovo laptop 100-15iby (Intel Celeron N2840-Bay Trail-M 2160 МГц, DDR3L 2 ГБ)
All aspi 2019 (WinXP-IE Optional Patch Integrator v2.3.4 Stable) not working!
Replacing files (storport.sys,STORAHCI.inf,storahci.sys,)gave nothing!
Not working Windows PE, Windows XP SP1, Windows XP SP2, Windows XP SP3,Windows 2003.
working only all windowsx86x64 7,8,10, 7PE,8PE,10PE,

MAXIMUM it turned out
windows starts to load blue screen appears and the computer shuts or error 0x000000b4



sashbbbb has attached images to this post  ⇗ led of.jpg  ⇗ b4.jpg
#5591smedos
Zitat von ⇗ schreiberstein im Beitrag ¶ #5585
Okay... Back to XP...

I have recently upgraded my computer to the Z490 platform.

- Motherboard: Gigabyte Z490 Vision D
- CPU : Intel Core i9 10850K
...

- Integral patched ACPI.sys for modern systems



Which version of acpi.sys are you using?

I cannot find the correct acpi.sys for my Gigabyte B460M AORUS PRO (chipset B460 Express) board with Comet Lake CPU.
Windows XP installation stops very early when it detects hardware.

Maybe I need to disable some options in the BIOS?
#5592canonkongI successfully modified the win7 64bit ACPI.sys and no A5 BSOD no A5 BSOD any longer.

#5593infuscomus⇗ @diderius6

also, found a comment in allproc.c

   // Loop asking the HAL for the next processor.   Stop when the
   // HAL says there aren't any more.
#5594diderius6@infuscoumus

I make a new xpmini,
with all the files that are avaible from XP SP1 all modded for 64 processors.
Most easy is, to copy and paste them on a harddisk, run diskcheck and run them.
Other possibility is, to change them all (!) one by one on the setup *.iso CD from XP SP1
(as long as there is a file with this name also on CD)
Dietmar

PS: I think, much more files depends on processors 64. And this is for us until now the only way.
This minixp works on my compi, but I dont have 64 processor cpu ;))..

"there are 3 hal386.inc in XP source, did you get them all?"
Yes, I check before compiling everything twice and so it works.
#5595infuscomus⇗ @canonkong

I didn't know you had a threadripper system -

Can you test to see if XP has the same behavior on your system as it does on mine? (not booting when all cores are enabled)

 

Page 374

#5596diderius6⇗ @sashbbbb

Bsod  0x000000b4 means  VIDEO_DRIVER_INIT_FAILURE,
so you have to enable vga video on boot
Dietmar
#5597canonkong@ infuscoumus
It is my friends PC, he only help to test win7 64bit, because he still need it to work.
#5598infuscomus⇗ @canonkong

Oh OK, no worries then.
#5599infuscomus⇗ @diderius6

Just to be sure, what are the steps needed to setup your minixp? I don't want to mess it up.

can I have the .PDB symbols for your modded ntoskrnl and hal?

also, have you tried integrating your modded ntoskrnl and hal into an original XP SP1 ISO? If not can you try that? I want to know if it also immediately reboots on your machine too.
#5600diderius6⇗ @infuscomus

The story, how I build this minixp is 12 years ago.
Microsoft wrote about XP, that it is not possible to build such an XP,
without any WPA and so on^^.
I took a look at Windows Embedded,
how there XP image is build.
And this procedure I repeat step by step and the result is this minixp.
I think, that you do not need to repack the drivers, just replace them unpacked on CD,
one by one. I have not tested. It can only work on a CD, where you have integrated Iastor.sys via Nlite for example.
Any Storport driver does not work with XP SP1. In a virtual machine it is not needed to integrate the Iastor driver,
because it can use the IDE driver from XP.
The only problem, why it may be not work is, that until now not all Source Code is there,
so some files are from original XP SP1
Dietmar

PS: It works on any compi, where iastor works. When you get Bsod 0x7B you have to change in registry
of the minixp the VEN_&DEV_ number to this from your PC.
When you get "Ntldr not found" you forget to run diskcheck after copy and paste of all the files from minixp.

PDB
⇗ https://ufile.io/spqvw4zu
#5601infuscomus⇗ @diderius6

OK and regarding the installation of minixp

1) format existing XP drive

2) extract minixp.7z to XP drive

3) run diskcheck on new minixp drive

--

anything else needed?
#5602diderius6⇗ @infuscomus

Hi,
yes, may be you have to change the VEN_&DEV_ number for the Sata Iastor in the registry of the minixp
to yours. On a virtual machine you can use the IDE driver. Storport does not work.
Dietmar
#5603infuscomus⇗ @diderius6

diskcheck doesn't work in cmd on windows 10, what have I missed?
#5604diderius6@ infuscomus

You can run diskcheck on any other compi,
where you connect this harddisk with minixp
Dietmar
#5605infuscomus⇗ @diderius6

how do I run diskcheck?

If I skip diskcheck does it work?
#5606diderius6⇗ @infuscomus

I think, you get "ntldr not found".

When you have working XP,
connect your harddisk with minixp and run Extras -> Diskcheck (with correcting errors in filesystem) (in XP at the place above defrag)
Dietmar
#5607diderius6⇗ @infuscomus

I just try your idea to build an *.iso from this minixp.
In a first step I replace all drivers from XP SP1 with 64 cpu, without recompress them.
Cant believe,
works:))

Dietmar

PS: So, I am able to build an XP.iso with all the files from leaked and modded XP SP1.
#5608isopc1999a⇗ @canonkong
How stable is windows7 on TRX40  motherboards?
#5609infuscomus⇗ @diderius6

I may have built my modded XP SP1 ISO incorrectly - can you send me yours?
#5610diderius6⇗ @infuscomus

When I change all files to the modded ones on *.iso
it also reboots for me.
So, until now only minixp
Dietmar

 

Page 375

#5611infuscomus⇗ @diderius6

I'm going to send you the hard disk imaging software I use - can you use it to image your minixp disk so I can easily restore an exact copy to my machine?
#5612diderius6⇗ @infuscomus
I think, this software can make problems, because it is very unnormal XP.
Just copy and paste the files from minixp to your harddisk
Dietmar
#5613diderius6⇗ @infuscomus

I make a try, with only replacing hal.dll and ntoskrnl.exe (all full acpi versions)
with the modded files on the XP installations CD.
Gives also reboot after message "Setup starts Windows".
This means, that there are other dependencies too on the installations CD,
that I dont know, so only minixp
Dietmar
#5614diderius6⇗ @infuscomus
Prepare your harddisk with RMPrepUSB 2.1.739, harddisk in an usb box
Dietmar
#5615LabudicoWindows XP on AsRock Z390M Pro4

#5616infuscomus⇗ @diderius6

I successfully copied your miniXP onto my SSD.
I saw 2 options in your boot menu so I tested both.

Unfortunately, immediate reboot, same as XP SP1 ISO.

So it seems 32->64 MAXIMUM_PROCESSORS is not the solution.
#5617infuscomus⇗ @diderius6

In KeStartAllProcessors of 2k3 SP1 kernel and later there is some extra code not in XP kernel.



I'm not sure if this is what makes it work on threadripper though.
#5618canonkong⇗ @isopc1999a
Work very stable, and I also test the MOD ACPI.sys on an A5 BSOD intel 10th notebook, it also work well, no A5 BSOD.
#5619diderius6⇗ @infuscomus

Now a Windbg session can show you all,
why reboot happens
Dietmar
#5620sashbbbb
Zitat von ⇗ diderius6 im Beitrag ¶ #5596
@sashbbbb

Bsod  0x000000b4 means  VIDEO_DRIVER_INIT_FAILURE,
so you have to enable vga video on boot
Dietmar


When enable vga video on boot, the computer thinks for a long time at boot and then turns off.
Needed aspi.sys on the basis of Windows 8 or Windows 7.
#5621diderius6⇗ @infuscomus

Today in the afternoon (in 7 hours) I try to build a minixp for 64 processors and full acpi with IDE drivers
Dietmar
#5622diderius6⇗ @infuscomus

May be the reason for reboot of minixp is just,
that the driver for the Sata harddisk cant be loaded.
And when it is an AMD board,
iastor will not work there at all
and I think an IDE driver also not
Dietmar

PS: Storport driver does not work under XP SP1.
#5623infuscomus⇗ @diderius6

I recall you said XP source code has a storport, does that work?
#5624isopc1999a⇗ @canonkong
Good news for upcoming platforms users
#5625diderius6⇗ @infuscomus

This storport driver from XP SP1 sources does not work together
with the driver from ⇗ @skullteria,
I tested
Dietmar

 

Page 376

#5626infuscomus⇗ @diderius6

try this storahci maybe?

⇗ https://sourceforge.net/projects/storahc...ows-2003/files/

source code is available too
#5627skullteriaWell, Storport from XP SP1 or Server 2003 RTM has missing functions than 2003 SP1 or SP2 versions
#5628diderius6⇗ @infuscomus ⇗ @skullteria

Yes, I tested a lot of different storport.sys
together with the new storahci.sys driver from Kai.
Does not work on XP SP1
Dietmar
#5629ruthanWith source code, is not possible now add just something like WinXp start step by step, or some more debug messages or info, about method / line when it crashes or something like that? To make crashes more user friendly?
#5630diderius6⇗ @ruthan

Not for all files there is Source Code.
And most what you ask for can be done,
just crazy hard work
Dietmar
#5631infuscomus⇗ @diderius6 ⇗ @daniel_k

How do I tell XP to not prompt with the Add Hardware Wizard?

I want to get the NIC driver installed so I can remote desktop into it to see what device manager says about the USB not working, but the prompt is preventing the NIC from installing.
#5632ruthanI did same thing, sideloaded NIC drivers, but it was just through nlite, NIC was detected during installation.. not through some bat installer etc.
#5633ruthanOther option is use Paragon HDD Suite - highest editions, they have P2P adjust was means that they are able from boot CD / USB add some drivers to existing system.. Other option is just temporarily add some NIC, which have already build in XP drivers.
#5634infuscomus⇗ @ruthan

The backported USB 3.0 drivers not working is making this way more of a hassle than it should be.
#5635ruthanLets start with NIC drivers, its more easier..

 USB is other matter, more complicated - i made some spread sheet about it:
⇗ https://docs.zoho.com/sheet/published.do...22a5b950420cb22  you really need to connect USB devices one by one, to discover and avoid ones which are causing login screen black screen freeze.

  Maybe, maybe if these ebay Chinese PS/2 PCI-E cards are complete fakes, now with source codes some can make them working to avoid these problems.
⇗ https://www.ebay.com/itm/PCI-Express-To-...8oAAOSwtzVfZ5Iw

The following contents have been linked to this post:
#5636infuscomus⇗ @ruthan

The black screen freeze was caused by having too many CPUs - more than 32 and XP dies.

USB 3.0 not working is a separate problem.
#5637diderius6⇗ @infuscomus

Set up a XP SP1 on Threadripper with the acpi.sys from outerspace ) with reduced processor number.
Then change all files against the files from minixp. Winlogon you can change or not, 2 different tries.
config (registry) do not change against the config from minixp.
Then set the processor number to full and see what happens
Dietmar

PS: Next try would be vice versa: Change only config on minixp and add the missing drivers for the harddisk to minixp.
#5638infuscomus⇗ @diderius6

I'm not sure how to setup XP SP1 without storport - I have no AHCI driver without it.
#5639diderius6⇗ @infuscomus

In your special case I think the only possibility is to boot XP SP1 from Ram

Dietmar
#5640infuscomus⇗ @diderius6

regarding the NIC add hardware install wizard prompt do you know of a way to skip it? - remember I don't have any input devices at the moment.

 

Page 377

#5641diderius6⇗ @infuscomus

I do not know a way to do this.
The only way in my eyes is, to integrate the Nic driver in the Setup CD
Dietmar
#5642ruthan
Zitat von ⇗ infuscomus im Beitrag ¶ #5636

The black screen freeze was caused by having too many CPUs - more than 32 and XP dies.


 Are sure, i would expect some bluescreen instead of that.. regardless, i saw zillions of black screen caused just by connected incombatible USB devices to port, even without any drivers.
#5643infuscomus⇗ @ruthan

I'm sure its a more than 32 CPUs problem - I can repeat the freeze by just turning on more CPU cores.
#5644Mov AX, 0xDEADHi ,

Unfortunately HAL XP SP1 sources is not same as SP3 version, probably W2003 sources was used (for example some fields in binary was changed to from "long" to "long long",  same changes applied to W2003 HALs sources )
Also SP2/SP3 HALs was compiled with disabled definition _HALPAE_ (important option for translation physical adresses + dma stuff), so physical adresses are equalent to usual Pointer to memory.
If you try to repeat sp3 build and disable _HALPAE_, you will get compilation error on few functions because MS did some other changes to make it compilable
#5645daniel_k⇗ @Mov AX, 0xDEAD

Even with the patcher you've guide me to create, much more patches are needed?
Do you think it's possible or feasible to completely replicate PAE from W2003?
#5646infuscomus⇗ @Mov AX, 0xDEAD

I'm still not having any luck with USB 3 on threadripper - do you have any new drivers I could try?

also, any news on ntoskrnl extender?
#5647Andalu
Zitat von ⇗ infuscomus im Beitrag ¶ #5412
it seems that win2k3 supports accessing larger than 2tb disks - and the import tables match XP.

The w2k3 drivers worked in XP for my seagate 4TB GPT disk, but only if mounted on a sata to USB3 adapter with the ASM1051 chipset and its older firmware version (101026_00_68_00).
None of the other adapters I have tried work (chipsets JMS577, ASM1153E, VL715) or maybe I need to find the older firmware versions for them too.
With the original XP v5512 drivers the same GPT disk is not detected.

Below the image with the 'bytes per sector' (512) as recognized in Win10 for the drive connected to a sata port and if inserted in the original USB3 enclosure (a seagate expansion with the JMS577 chipset):



The same GPT disk recognized in XP with the ASM1051 sata to USB3 adapter (4096 'bytes per sector'):

#5648diderius6⇗ @infuscomus

On this weekend I make a try for ramboot of my minixp.
This is very interesting for me also,
because this XP will be booted on any compi
without any modification
Dietmar
#5649Mov AX, 0xDEAD
Zitat von ⇗ daniel_k im Beitrag ¶ #5645
@Mov AX, 0xDEAD
Even with the patcher you've guide me to create, much more patches are needed?
Do you think it's possible or feasible to completely replicate PAE from W2003?

We patched only place where hal select creating dma map registers or not, but after looking at sources i see much more places with checks about active PAE or not. Problem is lack of sp3 sources, for controlling PAE MS used newer variables, W2003 SP2 and WinXP SP3 HAL's sources is next generation, but bindiff show many changes between.
Currently i dont see any tips to improve SP3 HAL, it work properly with "proper" vendor's drivers, so maybe HAL itself is good enough.
Also i know a little about DMA, too "dark" place for me
#5650Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #5646
@Mov AX, 0xDEAD
I'm still not having any luck with USB 3 on threadripper - do you have any new drivers I could try?
also, any news on ntoskrnl extender?

Hi infuscomus,
- I dont have more usb3 drivers, Win8.0 was last, Win8.1 require implementing TimerEx functionality, i just lazy to do this ):
- What news are you talking ? extender has enough exports required by popular drivers, i dont know what more to add, some ask me to add videodriver's funcs, but it is useless because native vista+ video drivers not compatible with XP due significal changes in graphic subsystem
#5651infuscomus⇗ @Mov AX, 0xDEAD

I think it would be good to get the Windows 8.1 USB 3 driver working in XP to have compatibility for the few remaining USB 3 controllers that don't work with the windows 8.0 driver.

How much extra work would be required to get the windows 8.1 USB 3 driver working?
#5652gordo999Question on the use of windbg to trace the code on system modules. My experience with windbg is that it will not allow you to trace through system code (ring 0). At the entry point to system code you will encounter a 'SYSENTER' function which prepares for the transition from user mode to kernel mode.  Windbg seems to jump over that call while completing the system code but it does not allow you to enter system code and see what's going on.

In the old days, I used the softice debugger and it would step into system code and allow you to trace through it.

If anyone knows of a way to do that with windbg, I'd appreciate you sharing that knowledge. With softice, I could trace through Hal or any other system code. Not with windbg so far. I am currently tracing through an app and windbg allows tracing through ntdll.dll but it is a user mode module. At least, it transitions user code to system code. Whenever there is a call into the kernel code, a SYSENTER appears and windbg will not enter system code.

There may be a way to set a BP somewhere in system code and get past SYSENTER, I don't know.
#5653daniel_k
Zitat von ⇗ infuscomus im Beitrag ¶ #5651
I think it would be good to get the Windows 8.1 USB 3 driver working in XP to have compatibility for the few remaining USB 3 controllers that don't work with the windows 8.0 driver.

Your issue is related to the ACPI driver.
It is not properly enumerating/assigning resources to the devices.

⇗ @canonkong has just confirmed that my ported Win8 USB3 driver works on his friend's TRX40 system running Win7.
#5654infuscomus⇗ @daniel_k

OK, so which ACPI driver works for TRX40?
#5655daniel_k
Zitat von ⇗ infuscomus im Beitrag ¶ #5654
OK, so which ACPI driver works for TRX40?

I think there is currently none.

You are the first one to try XP on TRX40 here.
Unless someone steps in and implements ACPI 5.0 using the leaked souce code, I think there isn't much we can do for the existing patched acpi driver.

Did you try MPS Uniprocessor / Multiprocessor PC using fewer cores?

 

Page 378

#5656infuscomus⇗ @daniel_k

MPS does not work on any of my AMD systems - no MPS table in BIOS.
#5657daniel_k⇗ @diderius6
Send me a PM with the drivers you use (storport.sys and xhci driver) as I don't know which version you're using.

I'm patch them for you. Tried them myself here, works just fine.
Did some researching and learned that the missing import, KeFlushQueuedDpcs, does nothing on SP2.  Serioulsly, it's just a RETN 0.
#5658Rockylpx⇗ @Fernando
Take a look at my setup. No BSOD  so far . Front Usb  ports not working. wireless keyboard with mouse works fine. Internet works . I followed almost all the suggested methods. below are the missing drivers .
amd Gpio driver
amd  smbus driver
amd gpio ( for promontory)
Balanced power plan
amd pci device driver
oem applications profiles
Drivers . These only exists in x64 bit. it was on the CD that came along with motherboard . Can you help me

Thank you once again



Rockylpx has attached images to this post  ⇗ Capture-0.jpg
#5659Fernando⇗ @Rockylpx:
Welcome to the Win-RAID Forum!
Since you problems have
a) nothing to do with the topic of ⇗ >this< thread, where you posted them, and
b) you are using the extremely old OS Windows XP,
your post has been moved by me into this already existing thread, which is the home of our XP experts.
I cannot help you myself and hope, that you will get some support here. It may be a good idea to check and post the HardwareIDs of the devices, which are shown within the Device Manager with a yellow question mark.
Good luck!
Dieter (alias Fernando)
#5660Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #5651

How much extra work would be required to get the windows 8.1 USB 3 driver working?

You already wrote answer - ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (371)

FX - power framework, not exist on pre-win8 kernels, just return zero/error
Wnf - another crap, return zero/error

need only this:
ExCancelTimer
ExDeleteTimer
ExSetTimer     
ExAllocateTimer
#5661Mov AX, 0xDEADToday played with "KernelEx" by Xeno86, this amazing tool allow add to existing DLL any custom code written in C or ASM !
Main feature is patch engine, it can do many things automaticaly - extend export table, add new imports, create final file. Tools has some little bugs (for example it erroneous process DLL with bound imports, many Windows's dll  have this import type). Support of C language is very limited - only GCC supported with additional limits on code struct.
Still unique tool for adding new export to critical files like ntdll.dll becase if you try use usual redirection tricks on it, you get troubles
#5662schreibersteinI mistakingly assumed that this ~900MB RAM limit would only occur on Windows XP SP3 (without PAE patch).
However, the situation is the same on i686 Linux.

I submitted a ticket to Gigabyte asking if there is some kind of fix for the abysmal amount of available memory in 32-Bit mode.
Well, I doubt much will come from it, but Gigabyte has helped some of us hackintosh folks in the past (supplying a modified BIOS for MSR unlocking, I believe).
Maybe they will have mercy.

schreiberstein

⇗ @Rockylpx
Interesting how you have 3.25GB with 3rd gen Ryzen.
#5663diderius6Waaoh ,
I just get an storport.sys from ⇗ @daniel_k
that works with the Storahci.sys from Kai Schtrom under XP SP1,
nicccee,
now XP SP1 comes very near to XP SP3

Dietmar

PS: I just install my Optane nvme on XP SP1 with this nice storport.sys from ⇗ @daniel_k .

#5664ruthan@ schreiberstein I had some problem, you need WinXPAE fix from this thread to pach dlls,i have one from post 3631, i dunno if there is newer one.
#5665infuscomus⇗ @daniel_k

I just tested your ACPI 2015 version to see if USB 3 enumerated - no such luck.
#5666YuriyCN[ENGLISH]
Updated set of solutions for installing Windows XP on a modern PC from 10/27/2020 (detailed descriptions, mod drivers, programs, ready-builds OS)

[RUSSIAN]
Обновленный комплект решений по установке Windows ХР на современный ПК от 27.10.2020 (подробные описания, модернизированные драйвера, программы, готовые сборки ОС)

TXT (65KB) - ⇗ https://yadi.sk/d/HAR4hfxiAenpbg
#5667infuscomus⇗ @diderius6

I tested your new minixp -

With SMT (Simultaneous Multi Threading) disabled = 24 CPUs

Option 1 - XP Logo - 7B BSOD
Option 2 - XP Logo - 7B BSOD

With SMT (Simultaneous Multi Threading) enabled = 48 CPUs

Option 1 - instant reboot
Option 2 - instant reboot

So it seems setting MAXIMUM_PROCESSORS to 64 was not the correct solution and it must be something else.
#5668diderius6⇗ @infuscomus

Dows minixp boot with 1+1 processor setting?
If not, still the harddrive is not recogniced
Dietmar
#5669infuscomus⇗ @diderius6

On 1 + 1 setting it also 7B BSOD
#5670Rockylpx⇗ @schreiberstein

This OS was installed as it is . Drivers were manually  inserted ( front usb still not working) I didn't meddle with the boot.ini or fix the PAE . It has actually  16 GB DDR4 .  Until I find the last 32 bit drivers I can't go any further

Rockylpx.

 

Page 379

#5671diderius6⇗ @infuscomus

I make a new XP SP1,
which boots from NVME. So,
put this XP SP1 to an nvme disk.
I changed in this XP SP1 only ntoskrnl.exe and hal.dll
(both full acpi support) against the versions build for 64 processors
Dietmar
#5672schreiberstein⇗ @daniel_k Do your Creative drivers for the X-Fi series work more robustly on Windows XP with PAE than the drivers for the Audigy 2 series?

I am mostly concerned about using EAX properly when PAE is enabled.
#5673daniel_k⇗ @schreiberstein

My drivers have no actual driver changes, user mode only.
Last time I've tried these cards on XP with PAE enabled, they didn't work. Will see if there is something we can do about it.

Curiously, C-Media cards do work fine, although they have just audio controllers, no DSP
#5674savagebananaHi everyone,
so i am trying to install windows xp on my asus x542uq laptop.
I have created bootable xp cd and i have used iso from this link
⇗ https://www.zone62.com/downloads/softwar...?page_comment=1

I have integrated optional ahci drivers.
The thing is when the setup starts copying file...it starts giving errors such as "setup cannot copy file...."
I have tried creating 2-3 more bootable cd but getting always same result
#5675infuscomus⇗ @savagebanana

If you're burning a CD, burn it on a slower speed and use verify after burning.
#5676gordo999⇗ @daniel_k ...I am not using PAE and my Xf-i card works fine on XP. I think I'm using your drivers, not sure. I was but I reloaded drivers only from the Creative site. BTW...I had XP running on a hard drive for an earlier Intel mobo and upgraded to the B360 chipset with the i5-8400 series processor. I did not have to remove the sound card driver package but I had to mess with it to get the features working correctly.
#5677gordo999
Zitat von ⇗ savagebanana im Beitrag ¶ #5674
I have integrated optional ahci drivers. The thing is when the setup starts copying file...it starts giving errors such as "setup cannot copy file...."
⇗ @savagebanana ...what infusconous said...I burn at the lowest rate, usually 2 to 4 times speed. I also use Imgburn, which is good at detecting required settings.

With acpi.sys, I did not bother compressing it, I just loaded it in nlite as acpi.sys full size. The windows installer doesn't seem to care.

Another thing...you need to run the XP nlite version and run it on an XP based OS, even in a virtual machine. I tried running it on W7 and the installation failed.
#5678infuscomus⇗ @gordo999

for nlite you need .NET framework 2.0 - windows 10 will prompt for this and install it so it works on 10, not sure about 7 though.
#5679sashbbbb
Zitat von ⇗ diderius6 im Beitrag ¶ #5671
@infuscomus

I make a new XP SP1,
which boots from NVME. So,
put this XP SP1 to an nvme disk.
I changed in this XP SP1 only ntoskrnl.exe and hal.dll
(both full acpi support) against the versions build for 64 processors
Dietmar


this is full log for all windows xp x68 for  notebook lenovo laptop 100-15iby.
need working aspi !!
THE BEST ASPI by Fernando on boot windows , only PC power of /
Need change this aspi for full boot windows Xp

loading in different boot modes and change all aspi.sys gave nothing.
Screen bag--

sashbbbb has attached files to this post

sashbbbb has attached images to this post  ⇗ IMG_20201103_142224.jpg  ⇗ IMG_20201103_145042.jpg  ⇗ IMG_20201103_150658.jpg  ⇗ IMG_20201103_150818.jpg  ⇗ acpi mod Fernando(234kb).
#5680canonkongHere is the early win8 M1 64bit (NT6.1.7850) system drivers, maybe can help us. If you need, I can upload the 32bit too.
⇗ https://yadi.sk/d/ScEmx9Ar9v9nRw
#5681infuscomus⇗ @canonkong

I'm interested in the 32-bit version.
#5682canonkongHere is the early win8 M1 32bit (NT6.1.7850) system drivers, maybe can help us.
⇗ https://yadi.sk/d/g4ww_L4k2Lpk-Q
#5683diderius6⇗ @sashbbbb

I take a look at the DSDT table from the notebook  Lenovo 100-15IBY Laptop (ideapad)  
Bios CCCN21WW(V2.07) from 09 Jan 2017 . This Insyde Bios contains the same strange sleep order for Sata devices as on other Baytrail notebooks from Lenovo. Without modding this DSDT it is nearly impossible to install a full acpi XP SP3 on it,
because no Sata harddisks are found.

For me, the only way for XP without modding Bios is to set in Bios the harddisk to "compatible" mode IDE.
Ram boot of XP could work also. NVME boot of XP does not work, because this board hasnt.

Dietmar
 Device (SATA)
{
Name (_ADR, 0x00130000) // _ADR: Address
OperationRegion (SATR, PCI_Config, 0x74, 0x04)
Field (SATR, WordAcc, NoLock, Preserve)
{
Offset (0x01),
PMEE, 1,
, 6,
PMES, 1
}

Method (_STA, 0, NotSerialized) // _STA: Status
{
If ((OSEL == 0x02))
{
Sleep (0xC8)
}

Return (0x0F)
}

Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake
{
}
}
#5684sashbbbb
Zitat von ⇗ diderius6 im Beitrag ¶ #5683
@sashbbbb

I take a look at the DSDT table from the notebook  Lenovo 100-15IBY Laptop (ideapad)  
Bios CCCN21WW(V2.07) from 09 Jan 2017 . This Insyde Bios contains the same strange sleep order for Sata devices as on other Baytrail notebooks from Lenovo. Without modding this DSDT it is nearly impossible to install a full acpi XP SP3 on it,
because no Sata harddisks are found.

For me, the only way for XP without modding Bios is to set in Bios the harddisk to "compatible" mode IDE.
Ram boot of XP could work also. NVME boot of XP does not work, because this board hasnt.

Dietmar
 Device (SATA)
{
Name (_ADR, 0x00130000) // _ADR: Address
OperationRegion (SATR, PCI_Config, 0x74, 0x04)
Field (SATR, WordAcc, NoLock, Preserve)
{
Offset (0x01),
PMEE, 1,
, 6,
PMES, 1
}

Method (_STA, 0, NotSerialized) // _STA: Status
{
If ((OSEL == 0x02))
{
Sleep (0xC8)
}

Return (0x0F)
}

Method (_DSW, 3, NotSerialized) // _DSW: Device Sleep Wake
{
}
}


is  not booting  in mode  "compatible"

sashbbbb has attached images to this post  ⇗ is not booting in mode co
#5685diderius6⇗ @sashbbbb

Use an original XP SP3 CD.
Change there only acpi.sys against this one
⇗ https://ufile.io/7yoq75ti

Set harddisk mode to "compatible" in Bios.
Enable all for CSM in Bios, no secure boot
Dietmar

 

Page 380

#5686cerulliber1hello everyone,
I've search a lot for a click and "burn" iso for a Ryzen pc
If somebody can pm me a dowload link would be great !
or at least point me which xp version should I try and a small tutorial.
(my specs msi b450 pro m.2 max, ryzen 240ge  gt730, 2x8gb ram 3200, ssd sata 256gb gigabyte ( GP-GSTFS31256GTND )
thanks you so much!
#5687Mov AX, 0xDEADDLL Merger

Command line tool to merge two x32 DLL to one DLL, currently it can merge sections, relocations, imports and exports.
Main purpose is adding external exports from second DLL to first DLL. You can create second
DLL with any language/compiler, but take care about some limitations.
Tool uses open-source "PE Bliss" library for most PE manupulations.

Limitations:
1) Both DLL must have same section aligment
(user-space DLLs usually have 0x1000, drivers have 0x80, to change aligment in MS link.exe, use option "-align")
2) Second DLL can't have bound or delayed imports
3) Resources section from second DLL will added like separate section, no any merging
4) If second DLLs has same exports ordinals with first DLL, they will be replaced to new generated numbers
5) DLLEntryPoint in second DLL is ignored, if you need hook this, manualy change Entry Point in first DLL PE Header
6) Merging TLS/LOAD_CONFIG of second DLL not supported
7) If second DLL import some of exports from first DLL, only internal exports allowed. To import "forwarded" exports from first DLL, recompile second DLL to import directly from "final" DLL

Usage:
dll_merge.exe advapi32.dll new_exports.dll

Take attention on system DLLs like ntdll.dll, they chained each to each regarding
coffbase.txt/baseaddress.x86.fre.* files and normaly you can't increase size of these DLLs without overlapping adress space.
To fix this problem find enough hole in adress space, for example in Windows XP SP3 SXS.DLL probably is last dll in chain,
so range 0x7E7D0000 - 0x7F6F0000 is free.

To change loading adress of DLL , use PE_Rebaser:
pe_rebaser.exe merged_advapi32.dll 7E7D0000

Finaly fix PE checksum with any tool:
checksum.exe rebased_merged_advapi32.dll


Simple example of new_exports.dll(new_exports.c):

 
#pragma comment (linker, "/export:newexport_funct1=_newexport_funct1@0")
#pragma comment (linker, "/export:newexport_funct2=newexport_funct2")
#pragma comment (linker, "/export:_newexport_funct1@0,@7777,NONAME")
#pragma comment (linker, "/export:export_forward=kernel32.xxxx")

#include "windows.h"

static int global = 123;
int global2 = 123;

void __stdcall
newexport_funct1()
{
global = 456 ;
}

void __cdecl
newexport_funct2()
{
global2 = 789 ;
}


void
DummyDLLEntryPoint(void *arg0, void *arg1, void *arg2)
{
}

Mov AX, 0xDEAD has attached files to this post
#5688Mov AX, 0xDEADHi,
I present my "side" open-source mini project, sucessfully tested on ntdll.dll and avapi32.dll !
Sources will be published later.
#5689diderius6Hi,
I have a Flex 10 Lenovo Ideapad.
There I installed full acpi XP SP3. In next holidays I try to enable the video driver under XP SP3 for the n2806 chip also.
I also changed the Wifi pcie mini card against a Lan Ethernet pcie mini card with realtek 8111h chip and RJ45 connector.
But when I reboot this notebook,
I get message
"Unauthorized wireless network card is plugged in. Power off and remove it"
I make a full dump direct of my Bios chip with a very good EEpromer Revelprog IS.
My Bios version is from original 64 bit Win01BTIL99.fd from 2015.

⇗ https://ufile.io/3kkvgocx

Any help is welcome to remove the Whitelist for the Wlan card on the Flex 10 Bios,
thanks a lot
Dietmar

EDIT: With search for text string via UEFI tool for "unauthorized" I found this message in
Section_PE32_image_B6845A50-9BAD-44DC-BE3E-20A8693D46E8_DeviceSupport_body.efi
But I have no idea how to edit it.
Maybe, that Ida Pro can help. But my version does not support *.efi files.

EDIT 2: May be the easiest solution is just to delete whole Guide DeviceSupport.
This crazy word "unauthorized" happens only in Guide in Bios from Lenovo.
#5690ruthanThis Lenovo problem they have some whitelist for used wireless cards.. online are some cracked bioses.. but often outdated.
#5691diderius6Here I think,
the whitelist can be killed. May be just forced jmp EB.
It is from DeviceSupport from Bios of Flex 10
Dietmar

⇗ https://ufile.io/ian7jb6r
#5692LabudicoHello, Who can tell me because appeared this error? Page file is on, free space on the ssd 100GB.
PAE128GB work good, because i can use over 4GB Ram.
#5693gordo999⇗ @Labudico ....Maybe someone has a better explanation, I have not tested this kind of extended memory on XP 32-bit. I don't think Autocad can use that extended memory in XP x86 unless you have drivers like the PAE drivers in Server 2003. Those drivers allow apps to access over 4 Gb RAM in a 32-bit system.

If I'm wrong, someone will reply and correct me. My understanding is that the extra memory available in XP 32-bit is to run a RAM drive. However, apps written to run on XP 32-bit are assigned a 2 Gb virtual memory space for the user. I don't think the app will know about memory beyond 2Gb for user space. There may be a way to fix that, I don't know.

If you look at the address space on a 32 bit system, the user space is from 00000000 - 80000000 and the system uses 80000001 - ffffffff, where 0xffffffff = 4 Gb. If you look at a 64 bit system, there are another 8 spaces to the left of ffffffff as in 00000001 ffffffff. One 64-bit app I'm working on right now has addresses like 000007fe e4f61dfe.

Your PAE extended space will begin at 1'00000000 and if Autocad doesn't have the addresses capable of reaching those extended address, which it won't with normal 32-bit XP, then it cannot see that extended memory. I would think it would need a translator of some kind as found in Server 2003. I think it has a mechanism for temporarily storing 32 bit address pages in extended memory and retrieving them when required.
#5694Labudico⇗ @gordo999 - Thnaks, for repply, you right - Autocad 32bit not capable to use more 2GB, but i find solution - open each files in a separate process (window) and separately each open file in a separate does not reach 2GB and so you can open 100 files and fill at least all 32GB of RAM.
#5695Mov AX, 0xDEAD
Zitat von ⇗ gordo999 im Beitrag ¶ #5693

If you look at the address space on a 32 bit system, the user space is from 00000000 - 80000000 and the system uses 80000001 - ffffffff, where 0xffffffff = 4 Gb.

Hi,
/3GB in boot.ini change memory partitioning to "3Gb User + 1Gb System"
autocad.exe must have bit LARGEADDRESSAWARE in PE Header (can be easy setted with any PE editing tool)

XP even with /3GB has issues with allocation memory above 2G, maybe on W2003 it may be better, i dont know...
#5696gordo999⇗ @Labudico  ....Good. You found a solution. I don't know how XP 32-bit knows about the extra memory but it must have something to do with kernel code related to PAE. Good to know.

Also, read the post from ⇗ @Mov AX, 0xDEAD ...about adjusting the PE header and adding the line /3GB to boot.ini. The following example applies to Win 7 but the same should apply to XP 32-bit if you edit the boot.ini file in the C:\ directory. It is usually hidden so you may have to edit the file attributes using the attrib command in a cmd window.

⇗ https://knowledge.autodesk.com/support/autocad/learn-explore/caas/sfdcarticles/sfdcarticles/How-to-enable-a-3GB-switch-on-Windows-Vista-Windows-7-or-Windows-XP-s.html
#5697gordo999
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5695
XP even with /3GB has issues with allocation memory above 2G, maybe on W2003 it may be better, i dont know...
⇗ @Mov AX, 0xDEAD ....thanks for advice on PE header and /3GB command for boot.ini.

I may be wrong but I heard that XP SP1 allowed access to >4GB till Microsoft removed that feature. May be similar to W2003.

There is also a file in the SP1 DDK called ntldr_dbg that is a replacement for NTLDR during boot that can be used with a kernel extension .kdfiles so you can get a remote windbg session to stop before the OS loader. Have not tried it yet, just passing on the info in case it interests you. Apparently it requires a serial COM 1 connection between host and target but I have a USB-serial adapter that has worked for me in the past. Such a setup may help you troubleshoot acpi.sys, etc. during the boot stage. My B360M as target has a serial port.

⇗ https://kobyk.wordpress.com/2008/07/04/replacing-boot-load-drivers-with-the-windows-boot-debugger/
#5698Mov AX, 0xDEAD
Zitat von ⇗ gordo999 im Beitrag ¶ #5697

There is also a file in the SP1 DDK called ntldr_dbg that is a replacement for NTLDR during boot that can be used with a kernel extension .kdfiles so you can get a remote windbg session to stop before the OS loader. Have not tried it yet, just passing on the info in case it interests you. Apparently it requires a serial COM 1 connection between host and target but I have a USB-serial adapter that has worked for me in the past. Such a setup may help you troubleshoot acpi.sys, etc. during the boot stage. My B360M as target has a serial port.


Hi gordo,
This feature dont actually needed because usual kernel windbg is enough, you can set breakpoint  after kernel+hal was loaded and before loading any driver
#5699infuscomus⇗ @Mov AX, 0xDEAD ⇗ @diderius6 ⇗ @daniel_k

So I finally got some USB running through an addon card - ASMedia 1242 chip - PCI\VEN_1B21&DEV_1242

The unknown USB devices I think are left over failed enumerations on the AMD USB controllers - they have IDs like

USB\VID_0000&PID_0001\8&308CDB7C&0&4
USB\VID_0000&PID_0001\8&308CDB7C&0&5
USB\VID_0000&PID_0001\8&308CDB7C&0&6
USB\VID_0000&PID_0001\8&14937D77&0&5
USB\VID_0000&PID_0001\8&14937D77&0&6

But the AMD USB 3.0 controllers -PCI\VEN_1022&DEV_148C - PCI\VEN_1022&DEV_149C
and hubs USB\ROOT_HUB30&VID1022&PID148C - USB\ROOT_HUB30&VID1022&PID149C

by themselves seem to be working fine at least according to windows XP. It's just the end devices that failed.

The USB hub on the thunderbolt 3 controller is in a failed state though, but that is expected without a thunderbolt driver.
#5700diderius6⇗ @infuscomus

On the Lenovo Flex 10 happens the same, VID_0000&PID_0000 for all USB devices, even mouse.
There only mod of the DSDT helps. The idea how to mod the DSDT there I get from older Bios from Baytrail boards.
I also see, that addon cards for PS/2 exist
Dietmar

⇗ https://www.amazon.de/MZHOU-PS2-Controll...e/dp/B07RLFPDNZ

The following contents have been linked to this post:

 

Page 381

#5701infuscomus⇗ @diderius6

Fortunately for me, the ASMedia PCI-E USB 3.0 is working correctly so I won't need to get that PS/2 card.

Could you try and do a mod of my DSDT table for me? - uploaded already in this thread - ⇗ resolving an A5 BSOD in windows7 using grub2?
#5702infuscomus⇗ @Mov AX, 0xDEAD

could the USB\VID_0000&PID_0001 problem be caused by a bug in the windows 8.0 USB driver?
#5703diderius6⇗ @infuscomus

It happens also with the AMD USB driver from ⇗ @daniel_k .
In the DSDT the xhci driver is blocked for XP,
but I have no idea how to mod this DSDT,
Dietmar
#5704infuscomus⇗ @diderius6

Now that I have XP in a usable state I would like to try and use windbg to see if I can see where XP dies when there is more than 32 CPUs.

I have no experience with this though, so if you have a step-by-step guide or something like that for beginners I'd appreciate it.
#5705gordo999
Zitat von ⇗ infuscomus im Beitrag ¶ #5704
I have no experience with this though, so if you have a step-by-step guide or something like that for beginners I'd appreciate it.
⇗ @infuscomus ...the Net is full of step-by-step guides. The problem is that the learning curve is steep and requires a constant focus on application of the various commands. It was easier for me since I had years of experience with debuggers. Even at that, I am likely not past the novice stage yet with windbg.

For kernel-mode debugging between two computers there are different rules for different OSs. Whereas you can set up network debugging between a W7 host and a W10 target you can't do that between W7 and XP because net debugging does not exist in such an environment. I had a good setup using a USB-serial port adapter on a W7 host connected to a B360 mobo with serial port as target. I can't get it going anymore for some reason. I suspect its because I am dual booting W7 and W10 on the target machine and I found out by fluke that the W10 boot loader needs to be in place rather than the W7 bootloader.

I also had a net remote debugging session going between W7 and W10. The point is the debugging connection can be really finicky and setting it up could take days if not weeks. Meantime, you lose a few years off your life through exasperation.

Many people use a VM environment but I found that can be finicky as well. You also need a symbol store setup since windbg is reliant on symbols (pdb files). You have to make sure the paths are set correctly so windbg can find its symbols.

I hope you go for it and get it going. Just warning you that it might not be easy. It's definitely worth it because what is going on here with XP revival is often being done in the dark. Better to see the code and how it is behaving. That's not as easy as it sounds either since the bloatware used today is full of code that has no meaning to someone tracing through it.
#5706Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #5702
@Mov AX, 0xDEAD
could the USB\VID_0000&PID_0001 problem be caused by a bug in the windows 8.0 USB driver?

Hi Infuscomus,
this vid/pid seems similar to previous 0000/0000 with amd driver, this mean one - controller was not configured properly,
it detect some inserted/internal device but can't communicate with it
in case with amd driver this was failed hardware register programming when running on PAE systems.
but MS USB3 driver is very good and widely tested by end-users, there must no problem with it (excluding acpi part), did you tried to run original Windows 8.0 on your fresh MB (for example any LiveCD with Win8.0) ?
#5707infuscomus⇗ @gordo999

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
#5708diderius6⇗ @infuscomus

AMLILoadDDB in Win8 is other organized than in Win7 or XP.

So, I can only cross fingers, that one of the 4 acpi.sys works
Dietmar

⇗ https://ufile.io/ff6xhp3y

PS: Today I try to enable a Windbg over Lan connection with the mini Pcie adapter to the Lenovo Flex 10 notebook.
I get there everything to work under XP SP3, only not the graphik driver. This will be a hard job.
But the setting on of this Lan session via Windbg  XP SP3 <=> XP SP3   I will describe here in detail.
#5709infuscomus⇗ @diderius6

Thanks, I will test this when I can.
#5710diderius6After crazy work I succeed to connect the Lenovo Flex 10 notebook
via an pcie mini to a RJ45 connection.
I overcome the Whitelist in Bios of the Flex 10 with just deleting whole entry
"DeviceSupport"  GUID: B6845A50-9BAD-44DC-BE3E-20A8693D46E8 in Bios and flash with Epromer.

The Realtek 8111H pcie minicard to RJ45 does not work on the Flex 10 board.
I tried 2 different cards. The card is correct listed in Device Manager,
the LED shows with yellow and green led connection but always the message appears,
that no Lan cable is connected.

Then I try an Intel Pcie minicard to Rj45 with chip 82574L from 2008(!)  VEN_8086&DEV_10D3 .
This card is supported for debug via Lan on Win8 and Win8.1 and XP SP3 now thanks to ⇗ @Mov AX, 0xDEAD .
And voila, for the very first time I have a chance to debug the Lenovo Flex 10 notebook via Lan with Windbg
Dietmar



#5711infuscomus⇗ @Mov AX, 0xDEAD ⇗ @diderius6

using patched acpi.sys from diderius6 I was able to boot into windows 8.0
Once booted in Windows 8.0 USB devices were enumerated correctly - So does this mean the problem is ACPI? or not ACPI?

Should I try and use the usbccgp.sys driver from windows 8.0? could that resolve this USB\VID_0000&PID_0001 problem?
#5712diderius6⇗ @infuscomus

I think, the problem is only in DSDT.
Without building a whole new acpi.sys for XP (on the base of win8.1(!) ) the only chance is,
to look for a similar Bios, where the motherboard works also under win7
and look, what is changed for xhci in its DSDT
Dietmar

PS: This methode works for the crazy Bios from the Flex 10 board. No win7 or win8 can be installed there.
Only win8.1 and win10. And with modded acpi.sys alone, all USB devices have VID_0000&PID_0000.
With for xhci modded DSDT, all USB devices are recogniced correct.
#5713infuscomus⇗ @diderius6

Do you have original and modded DSDT for your lenovo flex 10?
I'd like to compare them to get some hints for what I need to change.
#5714diderius6⇗ @infuscomus

Here it is
Dietmar

⇗ https://ufile.io/sd54s8b0
#5715infuscomus⇗ @diderius6

Thanks, I'll take a look at them.

 

Page 382

#5716infuscomus⇗ @diderius6

I see the flex 10 original has OS Detection code that was removed in modded DSDT, but my DSDT does not have this code around any USB devices, so it must be something else.

Perhaps Windows 8.0 acpi.sys knows more ACPI words than outerspace XP acpi.sys does and my DSDT is using the new words?
#5717diderius6⇗ @infuscomus

I think, the acpi version, which words are recogniced, is the same for Win7 and win8.
For me it would be the only chance for to mod DSDT is to find a Bios for Threadripper, that works also with win7
Dietmar

PS: Such a Bios you can download from Internet (manufacturer or somebody else) and extract the DSDT table with Uefi tool.
#5718Black Ravenyou didn't do it
you posted a request on the forum bios-mods and received a mod
#5719diderius6⇗ @infuscomus
I read, that win7 has problems with the Pcie3 mode. Make a try to switch it back in Bios to Pcie2.
And for USB it can be, that the devices are all set to sleep mode.
In win7 is a switch for any USB, not to go to sleep mode.
The MSI X399 Gaming Pro Carbon and Asus Prime X399-a can work with win7,
take a look at their DSDT
Dietmar
#5720tumagonx
Zitat von ⇗ tumagonx im Beitrag ¶ #5002
Forgot to ask, I read in nvidia forum someone complaining that driver after 332.21 break PAE support, effectively limit XP PAE to Kepler generation instead of Maxwell, is this confirmed?


just want to make correction about Nvidia driver + >4gb PAE, while driver 321.21 only support kepler, CUDA 6.0.37 SDK (cuda_6.0.37_winxp_general_32.exe) bundling PAE friendly driver (dated Apr 2014) that support maxwell GM107 chip (officially support GTX 745/750/850M/860M) but may support others through devid inject (GTX 950M/960M, Quadro K620/K1200/K2200/M600M/M1000M/M2000M).
#5721infuscomus⇗ @diderius6 ⇗ @Mov AX, 0xDEAD

Windows 7 also has the same USB\VID_0000&PID_0001 problem.

Trying to add extra code to the DSDT keeps giving a 7B BSOD.
#5722infuscomusI tried to signup to the bios-mods forum hoping someone there could help me mod my DSDT table - but I didn't get an activation email, I can't post in the forum, no one is in the live chat, and the contact us link goes to a blank page.

The web admins over there must just not care.
#5723infuscomus⇗ @Mov AX, 0xDEAD

Do you have an improved acpi.sys that might help with failed USB device enumeration?

edit:

ACPI 5048 gives A5 0x02 BSOD
#5724infuscomusI wnt looking through canonkong USB 3.0 Windows 7 Thread and noticed he mentioned you need a specific "AMD PCI" driver from the AMD chipset driver package (If I read that correctly.)

I think the one I need is - PCI\VEN_1022&DEV_1485 - It is on the same PCI bridge as the USB ports.

The chipset drivers installer won't install on XP - ⇗ @canonkong Can you extract the individual drivers from the installer?
#5725canonkong⇗ @infuscomus
Only inf fake drivers.
#5726infuscomusWell, I managed to get it working.

I installed a null driver for the ? "AMD PCI" device.
I reinstalled the USB 3.0 driver.

I think I probably just needed to reinstall the USB 3.0 driver - but at least it works now.
#5727diderius6⇗ @infuscomus

Please tell, what works now on the Threadripper board under XP
Dietmar
#5728infuscomus⇗ @diderius6

Working

USB 3 working (although I'm still not sure if that null driver is needed)

LAN working (Depends on your motherboard, I'm lucky mine has an official XP driver)

GPU working (PCI-E GT 710)

SOUND working (PCI-E Audigy Rx)

possibly working

Titan Ridge Thunderbolt 3 - there is an old Alpine Ridge Windows 7 32-bit driver I found that might work with the ntoskrnl extender, I have not tried it yet.
#5729infuscomus⇗ @diderius6

Regarding maximum processors some anon on 4chan found this
#5730infuscomusThe motherboard USB 3 ports are still non-functional in XP textmode setup.

So, at least for now, to get XP installed on Threadripper -
First - you will need to image an XP installation with pre-patched ACPI, AHCI, USB3, PAE already integrated, and then apply that image to your Threadripper system.
Second since motherboard USB ports will not work right away you will need a PCI-E USB 3 card to be able to use input devices - then you can reinstall the USB 3 driver on the motherboard USB 3 ports.

 

Page 383

#5731infuscomusThe motherboard USB ports have stopped working again!

OK, It seems disabling and re enabling the XHCI controller gets everything working, but do I have to do this on every boot?

and this also leaves me stumped for a solution for textmode setup - how do I disable and re-enable a device in textmode?
#5732infuscomus⇗ @Mov AX, 0xDEAD

Why would disabling and then re-enabling the motherboard XHCI controller suddenly make it work? any ideas?
#5733Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #5732

Why would disabling and then re-enabling the motherboard XHCI controller suddenly make it work? any ideas?

Hi infuscomus
You question has no answer because too many actions happen between disabling and enabling in DM.
1) win8 usb3 driver is not ideal, it depends on some acpi subsystem, for example mapping ports or other things
2) when windows start usb3 driver, all usb hardware already is fine because initialized/in use by bios, mouse and keyboard controlled by bios "usb driver"
one of first action of win8 usb3 driver is switch controling of hardware from bios to driver, bios receive this command and someway reprogram usb hardware to go "switch off state", after this phase you have problem, i dont know why hardware is not work properly after win8 driver reinited it after bios's usaging
#5734Pill Monster
Zitat von ⇗ XPLives im Beitrag ¶ #5287
@Pill Monster
Zitat von ⇗ Pill Monster im Beitrag ¶ #4373
Zitat von ⇗ XPLives im Beitrag ¶ #4337
@Pill Monster
2000 Advanced Server already had > 4GB memory support.  And standard XP Pro 32-Bit could utilize above the 4GB range for a Ramdrive so it wasn't completely neutered.
Possibly you misunderstood me?
With
Zitat
"XP Pro 32-bit could utilize above the 4GB range"
 - 4GB range of what?  


   
[quote]Obviously it means what it means.  Anything ABOVE the 4GB memory limit.  If you had 32.0GB installed that would mean between 4.0GB -> 32.0GB.

Not obvious at all.    "4GB" is an ambiguous term since it could refer to total address space including space on HDD OR it could refer to RAM only.

To me memory is RAM.

To those schooled at M$ developer school memory is an inexhaustible resource consisting of RAM and when that runs out, as much swap space as an application requires, with little or no impact on performance.  
Zitat von ⇗ Pill Monster im Beitrag ¶ #4373

Licensing caps aside, the maximum amount of RAM supported by XP is exactly equal to the maximum amount of RAM supported by the CPU, less hardware reserved.  
XP Pro x86 officially supports 64GB of RAM.


   
[quote] I have already tested Server 2003 and it cannot see above 64.0GB.  But it does not mean it would not be possible for someone to find a way to extend beyond this.



Zitat
That's due to the OS Page Address Extension directory pointer limitation.  But what hardware did you test on - does it support over 64GB?    Anything over 64GB would probably be used for swap space.

Zitat von ⇗ Pill Monster im Beitrag ¶ #4373

RAM drives utilizing "hidden memory"  I label snake oil because there are no hidden addresses that can be seen by RAM disk software but not the CPU.  
RAM disks reside in something called a section object, the OS sees part of this section object - the WS partition. The CPU sees all of it and maps data in and out of the process view using pointers.

XP natively supports 36bit addressing using pae (Page Address Extension). Pae adds 4 bits to an address  - two Page Table Directories and a PTD pointer.
Until SP2 enabled was the default boot mode. Hence why XP Pro x86 is not called XP Pro 32-bit.


   
[quote] It's called XP Professional.


I know what it's called.   You missed my point; XP Professional x86 - not XP Professional 32-bit.

Zitat
The 32-Bit was tagged on because it's better for laymans to differentiate between the two.  The x86 is derived from the 8086 processor.  However seeing the x86/x64 next to each other some newbies may think the x86 is superior given the larger number.

That is nonsense.  :)

I'm aware x86 is short for 8086 CPU architecture. A CPU of the x(80)86 family which supports 64bit instructions was known as x86-64, later shortened to x64, it's not an indication of CPU memory support.

32bit refers to the number of data bus lines between the CPU memory controller and RAM.  32 bits allows 4GB of storage space in RAM. This is where the hardware specific 4GB memory limit comes from.

"x86" in current times refers to and ONLY refers to 32bit processors with a 4GB RAM limit.  Basically anything prior C2D on Intel's side...

Zitat
I disagree with Ramdrives as being snake oil.  They are quite useful in many applications compared to using XP without one.  You may not like how it was employed but without this ability it makes XP on modern hardware under utilized.  

 Then provide an example along with rereliable source

Zitat
You should also blame Microsoft from releasing XP Professional as Server 2003 in full functionality.  That would have made everything better from the start

.  This comment I actually  agree with.   I blame both MS & Intel both.     MS were able to charge more for a "Server" edition which was essentially the same as Client XP.

Zitat von ⇗ Pill Monster im Beitrag ¶ #4373

Zitat von ⇗ XPLives im Beitrag ¶ #4337
But what is the model number of this supposed $2500 36-Bit Xeon?
 
I guess you had to be there.




Zitat
Not really.  I was there and even there when the 8088 CPUs and the Apple ][s were selling.  You neglected to again mention the "model number" of the Xeon.  You only provided the link to the Pentium III specs with that article.  Often times you will have the exact model number on the CPU itself or in this case the protective plastic outer casing would have it shown.

 The model is clearly shown on the page, along with the price. Try reading it again.  I can always make the screenshot bigger

Zitat
Even this link beats your by 3 months.


⇗ https://www.cnet.com/news/intel-releases...iii-based-xeon/
CNET? Great reliable source.

#5735Pill Monster⇗ @XPLives

Fwiw early Xeon (P3/4/5) could address up 64GB of RAM in total, divided into 4GB blocks.  The MCU had to access one 4GB block at a time using bank switching.  

Windows kernel/user VAS segmented memory protection & PAE  are both based on Intel's physical memory model.


I can post a diagram of the memory bus if you're interested.
#5736HowManyPentiums?Hello all

X58 user looking to go to a new or newish platfrom.

How likely is an Asus X570 board able to boot XP for some light gaming? Intermittent crashes I can deal with.
I did see it briefly mentioned in the thread.

⇗ @Pill Monster
That Xeon 900Mhz Slot 2 CPU, I have it with the retail box if you need any info. Mine is part of the recall batch as well.
#5737Pill Monster
Zitat von ⇗ HowManyPentiums? im Beitrag ¶ #5736
Hello all

X58 user looking to go to a new or newish platfrom.

How likely is an Asus X570 board able to boot XP for some light gaming? Intermittent crashes I can deal with.
I did see it briefly mentioned in the thread.

@Pill Monster
That Xeon 900Mhz Slot 2 CPU, I have it with the retail box if you need any info. Mine is part of the recall batch as well.

No kidding - how did you come to possess it?   Surely it'd be a rather valuable collectors item by now.. :)
#5738infuscomus⇗ @HowManyPentiums?

you can get XP 32-bit working on X570 with patched drivers but not XP 64-bit.
#5739HowManyPentiums?
Zitat von ⇗ Pill Monster im Beitrag ¶ #5737
Zitat von ⇗ HowManyPentiums? im Beitrag ¶ #5736
Hello all

X58 user looking to go to a new or newish platfrom.

How likely is an Asus X570 board able to boot XP for some light gaming? Intermittent crashes I can deal with.
I did see it briefly mentioned in the thread.

@Pill Monster
That Xeon 900Mhz Slot 2 CPU, I have it with the retail box if you need any info. Mine is part of the recall batch as well.

No kidding - how did you come to possess it?   Surely it'd be a rather valuable collectors item by now.. :)


It was by luck I got this boxed one, I wanted a loose one for my Supermicro S2DG2 retro build.
I had an ebay search saved, someone listed it as something like a 900mhz 256kb xeon.
Some photos :)




Zitat von ⇗ infuscomus im Beitrag ¶ #5738
@HowManyPentiums?

you can get XP 32-bit working on X570 with patched drivers but not XP 64-bit.


Great news thanks, that is one less barrier for me to get a Ryzen 5000 system.
#5740diderius6Hi,
I just found this in
⇗ http://www.cs.sjtu.edu.cn/~kzhu/cs490/3/...Structuring.pdf
So, it should be not too difficult to enlarge the maximal numbers of processors in XP.

Current implementation limit is # of bits in a native
word
! 32 processors for 32-bit systems
! 64 processors for 64-bit systems
! Not an architectural limitjust implementation

Dietmar
#5741infuscomus⇗ @diderius6

That document is only referring to maximum licensed processors though not the maximum registered.
#5742tumagonxadditional info about nvidia driver and PAE issue, according to CUDA handbook, runtime version 6.5 add Compute Capability 5.0 for Maxwell which one of new feature is Unified Virtual Adressing as represented by cuMemcpy/cudaMemcpy function (in the cuda dll). I suspect this is the reason for the changes and CUDA toolkit 6.0.37 itself target up to CC 3.5 (kepler). As observed in "true" maxwell nv4_mini.sys IAT there are changes about memory adressing.
#5743infuscomus⇗ @diderius6

So I compiled ntoskrnl and hal from source - first with 32 CPUs for MAXIMUM_PROCESSORS - second with 512 CPUs for MAXIMUM_PROCESSORS

I used relyze disassembler and made ASM files of them to compare in notepad++

In halmacpi the main difference I can see is a significantly larger data size for HalpProcessorPCR
I don't know how to increase data size using disassembler.

Unfortunately the ntkrnlmp ASM files are too large for notepad++ so it crashes.
edit: nevermind it just took a while to load

In ntkrnlmp I see in  KeSetTargetProcessorDpc an instruction is omitted         add al, 0x20
Haven't noticed anything else yet.

KeStartAllProcessors is also different.

I'll upload my files here.



infuscomus has attached files to this post
#5744infuscomusI just built a server 2003 ISO with my 512 CPU kernel.

Same result - freeze at "Setup is Starting Windows"

So the problem is somewhere else - NUMA nodes maybe? I'm just guessing.
#5745skullteriaWell, maybe maximum pocessores are related with this improvement of Windows 7 kernel:

⇗ https://channel9.msdn.com/Shows/Going+De...nside-Windows-7

 

Page 384

#5746infuscomus⇗ @skullteria

We don't need to go as far as Windows 7 - Server 2003 SP1 already has a fix - it does not freeze at "Setup is Starting Windows" when SMT is enabled.

However I don't know exactly what the fix is.

edit:
I'm just guessing, but it might be this - ⇗ https://mskb.pkisolutions.com/kb/821047
#5747skullteriaOn x86 or x64? Because i found what Windows 10 x86 support only 32 cores, so, maybe it is really the limit of x86
#5748infuscomus⇗ @skullteria

XP x86

Although Windows 10 x86 (and all the way back to server 2003 SP1 x86) don't crash if there is more than 32 CPUs though.
#5749infuscomus⇗ @Mov AX, 0xDEAD

referring to this - ⇗ https://mskb.pkisolutions.com/kb/821047

could you change HalpDefaultInterruptAffinity in XP HAL from 0 to 16 to match server 2003 SP2 HAL?



infuscomus has attached files to this post
#5750ruthanIt could be simply problem, that more than 32 cores werent really tested or properly implemented within MS code.. regardless of licence and its enough cores for desktop cap.
#5751diderius6⇗ @infuscomus

Do you have the patch KB821047 for win2003?
If yes, you can compare all files of win2003 before this patch and after
for to look what changes.
And just try, if an original very first win2003 with this patch can run on Threadripper
with more than 32 processors
Dietmar
#5752infuscomus⇗ @diderius6

Unfortunately I don't have it - and Microsoft have taken the hotfixes down, so I'm looking for it.
#5753gordo999⇗ @infuscomus ...when I was trying to trace through an Intel installer, the CPU was checked with a CPUID instruction. It identified the CPU model and the text "GenuineIntel...". I would think the info regarding the number of processors would be related to CPUID.

It's not clear to me whether you are talking about processors (CPUs) or cores. I am sure you mean CPUs since a CPU with 512 cores would not make much sense.

⇗ https://en.wikipedia.org/wiki/CPUID
#5754infuscomusI just tried a modded hal with HalpDefaultInterruptAffinity changed from ULONG to ULONGLONG in source - no change.
#5755infuscomus⇗ @Mov AX, 0xDEAD

Can your backported KDNET driver from windows 8 be used in XP testmode setup? or do I need to use a full XP installation?
#5756diderius6Hi,
I succeed to get any device to work under XP SP3 on the Lenovo Flex 10 notebook,
only not the videodriver.

There are drivers from Win7, win8.1 for it,
device name VEN_8086&DEV_0F31 .

I do not find any videodriver under XP for this in the cpu n2806 integrated Valleyview videocard.
But under XP there are Intel videodrivers with VEN_8086&DEV_0166  "Intel(R) HD Graphics 4000".

So my question is: Is it possible, to change this DEV_ name on the cpu itself?
If yes, I will change it on the n2806 cpu from 0F31 => 0166
and look, if this driver (now all for DEV_0166)  under win7 still works.
And then, try to install under XP
Dietmar

PS: The problem is in this videodriver igdkmd32.sys , that the DEV_ id is hardcoded there and even second step harcoded with Magic Numbers.
#5757Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #5755
@Mov AX, 0xDEAD
Can your backported KDNET driver from windows 8 be used in XP testmode setup? or do I need to use a full XP installation?

Hi infuscomus,
problem is how to enable any debug in txtsetup, even with COM ports, add boot.ini to CD rootdir ? i dont know......

Zitat
could you change HalpDefaultInterruptAffinity in XP HAL from 0 to 16 to match server 2003 SP2 HAL?


i wrote before - "affinity" on x86 is unsigned long = 32 bits, first find what trick MS done in w2003 sp2
⇗ https://docs.microsoft.com/ru-ru/windows...ty-and-priority
(CPU/NUMA groups was introduced in vista or win7)

#5758infuscomus⇗ @Mov AX, 0xDEAD

XP/2003 ntoskrnl/hal have functions with numa in the name - are they not doing anything?

e.g
ExpQueryNumaAvailableMemory
ExpQueryNumaProcessorMap
#5759gordo999
Zitat von ⇗ infuscomus im Beitrag ¶ #5758
@Mov AX, 0xDEAD XP/2003 ntoskrnl/hal have functions with numa in the name - are they not doing anything?

e.g
ExpQueryNumaAvailableMemory
ExpQueryNumaProcessorMap
@infuscoumus ....looking up those functions out of interest returned this:

What is NUMA ( Non-Uniform Memory Access ). Simply put, in a multi-CPU system, each CPU has its own memory (local memory). Of course, a CPU can also access the memory of other CPUs, but the access speed is faster than Accessing your own memory is much slower.

The opposite of NUMA is UMA ( Uniform Memory Access ). Many current x86 systems (IA) are based on UMA architecture. Multiple CPUs access the main memory through the front side bus (FSB), and each CPU sees the same main memory.

The IA architecture started with the NUMA architecture from the CPU codenamed Nehalem. The product for the desktop market is Core i7, and the product for the server market is Xeon 5500.

In a NUMA architecture system, the CPU accesses the local memory much faster than the memory of other CPUs, so the physical location of the allocated memory is no longer as irrelevant as before. Ideally, each CPU is accessing most of the time Local memory".

****

The function ExpQueryNumaProcessorMap seems to return the number of nodes, or CPUs (not cores). The function ExpQueryNumaAvailableMemory seems to return info about the memory used by each node/processor.

It would seem that if you are not running a NUMA system the functions likely won't be called.
#5760Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #5758
@Mov AX, 0xDEAD
XP/2003 ntoskrnl/hal have functions with numa in the name - are they not doing anything?
e.g
ExpQueryNumaAvailableMemory
ExpQueryNumaProcessorMap

Hi infuscomus,
these functs are information only, kernel dont use it
but struct for storing NUMA information has 64bit field for affinity :)

 

Page 385

#5761skullteriaWell, returning to a old problem: XDDDM drivers on UEFI on XP/2003. Somebody tested these drivers on Vista/7? Because, starting on Vista, ROM BIOS 16 bits firmware, both x86 and x64 is emulated by emulator on HAL. It is initialized by kernel. I thnk, it is the reason to get BSOD on XP x64 when trying load it winload from Vista without NO_GUI parameter.

I'm adapting win32ss to support WDDM drivers and for get it, maybe we need use videoprt from Vista, because it use watchdog as Display ownership manager, like dxgkrnl does.
#5762infuscomus⇗ @Mov AX, 0xDEAD

any progress on getting SP1 ACPI sourcecode to match acpi.sys of SP3? or outerspace acpi.sys?
#5763diderius6Hi,
does someone have the Bios for the Asrock Q1900M board
version
Q1900M(1.00)ROM.zip or
Q1900M(1.10)ROM.zip or
Q1900M(1.20)ROM.zip

I try to enable the Intel videodriver igxpmp32.sys 6.14.10.5449 (for XP Embedded)  for XP SP3 under Baytrail cpu.
This is crazy hard work.
I noticed, that even in the early Bios version Q1900M(1.30)ROM.zip (which I have),
still the Sata drivers are set to sleep via Osel. May be, that the reason why this VGA driver does not work to full until now,
is located in DSDT (via OSEL or something similar)
Dietmar
#5764infuscomus⇗ @diderius6

I don't have the BIOS version you are looking for - but I'm willing to maybe help you do a DSDT mod for it?

You won't need to flash the BIOS each time - I can confirm with certainty that the grub2 ACPI patching method works (the compiler date on the ACPI table changed and I confirmed it was using the altered table in XP)
#5765diderius6⇗ @infuscomus

Can you please write a Tutorial for this?
When I succeed with the Videodriver for Baytrail on the Q1900M board (Baytrail J1900 cpu with DEV_0F31),
I write a Tutorial about using Windbg for Lan debug on the Lenovo Flex 10 board
Dietmar

PS: The steps what I need to do are clear for me: The Baytrail Videodriver is a GT1 driver,
so its nearest partner is with DEV_0156 (HD2500, not(!) HD4000).
In Win7 (32 Bit) I followed step by step 0156h and compare to 0F31h and its magic numbers, which I have now all.
So I am about 99% sure, that I will have success. Until now, no Baytrail Videodriver for XP on this world;))..
#5766infuscomus⇗ @diderius6

It is best to use the Easy2boot+AgFM combo for this (although if you do not need XP textmode setup you can just use AgFM

1. Have a spare USB stick to be formatted.
2. Download the latest Easy2boot - ⇗ https://www.easy2boot.com/download/
3. Run Easy2boot and tell it which drive to format - in my case I:\
4. Wait for it to finish formating and copying the files it needs.
5. There should be a 1st drive lable E2B created - your ISOs go here if you are doing a new XP install.
5. A 2nd drive should also exist labeled E2B_PTN2 - go to this drive and create an ACPI folder on it and put your DSDT.bin file in there.
6. Boot from your Easy2boot drive and select the AgFM option from the menu.
7. Once booted into AgFM press F6 to reach the grub2 console
8. type this into your grub2 console - your hdX and msdosX number might be different, so use the  ls command to be sure you have the right drive

grub> acpi (hd0,msdos2)/ACPI/DSDT.bin

9. Your ACPI table should now be modded
10. Press F3 to select a drive to boot from - If you have an existing XP already installed select that, if not select your E2B drive and follow the steps to complete XP setup.
#5767infuscomus⇗ @diderius6

can I have your DSDT? I will try to mod it.
#5768diderius6⇗ @infuscomus
Here ist the original DSDT from Bios 1.30 for the Asrock Q1900M board.
The OSEL sleep command has to be canceled for the SATA device and may be
something other also, which is done by INTEL not to let XP to work on this Baytrail board
Dietmar

⇗ https://ufile.io/jv3rluqw
#5769infuscomus⇗ @diderius6

Thanks,
Can I have the original binary .bin file too?
#5770diderius6⇗ @infuscomus
Here is the wished *.raw file from Bios 1.30, from which the DSDT is build.
Interesting, which and how many steps Intel took, for to prevent a working XP, Win7 and Win8 on the Baytrail chipset
Dietmar

⇗ https://ufile.io/7ghhc2lp
#5771infuscomus⇗ @diderius6

Thanks
#5772infuscomus⇗ @diderius6

OK, try booting this - ⇗ https://anonfiles.com/BfFfA8uepd/dsdt13-mod_aml
#5773diderius6⇗ @infuscomus

Thanks a lot, the most critical OSEL is gone:)).
Do you have another master DSDT, from where you take ideas
Dietmar

PS: I also notice, that in the sleeping mode D0, now OSEL is gone.
This may be important for a lot of other devices too.
#5774infuscomus⇗ @diderius6

No Master DSDT table, Every DSDT table is a bit different, they have code in common though so I make educated guesses.

is everything working now? or not yet tested?
#5775diderius6⇗ @infuscomus

Until now I have not tested, because I have to build up everything for the Asrock Q1900M board.
But I compare your steps with my modded DSDT for the Flex 10 board and so I can see,
that for the very first time the sleeping mode D0 itself is modded also. This I forget,
Dietmar

 

Page 386

#5776gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5770
Interesting, which and how many steps Intel took, for to prevent a working XP, Win7 and Win8 on the Baytrail chipset Dietmar
⇗ @diderius6 ....Dietmar...I was wondering about that. So, if you have 3 operating systems running on a machine, like XP, W7 and W10, each OS has its own section in the BIOS? Or are you saying that Intel has modded parts of the BIOS to prevent XP running with W7 and W8?

I have a newer system, an Asus B360M mobo/chipset and Asus only supplies driver for W7 and newer. XP runs OK, using modded drivers, but I wonder if BIOS data covering XP has been omitted or compromised.

I know there were issues with DSDT earlier in this thread but it was fixed somehow by mods in the drivers. I'll need to go back and read the issues more carefully.

Please don't let the difficulty level discourage you. In reverse engineering I have faced problems that seemed well beyond my capabilities but I also found that when I persevere, my brain seems to compensate for the difficulty and gives insight. In other words, when something seems impossible, or too hard, don't pay any attention to the difficulty level. Take a break, do something else, then return to the problem. Challenging your brain causes brain cells to grow.

When I look back on the things I have worked out in reverse engineering over the past 15+ years, I can only shake my head. Have no idea how I worked such problems out. You guys, yourself, Infuscomus, Mov AX DEAD, Daniel K and others are doing really good work and I want you all to know your efforts are appreciated.

Keep up the good work.
#5777diderius6⇗ @gordo999

Thanks for nice words:))!
For the Lenovo Flex 10 (Baytrail) I have prove, that Intel disabled via DSDT in Bios the install
of XP, Win7, Win8
Dietmar
#5778gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5777
For the Lenovo Flex 10 (Baytrail) I have prove, that Intel disabled via DSDT in Bios the install of XP, Win7, Win8 Dietmar
⇗ @diderius6 ...that does not surprise me. Intel made good motherboards but they have not produced thier own motherboards since about 2013. Makes me wonder if it is Intel disabling the OSs or the manufacturer like Lenovo. When you buy an Asus mobo, for example, the BIOS comes from Asus, not Intel. Asus buys the chipset rights and designs them around an Asus style.

I do have evidence that Intel is interfering in other ways to prevent the use of XP on newer mobos. The fact that they removed any drivers that could operate on XP is proof of collusion with Microsoft. The management at Intel seems to have taken on an international flavour rather than the US accent it had when it first started. Same at Microsoft. There is a new attitude at Microsoft and Intel with regard to forcing users to upgrade  to newer OSs like W10.
#5779infuscomus⇗ @diderius6

did the modded DSDT work for you?
#5780Mov AX, 0xDEAD⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #5762

any progress on getting SP1 ACPI sourcecode to match acpi.sys of SP3? or outerspace acpi.sys?

Hi infuscomus,

Patched SP1 acpi srcs was done in october when i posted about it, if you'll compile it with compiler from win2003 ddk, you get SP2/3 binaries (not 100% byte match, but 100% BinDiff match), i didn't shared it because it is just proof-of-concept, sources will not work with ACPI2.0+ dsdt/ssdt.
I never planned to do something more with these sp1 acpi srcs because acpi.sys v.6666(outerspace) already support acpi2.0 syntax (except 64-bit things) and based on original SP3' acpi.sys.
#5781789
Zitat von ⇗ Labudico im Beitrag ¶ #5571
USB 3.0 driver - see on my screentshot



How did you manage the Intel USB3 driver ?  I have a Haswell laptop.  I would love to learn how modify and persuade the Intel driver to install and work.
#5782rm3113Hi all
I have a problem installing XP on x570 with 5600x cpu,
i think this is from agesa 1.1.0.0?
with agesa 1.0.xx it works but not with 1.1xx
thank you for your support

ps:
I can start winxp (with the gosht) but I am missing the usb
#5783diderius6For the very first time I succeed to load and start this XP Embedded Videodriver 6.14.10.5436 igxpmp32.sys modded from me for the Baytrail Lenovo Flex 10 netbook.
It starts, but then crash.
Very soon comes the most crazy lan debug session for this Flex 10
Dietmar

138: B9 E8
  139: 1A E4
  13A: 27 26
20EF5: 0F 90
20EF6: 8F 90
20EF7: E1 90
20EF8: 00 90
20EF9: 00 90
20EFA: 00 90
20F05: 0F E9
20F06: 84 08
20F07: D7 0A
20F08: 0A 00
20F0A: 00 90
21925: 09 05
21932: 0C 0F

#5784infuscomus⇗ @diderius6

I just wanted to confirm with you - did the DSDT mod work?
#5785diderius6⇗ @infuscomus

At the moment I have small time.
In 2 weeks I have holidays and I will test your DSDT. I checked it few times and I am sure, that it works.
Just now I try some hacks on igxpmp32.sys with interesting results as above
Dietmar
#5786XPWELL64Hi, I'm back to Win-Raid forums. I'm asking you to how to inject modded dsdt.aml into my bios without bsod error. I found another step to fix it. Use IASL to mod extractedasis.aml file.
Here is the link:



XPWELL64 has attached files to this post
#5787infuscomus⇗ @XPWELL64

Follow this guide - ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (385)
#5788XPWELL64⇗ @infuscomus ⇗ @diderius6
I think there is problem with injecting dsdt.aml wrong way. The system can't get dsdt.aml. Do you mod dsdt.aml extracted as-is to inject the dsdt.aml not wrong? Here is the original dsdt.aml extracted as is:



XPWELL64 has attached files to this post
#5789infuscomus⇗ @XPWELL64

are you using the modded acpi.sys?

what BSOD are you getting?
#5790XPWELL64⇗ @infuscomus
I replaced my dsdt.aml body, it gets bsod on every OSes including windows 10. With original dsdt in bios it gets bsod only in XP. Can replacing as is instead of body solve this bsod on XP?

 

Page 387

#5791infuscomus⇗ @XPWELL64

Post a screenshot of the BSOD XP gives you - both with and without the mod.
#5792XPWELL64⇗ @infuscomus ⇗ @diderius6
0x000000a5 0x00000001 0x00000002 with original dsdt


0x000000a5 0x000000011 0x00000008 with modded dsdt replaced body in bios
#5793infuscomus⇗ @XPWELL64

this might take a while to mod

In the mean time try this acpi.sys mod by daniel_k - ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (367)

take acpi2015.sys and rename it to acpi.sys and put it in your XP install
#5794XPWELL64Thank you for modding my dsdt. I'll use acpi.sys.
#5795blackwingcatHi.

I think Build 6666 luck method 0x1f LoadTable. :3
Is it no problem ?  

 
 L0003B990:
dd 00000001h
dd L0002CB10
dd 00000002h
dd L0002CA90
dd 00000012h
dd L0002CE50
dd 00000013h
dd L0002CA30[rot]
dd 0000001fh
dd offset Call_LoadTable[/rot]



 
And IOCTL_ACPI_METHOD Note 
L0002A720:
mov edi,edi
push ebp
mov ebp,esp
mov ecx,[ebp+0Ch]
cmp byte ptr [ecx+20h],00h
mov edx,[ecx+60h]
jnz L0002A754
mov eax,[edx+0Ch]
sub eax,0032C000h
jz L0002A79B // IOCTL_ACPI_ASYNC_EVAL_METHOD_V1
sub eax,00000004h
jz L0002A78F // IOCTL_ACPI_EVAL_METHOD_V1
sub eax,00000004h
jz L0002A783 //
sub eax,00000004h
jz L0002A777 //
sub eax,00000004h
jz L0002A76B // IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK
sub eax,00000004h
jz L0002A75F // IOCTL_ACPI_RELEASE_GLOBAL_LOCK
sub eax,00000004h
jz L0002A78F //CALL_IOCTL_ACPI_EVAL_METHOD_EX
sub eax,00000004h
jz L0002A79B // CALL_IOCTL_ACPI_ASYNC_EVAL_METHOD_EX
sub eax,00000004h
jz CALL_IOCTL_ACPI_ENUM_CHILDREN [8]
sub eax,00000004h
jz CALL_IOCTL_ACPI_UNKNOWNFUNC9
sub eax,00000004h
jz CALL_IOCTL_CALL_IOCTL_ACPI_GET_DEVICE_INFORMATION [10]
sub eax,00000004h
jz CALL_IOCTL_ACPI_UNKNOWNFUNC11
sub eax,00000004h
jz CALL_IOCTL_ACPI_UNKNOWNFUNC12
sub eax,00000004h
jz CALL_IOCTL_ACPI_UNKNOWNFUNC13
sub eax,00000004h
jz CALL_IOCTL_ACPI_GET_DEVICE_SPECIFIC_DAT [14]
sub eax,00000004h
jz L0002A78F // CALL_IOCTL_ACPI_EVAL_METHOD_V2 [15]
sub eax,00000004h
jz L0002A79B // CALL_IOCTL_ACPI_ASYNC_EVAL_METHOD_V2 [16]
sub eax,00000004h
jz L0002A78F // CALL_IOCTL_ACPI_EVAL_METHOD_V2_EX [17]
sub eax,00000004h
jz L0002A79B // CALL_IOCTL_ACPI_ASYNC_EVAL_METHOD_V2_EX [18]
#5796infuscomus⇗ @blackwingcat

I think ⇗ @Mov AX, 0xDEAD can tell you more, if I'm not mistaken he is the one who made it.
#5797ruthanWow legend is here, Blackwingcat welcome.
#5798XPWELL64⇗ @infuscomus
Does the acpi.sys ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (367) work for vista? I'm helping a new member installing vista.
#5799infuscomus⇗ @XPWELL64

Unfortunately no, Vista has it's own driver that needs to be modded - I think ⇗ @diderius6 can help you with that.
#5800blackwingcatHi.

I bought ASUS X590 PRO, and try to install Windows 2000 into it.
I can install Windows XP, but acpi problem prevents from my installing Windows 2000 :3
So I'm trying to improve Windows 2000 acpi.sys .
#5801diderius6⇗ @blackwingcat

Hi,
you can send me your acpi.sys from win2000 and the exact BSOD.
Then I try to to make acpi.sys work
Dietmar
#5802Andalu
Zitat von ⇗ infuscomus im Beitrag ¶ #5766
It is best to use the Easy2boot+AgFM combo for this (although if you do not need XP textmode setup you can just use AgFM

1. Have a spare USB stick to be formatted.
2. Download the latest Easy2boot - ⇗ https://www.easy2boot.com/download/
3. Run Easy2boot and tell it which drive to format - in my case I:\
4. Wait for it to finish formating and copying the files it needs.
5. There should be a 1st drive lable E2B created - your ISOs go here if you are doing a new XP install.
5. A 2nd drive should also exist labeled E2B_PTN2 - go to this drive and create an ACPI folder on it and put your DSDT.bin file in there.
6. Boot from your Easy2boot drive and select the AgFM option from the menu.
7. Once booted into AgFM press F6 to reach the grub2 console
8. type this into your grub2 console - your hdX and msdosX number might be different, so use the  ls command to be sure you have the right drive

grub> acpi (hd0,msdos2)/ACPI/DSDT.bin

9. Your ACPI table should now be modded
10. Press F3 to select a drive to boot from - If you have an existing XP already installed select that, if not select your E2B drive and follow the steps to complete XP setup.

Thanks for the guide

I would like to point out that if you want to prepare a USB stick in the easiest way, you have to use Windows10 and it is mandatory to have an internet connection because "Make_E2B.exe" must connect to the easy2boot.com site, presumably (and in my opinion unusually) to check the availability of an updated version otherwise the procedure can't start.
Instead by using XP, Win7 and 8, as indicated on the same site, the second partition "PTN2" will not be created on a USB stick so you have to use a fixed hard disk.

Is there an easier way to get a working USB stick or I have only to try the more complicated alternative procedure reported on that site?


Edit: I'll try to get a working usb stick using the "diskmod" driver in XP/Win7.
#5803infuscomus⇗ @Andalu

I admit I only tested on windows 10 and did not test in earlier versions of windows.

on this site - ⇗ https://www.fosshub.com/Easy2Boot.html
you can try this option
Easy2Boot ZIP E2B v2.06A for Linux, Windows 7 and XP systems (password is e2b)
#5804Andalu
Zitat von ⇗ infuscomus im Beitrag ¶ #5803
@Andalu

I admit I only tested on windows 10 and did not test in earlier versions of windows.

on this site - ⇗ https://www.fosshub.com/Easy2Boot.html
you can try this option
Easy2Boot ZIP E2B v2.06A for Linux, Windows 7 and XP systems (password is e2b)

I had already tried all the listed versions but none of them work on XP for creating and reading the 2nd partition on a USB stick.

A workaround is the use of the diskmon driver thanks to which XP correctly recognizes now the second E2B_PTN2 partition of a USB stick where I manually copied the agFM files. Everything seems to work correctly until the selection of the disk from which to start the XP installation: here, once the boot disk has been selected, I got the main easyboot screen again or the classic horizontal lines that fill the screen as a sign of error.

I am forced to read again the quite confusing instructions on the easy2boot website
I also find it really strange that a program that is used to create a booting disk needs a mandatory internet connection


Edit: I also tried to configure a fixed hard drive with easy2boot but even in this case, despite the instructions say otherwise, the program is unable to create the secondary partition on XP. I have tried every possibility so I can say that easy2boot doesn't work at all on my system.
I'll be happy to be proven wrong
#5805Mov AX, 0xDEAD
Zitat von ⇗ blackwingcat im Beitrag ¶ #5795
Hi.
I think Build 6666 luck method 0x1f LoadTable. :3
Is it no problem ?  


Hi blackwingcat,
yes, v6666 lack of loadtable, is any bios exist with this rare opcode ?

 

Page 388

#5806Andalu⇗ @infuscomus

I tried the other option you mentioned in the procedure at step 10. "Press F3 to select a drive to boot from - If you have an existing XP already installed select that" but after running the command "acpi (hd0,msdos2)/ACPI/DSDT.bin" in the grub console (without getting errors) and then selected the booted disk with XP already installed, I got the A5 BSOD anyway.
I have used the dsdt.bin extracted via aida64 trought the option "acpi dsdt dump" on my Asrock B250M Pro4 where other modded acpi drivers work fine.
Where did I go wrong?

Edit: I realized what I missed: a modded dsdt.bin  so the question remains the same: how to modify a dsdt table?
#5807infuscomus⇗ @Andalu

I'm still learning dsdt modding myself - I use this resource to interpret A5 BSODs ⇗ https://docs.microsoft.com/en-us/windows...acpi-bios-error

what A5 BSOD did you have? did you want me to try and mod yours?
#5808diderius6Driver for Baytrail VGA for Win7 compiled for OS version 5.0 (win2000)

I have a question. This driver from Intel for Win7 32 bit is compiled for Win2000.
There are some missing functions in ntoskrnl.exe

_chkstk
memcpy_s
KeAcquireGuardedMutex
KeInitializeGuardedMutex
KeInvalidateAllCaches
KeReleaseGuardedMutex
MmAllocatePagesForMdlEx
PoRegisterPowerSettingCallback
PoUnregisterPowerSettingCallback

⇗ @Mov AX, 0xDEAD
I remember that with Vista, a new driver model was introduced, also for the videodriver.
But when it is compiled for OS version 5.0 (see picture from Dependency Walker),
is there a chance to make it work with Kernel Extender for XP SP3
Dietmar

PS: Only the marked functions are until now not in the nice Kernel Extender.

Link for this videodriver
⇗ https://ufile.io/7oqczfkh



#5809Andalu⇗ @infuscomus

Thanks for the link ;)
I would like to learn how to modify a DSDT table by myself. Unfortunately all guides I found are not for windows or even for beginners.

Regarding my B250 board, I would like to solve the restart problem that doesn't work in XP, getting stuck on the "windows is shutting down" screen, really annoying.
No such problem in Win10, so I suppose it could just be a DSDT table issue.

The A5 bsod code I got is "0x00000003,0x8A095E44,0xC0000034,0x494E495F" which does not occur with other acpi.sys (outerspace,acpi2015 etc) but the failed restart is always present with them too.
#5810infuscomus⇗ @Andalu

weird that it would get stuck at "Windows is shutting down" I've only ever had that problem if a program gets stuck and won't let itself die.

maybe try msconfig with a selective startup - enable/disable individual programs to see if one of them is causing it?
#5811Andalu⇗ @infuscomus

the issue already occurs during the XP installation at end of the GUI setup, precisely on the last reboot before entering the desktop for the first time.
Even in that case it must always be restarted manually, so for all further times when a reboot is required. Only the shutdown works normally.
#5812infuscomus⇗ @Andalu

very strange, I've never had ACPI not restart before so I'm not entirely sure how to solve this.
#5813infuscomus⇗ @diderius6

for KeInvalidateAllCaches we have the WRK code at least.
#5814pappyN4I have the exact same issue as Andalu with restarts.

My system is Gigabye B450 Aorus M with Ryzen Zen2 (Matisse) stock F41 BIOS (AGESA 1.0.0.3AB), pure XP64 SP2 ISO except for acpi.sys from post 2202 and integrated AHCI drivers.  

In the text mode of the install it gets to Restating Now but I have to manually hit the restart button, same issue with GUI installer.  Once windows is installed, shutdown runs normally.  But the restarting it stops at the Shutting Down part and I have to hit restart button.  

It looks like windows closes everything off properly, no errors when booting up, just does not send that final command to restart.  I tried integrating other SATA drivers while I was trying to solve another problem but never could get restart working properly... Something outside of high level windows functions, low level windows/apci/BIOS is my uneducated guess.

No BSOD, no other drivers yet, all normal in Event Viewer.


-SATA1.2.1.321 from last XP 13.4 chipset drivers, drivers ran ok, restart issue

-SATA1.2.1.402 amd_sata.sys (from Win7pack) paired with amd_xata.sys1.2.1.321 (from XP pack)  (xata has missing dependencies), drivers ran ok (have to recheck, it was a while ago), restart issue

-SATA1.2.1.402 patched with NTOSKRNL_Emu, immediate 7B BSOD when updated, it did not like me doing this at all...  Looks like i patched ok, recalc checksum, added import to redirects.h, all green in DependencyWalker.

-StorAhci_V1.0_20200928 drivers ran ok, no SMART data, restart issue

Shutdown is normal for all
#5815diderius6⇗ @pappyN4

I noticed this behavior with missing restart,
when the videodriver is not correct installed
Dietmar
#5816diderius6⇗ @infuscomus

I flashed with Revelprog IS EEpromer your modded DSDT (for OSEL) for the Asrock Q1900M board
Baytrail J1900 cpu with Valley View VGA.
I doublecheck success of the Bios flash.
Board starts and now with your nice mod of DSDT I can chose for the very first time IDE mode for the harddisk.
The Bios version is P1.30, the very first version, that I can get for this board.
Now the crazy journey for to make a Baytrail videodriver for XP SP3 starts
Dietmar
#5817XPWELL64⇗ @diderius6
Does the driver in post ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (388) works for windows xp or 2000? I have intel hd graphics 5500
#5818XPWELL64⇗ @infuscomus
Did you complete my dsdt mod?
#5819diderius6⇗ @XPWELL64

Until now, I am even not sure if this driver works for Win7 32 bit, because it is not build for Baytrail Valley View VGA,
but in its binaries via IDA Pro you can see, that DEV_0F31 appears there for Valley View.
A lot of work more is needed, I have 3 weeks
Dietmar
#5820XPWELL64⇗ @infuscomus
Is there any acpi.sys for vista? I'm helping a user to install windows vista.

 

Page 389

#5821XPWELL64⇗ @diderius6
Is there any modded acpi.sys for vista? I'm helping a new user.
#5822Andalu⇗ @diderius6
about the non-working restart, I would like to report that in my case on the asrock B250M Pro4 no video card is installed, the graphics component comes from the intel processor.
#5823diderius6⇗ @XPWELL64
Until now I have not seen a modded acpi.sys for Vista.
You can send me your acpi.sys from Vista with the exact BSOD and I try to mod it
Dietmar
#5824diderius6⇗ @Andalu

"no video card is installed, the graphics component comes from the intel processor."
Yepp, exact in this case this crash on last reboot happens when this graphics from Intel is not recogniced correct
Dietmar
#5825diderius6On install with original XP SP3 CD in IDE mode on the Q1900M board
I get BSOD 0x0000007E (C0000005, xxx, yyy, zzz).
This BSOD seems to be characteristic for Baytrail CPU and XP.
With acpi.sys from outerspace ) this BSOD is gone
Dietmar
#5826Andalu⇗ @diderius6

with a video card installed (HD6450 + iCafe-WinXP v9.000.300.3010 drivers) the restart doesn't work anyway: the system remains always on and only the monitor turns off.
I still have to manually reset the system. Shutdown ok.
#5827diderius6⇗ @Andalu
Can you disable the onboard videocard and also its sound HD, hdmi in Bios
Dietmar
#5828Andalu
Zitat von ⇗ diderius6 im Beitrag ¶ #5827
@Andalu
Can you disable the onboard videocard and also its sound HD, hdmi in Bios
Dietmar

Same as before: system always on / monitor off.
No problem in Win7 with or without video card.
#5829infuscomus
Zitat von ⇗ diderius6 im Beitrag ¶ #5816

I flashed with Revelprog IS EEpromer your modded DSDT (for OSEL) for the Asrock Q1900M board
Baytrail J1900 cpu with Valley View VGA.



I would have preferred you test that it works with the grub2 method first, but oh well.
#5830infuscomus⇗ @XPWELL64

your DSDT has so many OS version entries it's a pain to get through.

did the acpi2015.sys work at least?
#5831infuscomus⇗ @diderius6

do you have any DSDT table with the missing OSYS entries?

e.g - OSYS = 0x07D9 etc...

⇗ @XPWELL64 's DSDT is missing them

        Method (_INI, 0, Serialized)  // _INI: Initialize
{
OSYS = 0x07D9
If (CondRefOf (\_OSI, Local0))
{
If (_OSI ("Windows 2009"))
{
OSYS = 0x07D9
}

If (_OSI ("Windows 2012"))
{
OSYS = 0x07DC
}

If (_OSI ("Windows 2013"))
{
OSYS = 0x07DD
}

If (_OSI ("Windows 2015"))
{
OSYS = 0x07DF
}
}

   

The ones I have different OSYS code so I can't use them - I think I had a DSDT table with OSYS code like this but can't seem to find it.
#5832diderius6⇗ @infuscomus
Here it is
Dietmar

 
        Method (_INI, 0, Serialized)  // _INI: Initialize
{
OSYS = 0x03E8
If (CondRefOf (\_OSI, Local0))
{
If (_OSI ("Windows 2001"))
{
OSYS = 0x07D1
}

If (_OSI ("Windows 2001 SP1"))
{
OSYS = 0x07D1
}

If (_OSI ("Windows 2001 SP2"))
{
OSYS = 0x07D2
}

If (_OSI ("Windows 2001.1"))
{
OSYS = 0x07D3
}

If (_OSI ("Windows 2006"))
{
OSYS = 0x07D6
}

If (_OSI ("Windows 2009"))
{
OSYS = 0x07D9
}

If (_OSI ("Windows 2012"))
{
OSYS = 0x07DC
}

If (_OSI ("Windows 2013"))
{
OSYS = 0x07DD
}

If (_OSI ("Windows 2015"))
{
OSYS = 0x07DF
}
}
}

#5833infuscomus⇗ @diderius6

Thanks
#5834infuscomus⇗ @XPWELL64

Thanks to help from diderius6 I have DSDT mod for you now.



infuscomus has attached files to this post
#5835Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #5808
Driver for Baytrail VGA for Win7 compiled for OS version 5.0 (win2000)

I have a question. This driver from Intel for Win7 32 bit is compiled for Win2000.


Hi diderius6,
Probably it is just linker.exe bug, it set OS ver in *.sys to 5.xx

Search in main *.sys for magic unicode utf-16 string "dxgkrnl", if *.sys contains this string = Vista video model driver
W2000 model video drivers has import from VIDEOPRT.SYS

 

Page 390

#5836diderius6⇗ @Mov AX, 0xDEAD
The device igdkmd32.sys Version 9.17.10.2963 does NOT contain the string "dxgkrnl", I just check with Ida.
So, there is hope for a W2000 model driver. And the crazy Bsod 0x00000050 may come from videoport.sys.
I changed videoport from XP SP3 against videoport from XP SP 2, but same 0x50 BSOD.

And for to make the very last check: I look at a igdkmd32.sys version 10.18.10.4176
compiled for OS version 6.3 subvers 6.1 (Win7) and there the string "dxgkrnl" appears
Dietmar

The Magic Number for Valley View in XP SP3 for DEV_0F31 seems to be 9  5 (7?)  0Eh
The Magic Number for Valley View in    Win7    for DEV_0F31 seems to be 9  5  0Fh
#5837pappyN4⇗ @diderius6
No restart issue happens both with no drivers installed (SATA only) and with most drivers installed (SATA/audio/LAN/GPU/IOMMU/SMBUS/chipset USB.  Remaining missing disabled. Still trying to get CPU USB working so disabled for this test.

Tested nvidia GT710 default XP driver and with latest 368.81 driver.
Tested amd HD5450 with default XP driver and with latest catalyst14.4 driver.

I'll test tomorrow with different SSD drive.  Actually i do not have a spare, so HDD :(

I could also try BIOS update.  Any possible issue with acpi if update from current AGESA 1.0.0.3AB to second newest BIOS 1.0.0.6 or newest that adds Zen3 1.1.0.0 D ?

F60e
2020/12/09
   Update AGESA ComboV2 1.1.0.0 D for AMD Ryzen 5000 series CPU support


F51
2?020/08/03
   Update AMD AGESA ComboV1 1.0.0.6 for 3rd Gen AMD Ryzen XT series processors
   Fix AMD security vulnerabilities for SMM Callout Privilege Escalation

F50
2?019/11/27
   Update AMD AGESA 1.0.0.4 B
   Improve system boot time
   Improve RAID function compatibility
   Improve PCIe device compatibility

Note:
Before updating BIOS to this new version, you MUST follow the steps as detailed under BIOS F40 description.

F42g
2?019/10/18
   Update AGESA 1.0.0.3 ABBA
   Improve Destiny 2 gaming compatibility
   Correction of PCIe Gen4 being disabled when using a 3rd Gen Ryzen (Matisse) CPU due to AGESA change

Note:
Before updating BIOS to this new version, you MUST follow the steps as detailed under BIOS F40 description.

F41
2?019/07/22
   Update AGESA 1.0.0.3 AB
   Improve M.2 SSD compatibility


Forgot to add.  Windows 7x64 has no problem.
#5838genieautravailAbout the shutdown issue. I have a similar issue with the modded Intel USB3 HCSwitch (Gen4_Series8_C220_and_later) provide by PPeti66x on the MDL forum.

Since one month I'm playing with a ZOTAC ZBOX EN760 mini PC (Haswell processor).
Every is fine except this stupid problem when I try to shutdown or reboot the computer.
I must press the power button for that.

If I switch back to the original PCI bus, the issue disappear.
I'am pretty sure that the switcher doesn't stop properly and block the shutdown process.

I have already posted a message on the MDL forum one month ago with some screenshots.
But nobody has answered until now.

A solution will be welcome.
#5839YuriyCN
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5835

W2000 model video drivers has import from VIDEOPRT.SYS



Кстати, обратите внимание, что VIDEOPRT.SYS взятый с дистрибутива с SP2 имеет до +200% лучшую 2D-производительность на Radeon видеокартах, при работе ОС без режима PAE и до +300% прирост 2D под патченой системой через WINXPPAE v2.0, чем оригинальный VIDEOPRT.SYS последней версии, взятый с SP3. На NVidia видеокартах сей феномен не наблюдается. Толи в драйвере косяк, толи в этом файле косяк, я не разобрался, просто использую файл с WinXP SP2.
#5840Mov AX, 0xDEAD
Zitat von ⇗ YuriyCN im Beitrag ¶ #5839
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5835

W2000 model video drivers has import from VIDEOPRT.SYS


VIDEOPRT.SYS взятый с дистрибутива с SP2


Привет/Hi,

rus:
Да, я помню про твою находку с SP2 версией VIDEOPRT.SYS, на встройке intel тоже надо попробовать.
Но мне кажется дело в банальном vsync, в sp2 возможно оно игнорируется и от этого такая разница в 2d

eng:
Yes, i remember your finding with SP2 version of VIDEOPRT.SYS, I should try too it on intel embedded.
But I think it's a trivial vsync, in sp2 it may be ignored and that's why there is such a difference in 2d
#5841Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #5836
@Mov AX, 0xDEAD
The device igdkmd32.sys Version 9.17.10.2963 does NOT contain the string "dxgkrnl", I just check with Ida.


Hi diderius6

You did not found string because you've used case-sensive find
try without it and you will get surprise
#5842gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5836
@Mov AX, 0xDEAD
The device igdkmd32.sys Version 9.17.10.2963 does NOT contain the string "dxgkrnl", I just check with Ida.

@diderius6.... Dietmar, I have found that the search engine in IDA sometimes misses strings. IDA won't identify a string unless the decompiler managed to find it. It's an 'interactive' decompiler because it relies on the user to help it decompile. On many occasions I have had to find decompiled code/data and point it out to IDA.

You probably know this already but if you find a string in IDA and it is in unicode, (if you can find the uncompiled code/data), and you want to decompile it, you can set the string type in the Options menu under General. Look for the Strings tab and then 'Default string literal type'. The default is C-style but you can select different string types in the drop-down menu, including unicode.  If you try to decompile unicode without changing that option it won't compile.

Sometimes the strings in executables and dlls are in unicode and a straight text search in IDA won't find it. You have to search for the unicode bytes. I prefer using a text editor like UltraEdit or HxD to locate strings, or a grep tool. They are better suited to finding strings based on an entered byte sequence. I have found that the IDA search engine doesn't find byte sequences very well   in code/data that is not decompiled. Even with decompiled code I have found it does not always find the strings.

Maybe it's just me. Then again, maybe it's not there.
#5843Mov AX, 0xDEAD
Zitat von ⇗ gordo999 im Beitrag ¶ #5842
IDA won't identify a string unless the decompiler managed to find it. It's an 'interactive' decompiler because it relies on the user to help it decompile. On many occasions I have had to find decompiled code/data and point it out to IDA.


In IDA to search bytes/strings switch to HEX VIEW screen, by default it can search only byte sequences, but it accept strings too
but it still search in logical sections only, this mean if string hidden in resources or between sections, search will fail
#5844diderius6I make some tests with the Intel graphik driver version 5436 for XP.

igxpmp32.sys is loaded, but then crashes and get unloaded on reboot for the Valley View Baytrail VGA with DEV_0F31 .
I found with Ida the exact place, where this crash happens,

.text:10021D87
.text:10021D87 loc_10021D87: ; CODE XREF: sub_10020DD0+F98 j
.text:10021D87 movzx eax, [ebp+var_469]
.text:10021D8E cmp eax, 1
.text:10021D91 jnz short loc_10021DB0
.text:10021D93 mov ecx, [ebp+var_470]
.text:10021D99 push ecx
.text:10021D9A lea edx, [ebp+var_468]
.text:10021DA0 push edx
.text:10021DA1 push offset aHardwareinfo_1 ; "HardwareInformation.AdapterString"
.text:10021DA6 mov eax, [ebp+arg_0]
.text:10021DA9 push eax
.text:10021DAA call ds:VideoPortSetRegistryParameters
.text:10021DB0
.text:10021DB0 loc_10021DB0: ; CODE XREF: sub_10020DD0+FC1 j
.text:10021DB0 push 12h
.text:10021DB2 push offset aInternal ; "Internal"
.text:10021DB7 push offset aHardwareinfo_2 ; "HardwareInformation.DacType"
.text:10021DBC mov ecx, [ebp+arg_0]
.text:10021DBF push ecx
.text:10021DC0 call ds:VideoPortSetRegistryParameters
.text:10021DC6 push 22h
.text:10021DC8 push offset aIntelVideoBios ; "Intel Video BIOS"
.text:10021DCD push offset aHardwareinfo_3 ; "HardwareInformation.BiosString"
.text:10021DD2 mov edx, [ebp+arg_0]
.text:10021DD5 push edx
.text:10021DD6 call ds:VideoPortSetRegistryParameters
.text:10021DDC


*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 50, {b9d18000, 0, 80c84241, 0}

*** ERROR: Module load completed but symbols could not be loaded for igxpmp32.sys
*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640
Probably caused by : igxpmp32.sys ( igxpmp32+21db0 )

Followup: MachineOwner
---------

nt!RtlpBreakWithStatusInstruction:
80ac37ec cc int 3

3: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

PAGE_FAULT_IN_NONPAGED_AREA (50)
Invalid system memory was referenced. This cannot be protected by try-except,
it must be protected by a Probe. Typically the address is just plain bad or it
is pointing at freed memory.
Arguments:
Arg1: b9d18000, memory referenced.
Arg2: 00000000, value 0 = read operation, 1 = write operation.
Arg3: 80c84241, If non-zero, the instruction address which referenced the bad memory
address.
Arg4: 00000000, (reserved)

Debugging Details:
------------------

*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640

READ_ADDRESS: b9d18000

FAULTING_IP:
nt!CmpSetValueDataNew+363
80c84241 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]

MM_INTERNAL_CODE: 0

DEFAULT_BUCKET_ID: DRIVER_FAULT

BUGCHECK_STR: 0x50

PROCESS_NAME: System

TRAP_FRAME: b9d16bf0 -- (.trap 0xffffffffb9d16bf0)
ErrCode = 00000000
eax=00003a70 ebx=e11fc024 ecx=00000acb edx=00000000 esi=b9d18000 edi=e11fcf68
eip=80c84241 esp=b9d16c64 ebp=b9d16ca0 iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010206
nt!CmpSetValueDataNew+0x363:
80c84241 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]
Resetting default scope

LOCK_ADDRESS: 80afd6c0 -- (!locks 80afd6c0)
NTSDEXTS: Unable to resolve ntdll!RtlCriticalSectionList
NTSDEXTS: Please check your symbols

PNP_TRIAGE:
Lock address : 0x80afd6c0
Thread Count : 1
Thread address: 0x89c80b30
Thread wait : 0x1254

LAST_CONTROL_TRANSFER: from 80a30d7b to 80ac37ec

STACK_TEXT:
b9d16724 80a30d7b 00000003 b9d18000 00000000 nt!RtlpBreakWithStatusInstruction
b9d16770 80a319e6 00000003 00000000 c05ce8c0 nt!KiBugCheckDebugBreak+0x19
b9d16b50 80a31f77 00000050 b9d18000 00000000 nt!KeBugCheck2+0x574
b9d16b70 80aa55ac 00000050 b9d18000 00000000 nt!KeBugCheckEx+0x1b
b9d16bd8 80ae20a8 00000000 b9d18000 00000000 nt!MmAccessFault+0x1016
b9d16bd8 80c84241 00000000 b9d18000 00000000 nt!KiTrap0E+0xdc
b9d16ca0 80c8832b e1037008 b9d170bc 00003a70 nt!CmpSetValueDataNew+0x363
b9d16cf0 80c8b208 e1037008 ce350444 b9d16dd0 nt!CmpSetValueKeyNew+0x13d
b9d16d78 80c6bfcc e19a1ab0 b9d16dd0 00000003 nt!CmSetValueKey+0x234
b9d16e14 80adedd8 80000430 b9d16ed4 00000000 nt!NtSetValueKey+0x2dc
b9d16e14 80a3c855 80000430 b9d16ed4 00000000 nt!KiFastCallEntry+0x158
b9d16eb0 80c00ed7 80000430 b9d16ed4 00000000 nt!ZwSetValueKey+0x11
b9d16ee0 b9327fa3 00000000 e1a2c2d0 a7f3a768 nt!RtlWriteRegistryValue+0x75
b9d16f0c b9334ba4 89c0f358 e1a2c2d0 b9d170bc VIDEOPRT!VPSetRegistryParameters+0xc9
b9d16f2c a7d4cdb0 89c0f358 a7f3a768 b9d170bc VIDEOPRT!VideoPortSetRegistryParameters+0x2a
WARNING: Stack unwind information not available. Following frames may be wrong.
b9d17524 a7f84e65 89c0f358 e17c0008 00000000 igxpmp32+0x21db0
b9d17660 a7d2e99d 89c0f358 00000000 00000000 igxpmp32+0x259e65
b9d17680 b9335318 89c0f358 00000000 00000000 igxpmp32+0x399d
b9d17884 b9335c9a 8996bc20 89acb450 89acb458 VIDEOPRT!VideoPortFindAdapter2+0x3ec
b9d178b0 b932fc41 8996bc20 89acb450 89acb458 VIDEOPRT!VideoPortFindAdapter+0x7c
b9d17a1c 80a21c8d 89c0f040 899bd188 89c0f040 VIDEOPRT!pVideoPortPnpDispatch+0x6ad
b9d17a34 80b5e526 b9d17aa4 89c8fb68 89c74700 nt!IopfCallDriver+0x51
b9d17a60 80b5e66e 89c0f040 b9d17a80 00000000 nt!IopSynchronousCall+0xf0
b9d17aa8 80a2c123 89c74700 00000001 00000000 nt!IopStartDevice+0x82
b9d17ac4 80b5d2e8 89c74700 b9d17d01 89bbbfe0 nt!PipProcessStartPhase1+0x9f
b9d17d20 80b5de56 89c8fb68 00000001 00000000 nt!PipProcessDevNodeTree+0x238
b9d17d58 80a2d0ab 89bbbfe0 89c80b30 80b1365c nt!PiRestartDevice+0x116
b9d17d80 80ad51a9 00000000 00000000 89c80b30 nt!PipDeviceActionWorker+0x17f
b9d17dac 80bd81ac 00000000 00000000 00000000 nt!ExpWorkerThread+0x10f
b9d17ddc 80ae4212 80ad509a 00000001 00000000 nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16


STACK_COMMAND: kb

FOLLOWUP_IP:
igxpmp32+21db0
a7d4cdb0 6a12 push 12h

SYMBOL_STACK_INDEX: f

SYMBOL_NAME: igxpmp32+21db0

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: igxpmp32

IMAGE_NAME: igxpmp32.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 50f711fb

FAILURE_BUCKET_ID: 0x50_igxpmp32+21db0

BUCKET_ID: 0x50_igxpmp32+21db0

Followup: MachineOwner
---------

#5845diderius6⇗ @Mov AX, 0xDEAD

Yes, you are right. I find this string at 4 places in igdkmd32.sys version 9.17.10.2963, for example in

mov     [ebp+var_18], offset aSDeviceDxgkrnl ; "S\\Device\\DxgKrnl"

But I searched before also with not case-sensive, so ⇗ @gordo999 is right also,

Dietmar
#5846Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #5844

igxpmp32.sys is loaded, but then crashes and get unloaded on reboot for the Valley View Baytrail VGA with DEV_0F31 .
I found with Ida the exact place, where this crash happens,
.text:10021D93                 mov     ecx, [ebp+var_470]
.text:10021D99 push ecx
.text:10021D9A lea edx, [ebp+var_468]
.text:10021DA0 push edx
.text:10021DA1 push offset aHardwareinfo_1 ; "HardwareInformation.AdapterString"
.text:10021DA6 mov eax, [ebp+arg_0]
.text:10021DA9 push eax
.text:10021DAA call ds:VideoPortSetRegistryParameters


 
VideoPortSetRegistryParameters(
PVOID HwDeviceExtension,
PWSTR ValueName,
PVOID ValueData,
ULONG ValueLength
);


HwDeviceExtension = arg_0 = OK
ValueName= "HardwareInformation.AdapterString" = OK
ValueData = &(ebp+var_468) = local bufer on stack = ???
ValueLength  = *(ebp+var_470) = lengh of this buffer = ???


i assume problem is var_468 , it must be be null-terminated string

#5847diderius6⇗ @Mov AX, 0xDEAD

From the Sourcecode of XP SP1 from videoprt.c there is written

VP_STATUS
VideoPortSetRegistryParameters(
PVOID HwDeviceExtension,
PWSTR ValueName,
PVOID ValueData,
ULONG ValueLength
)

/*++

Routine Description:

VideoPortSetRegistryParameters writes information to the CurrentControlSet
in the registry. The function automatically searches for or creates the
specified parameter name under the parameter key of the current driver.

Arguments:

HwDeviceExtension - Points to the miniport driver's device extension.

ValueName - Points to a Unicode string that contains the name of the
data value being written in the registry.

ValueData - Points to a buffer containing the information to be written
to the registry.

ValueLength - Specifies the size of the data being written to the registry.

Return Value:

This function returns the final status of the operation.

Environment:

This routine cannot be called from a miniport routine synchronized with
VideoPortSynchronizeRoutine or from an ISR.

--*/


Because I am very bad in Assembler,
can you please describe, how the 4 parameters via eax, ecx, edx are given to

VideoPortSetRegistryParameters(
PVOID HwDeviceExtension,
PWSTR ValueName,
PVOID ValueData,
ULONG ValueLength
)


From the output of Windbg, only the value of the register edx is zero, I think this edx=00000000
ValueData = &(ebp+var_468) from .text:10021D9A lea edx, [ebp+var_468]

eax=00003a70 ebx=e11fc024 ecx=00000acb edx=00000000 esi=b9d18000 edi=e11fcf68
eip=80c84241 esp=b9d16c64 ebp=b9d16ca0 iopl=0 nv up ei pl nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010206
nt!CmpSetValueDataNew+0x363:
80c84241 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]


And why can this error happen? What has to be stored in var_468 and can I give a value by hand to var_468?

As far as I understand, the function VideoPortSetRegistryParameters
writes values for the VGA device (here from Baytrail with DEV_0F31) into the registry.
They are a lot.
Question is, which values for DEV_0F31 (Baytrail) have to be different from DEV_0166 (HD4000).
There are differences, because in other case to mod the *.inf would be enough.

I compare those entries in Win7 via its *.inf there, most are the same.
Question is also, where the VALUES (concrete numbers) for this registry entries are stored
Dietmar

FILE COMPARISON
Produced: 18.12.2020 12:41:54

Mode: Just Differences

Left file: C:\Dokumente und Einstellungen\Administrator\Desktop\Neu Textdokument (17).txt
Right file: C:\Dokumente und Einstellungen\Administrator\Desktop\Neu Textdokument (18).txt
L1 [iIVBM_w7]
R1 [iVLV2M_w7]
---------------------------------------------------------
---------------------------------------------------------
L26 DelReg = PwrCons_UserPolicy_DelSwSettings
AddReg = XVYCCFeature_AddSwSettings
DelReg = XVYCCFeature_DelSwSettings
AddReg = DisplayDPP_IVB_AddSwSettings
DelReg = DisplayDPP_IVB_DelSwSettings
AddReg = DualLFPRCR_AddSwSettings
DelReg = DualLFPRCR_DelSwSettings

R26 AddReg = AsyncFlips_VLV2_AddSwSettings
DelReg = AsyncFlips_VLV2_DelSwSettings
AddReg = ScalerToHDMI_VLV2_AddSwSettings
DelReg = ScalerToHDMI_VLV2_DelSwSettings
AddReg = DisplayOptimization_VLV2_AddSwSettings
DelReg = DisplayOptimization_Generic_DelSwSettings
AddReg = AvoidPPSOutsideModeSet_AddSwSettings
DelReg = AvoidPPSOutsideModeSet_DelSwSettings
AddReg = AudioLPE_WA_AddSwSettings
DelReg = AudioLPE_WA_DelSwSettings
---------------------------------------------------------
#5848diderius6These are the exports from videoprt.sys from XP SP3.
The name of the export functions are the same in XP SP2 and XP SP3.

Compared with XP SP1, those functions appear new in XP SP2, SP3

PortNotification
VideoPortDbgReportComplete
VideoPortDbgReportCreate
VideoPortDbgReportSecondaryData
VideoPortNotification


Dietmar

EDIT: igxpmp32.sys from XP SP3 imports 44 functions from videoport.sys.

NAME VIDEOPRT.SYS XP SP3

EXPORTS for XP SP3

VideoPortInterlockedDecrement
VideoPortInterlockedExchange
VideoPortInterlockedIncrement
PortNotification
VideoPortAcquireDeviceLock
VideoPortAcquireSpinLock
VideoPortAcquireSpinLockAtDpcLevel
VideoPortAllocateBuffer
VideoPortAllocateCommonBuffer
VideoPortAllocateContiguousMemory
VideoPortAllocatePool
VideoPortAssociateEventsWithDmaHandle
VideoPortCheckForDeviceExistance
VideoPortCheckForDeviceExistence
VideoPortClearEvent
VideoPortCompareMemory
VideoPortCompleteDma
VideoPortCreateEvent
VideoPortCreateSecondaryDisplay
VideoPortCreateSpinLock
VideoPortDDCMonitorHelper
VideoPortDbgReportComplete
VideoPortDbgReportCreate
VideoPortDbgReportSecondaryData
VideoPortDebugPrint
VideoPortDeleteEvent
VideoPortDeleteSpinLock
VideoPortDisableInterrupt
VideoPortDoDma
VideoPortEnableInterrupt
VideoPortEnumerateChildren
VideoPortFlushRegistry
VideoPortFreeCommonBuffer
VideoPortFreeDeviceBase
VideoPortFreePool
VideoPortGetAccessRanges
VideoPortGetAgpServices
VideoPortGetAssociatedDeviceExtension
VideoPortGetAssociatedDeviceID
VideoPortGetBusData
VideoPortGetBytesUsed
VideoPortGetCommonBuffer
VideoPortGetCurrentIrql
VideoPortGetDeviceBase
VideoPortGetDeviceData
VideoPortGetDmaAdapter
VideoPortGetDmaContext
VideoPortGetMdl
VideoPortGetRegistryParameters
VideoPortGetRomImage
VideoPortGetVersion
VideoPortGetVgaStatus
VideoPortInitialize
VideoPortInt10
VideoPortLockBuffer
VideoPortLockPages
VideoPortLogError
VideoPortMapBankedMemory
VideoPortMapDmaMemory
VideoPortMapMemory
VideoPortMoveMemory
VideoPortNotification
VideoPortPutDmaAdapter
VideoPortQueryPerformanceCounter
VideoPortQueryServices
VideoPortQuerySystemTime
VideoPortQueueDpc
VideoPortReadPortBufferUchar
VideoPortReadPortBufferUlong
VideoPortReadPortBufferUshort
VideoPortReadPortUchar
VideoPortReadPortUlong
VideoPortReadPortUshort
VideoPortReadRegisterBufferUchar
VideoPortReadRegisterBufferUlong
VideoPortReadRegisterBufferUshort
VideoPortReadRegisterUchar
VideoPortReadRegisterUlong
VideoPortReadRegisterUshort
VideoPortReadStateEvent
VideoPortRegisterBugcheckCallback
VideoPortReleaseBuffer
VideoPortReleaseCommonBuffer
VideoPortReleaseDeviceLock
VideoPortReleaseSpinLock
VideoPortReleaseSpinLockFromDpcLevel
VideoPortScanRom
VideoPortSetBusData
VideoPortSetBytesUsed
VideoPortSetDmaContext
VideoPortSetEvent
VideoPortSetRegistryParameters
VideoPortSetTrappedEmulatorPorts
VideoPortSignalDmaComplete
VideoPortStallExecution
VideoPortStartDma
VideoPortStartTimer
VideoPortStopTimer
VideoPortSynchronizeExecution
VideoPortUnlockBuffer
VideoPortUnlockPages
VideoPortUnmapDmaMemory
VideoPortUnmapMemory
VideoPortVerifyAccessRanges
VideoPortWaitForSingleObject
VideoPortWritePortBufferUchar
VideoPortWritePortBufferUlong
VideoPortWritePortBufferUshort
VideoPortWritePortUchar
VideoPortWritePortUlong
VideoPortWritePortUshort
VideoPortWriteRegisterBufferUchar
VideoPortWriteRegisterBufferUlong
VideoPortWriteRegisterBufferUshort
VideoPortWriteRegisterUchar
VideoPortWriteRegisterUlong
VideoPortWriteRegisterUshort
VideoPortZeroDeviceMemory
VideoPortZeroMemory
VpNotifyEaData

#5849Mov AX, 0xDEADAnd why can this error happen? What has to be stored in var_468 and can I give a value by hand to var_468?
Set breakpoint before call VideoPortSetRegistryParameters() and you will see all regs and vars
Because you dont know asm, you won't be able to go deep further
#5850diderius6⇗ @Mov AX, 0xDEAD
Oh, I can learn a lot and I have 3 weeks time
Dietmar

 

Page 391

#5851diderius6May be the most easy way, to get correct values for the Baytrail with DEV_0F31 for the registry of XP SP3
is just to install Win7 on the Baytrail J1900 board
and extract the changes in registry for the ialm device (and etc.), do the same for HD4000 (via force in *.inf) and then put the changes compared to HD4000 into the registry of XP SP3.
So, no need for any *.inf for the igxpmp32.sys and etc. under XP
Dietmar

PS: Under XP, I can see in registry, that the ialm device (2 devices) have an root enum entry and with Windbg that the root device is started, but only not for the DEV_0F31.

So may be, that my mod of the igxpmp32.sys for DEV_0F31 is already working,
but only the correct entries in registry for DEV_0F31 Baytrail Valley View are missed.
#5852gordo999
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5843
In IDA to search bytes/strings switch to HEX VIEW screen...
⇗ @Mov AX, 0xDEAD ...thanks for tip. There are times when I encounter large amounts of code that has not been decompiled correctly and I work through it a bit at a time using the 'undefine' command. Then I go through that data looking for obvious strings. Sometimes, I also look for common assembly instructions like a jump or return, which helps identify code.

I always load the resources section when loading the executable and go through it as well. My version of IDA is an older version so maybe yours does a better job of disassembly. I do have the free version 7 as well.
#5853gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5847
Because I am very bad in Assembler,
can you please describe, how the 4 parameters via eax, ecx, edx are given to
VideoPortSetRegistryParameters(
PVOID HwDeviceExtension,
PWSTR ValueName,
PVOID ValueData,
ULONG ValueLength
)


⇗ @diderius6 ...if you look before the CALL VideoPortSetRegistryParameters statement you will see PUSH instructions to PUSH eax PUSH ecx, etc. The PUSH closest to the CALL is usually the first parameter in the statement above. There are different calling conventions but the one I have described is the one I have always encountered in apps running Windows code.

You can't do that using IDA in the straight decompiler mode. I have not used the IDA debugger so I'm not familiar with how it works. You need a debugger like Windbg. You need the ability inherent in a debugger to dump the memory at a specific address so you can see what is there.

Of course, the PUSH statements are pushing those values onto the stack, a temporary memory location. The CALLed function can then retrieve the values from the stack. The return address is PUSHed automatically by the system and that provides a means of tracing back through code when you are nested deep in a CALL structure (A called function calls another function which calls another function....).

You can sometimes confirm you have the right parameter by looking at the address referenced in the PUSH statement. For example, if the statement before the CALL references the second parameter, PWSTR ValueName, it is a pointer to the address of a string. PWSTR means pointer to a wide string where wide means a unicode string. When you see the string in memory it will be the ASCII characters separated by zeros, 0x00.

Of course, the PWSTR is not there in the assembly code unless you also have the source code loaded in the debugger. So, you have to learn to dump the address indicated at PWSTR ValueName and look for the string. If it's not there, and sometimes it isn't for some reason, there may be another address at that location, so you can dump that address to see if the string is there.  It can all seem very complex but once you start tracing through code it becomes second nature.

I learned by keeping a Win32 programming manual beside the computer, an ASCII table, and of course, the Intel assembly instruction manual. You can look up most functions on the Net these days.

You can't do this using IDA. You need a debugger like Windbg. The problem today is that most code is 64 bit and many debuggers were written for 32-bit code. I have used the 64-bit version of Olly and the newer x64dbg debugger. Windbg has a steep learning curve and is not always as easy to use as something like x64dbg. It's a trade-off, depending on what you are trying to do. I have not ncountered problems tracing 64-bit code as opposed to 32-bit. The major difference is the size of the addresses and data. Most of the time, the 8 least significant bytes is all you need. I use the few most significant bytes to orient myself in the code, nothing overly complex.

If you encounter a CALL VideoPortSetRegistryParameters, the first parameter of the function will be PUSHed last, so it will appear right before the CALL. Sometimes, they use MOV instructions, or LEA instructions with the PUSH instructions, so the code before the CALL can be quite spread out and not neat, and compact as indicated in your statement above.
#5854diderius6⇗ @gordo999

Thanks a lot for help!
Today I think, that the problem itself is not in the modded igxpmp32.sys driver.
I notice, that from the versions 5441, 5445, 5449 (last) the Device for Baytrail with DEV_0F31 is mentioned
in the line with
cmp     eax, 0F31h

May be, that the much bigger problem is to set the correct values for the Valley View (Baytrail) to registry.
Some settings are different for HD4000 (DEV_0166), because in other case *.inf mod would work for Valley View (Baytrail) also.
And also in Win7 they are separated, HD4000 with [iIVBM_w7]
and Valley View (Baytrail) with [iVLV2M_w7] in the *.inf file.
Do you know, where the concrete numbers for the entries from the *.inf file are stored?
May be in a *.dll?
And the question is, if such a *.dll needs to be modded for to support DEV_0F31 or is it only needed one time for to set the correct values to registry? With other drivers this problem does not happen, because their entries are very few and only in
HKLM\System\ControlSet001\Services.
May be the Bsod 0x50 happens, because XP does not know, where to find the correct values for the entries for Valleyview (Baytrail) to the registry (because they just do not exist until now under XP)
and so an empty string is the result in ValueData in
VideoPortSetRegistryParameters(
PVOID HwDeviceExtension,
PWSTR ValueName,
PVOID ValueData,
ULONG ValueLength
)

Dietmar

PS: May be, that the correct values for PVOID ValueData can be given by hand.
For that you need to know, WHICH values are needed at this place from VideoPortSetRegistryParameters to registry.
VideoPortSetRegistryParameters is called several times and the first call of it survives without Bsod.
#5855diderius6I take a look at the mod from ⇗ @canonkong
for HD510 => UHD610 under Win7.
He modded only *.inf and *.sys.
And the way how he did this, is clear for me.

The problem with Baytrail Valley View Mod is harder, because in Win7 there is only one packet called

iSKLD_w7

in its *.inf. And all the different DEV_ numbers also in mod belong only to this package.
This is other in Win7 for DEV_166 (HD4000) and DEV_0F31 (Baytrail, Valley View).
There are 2 different packages in its *.inf.
So, this other package has to be put to registry for Baytrail, a little bit different from HD4000
Dietmar
#5856schreibersteinNew report:

After testing out the Sapphire AMD Radeon 7970 graphics card for a while now, I fount its performance to be lackluster on my Z490 platform:

Pro:
- Modern driver support in "modern" operating systems (e.g. Windows 10, Apple macOS, ...)
- Reasonable performance for a card from ~2011
- Vulkan support
- Quiet, high quality card
- Sharp image output
- 4K compatibility with HDMI and DisplayPort

Neg:
- Performance feels dated when playing games at 1440p
- Windows XP 2D performance is very slow (~1900 pts in Tom 2D Benchmark)
---> Regardless of the blazing fast 10 core CPU, the UI feels very sluggish like an old Intel Centrino notebook from 2005.
---> Performance degraded even further when using the PAE memory patch to enable more than ~900 MB of RAM (~1900 pts to ~400 pts on Tom 2D Benchmark) = UNUSABLE PERFORMANCE!
---> Scrolling in web browser felt slow
- Catalyst Control Center buggy on Windows XP


Out of frustration and curiosity, I purchased a MSI NVIDIA GeForce 980 Ti (circa late 2015) and installed it in my Z490 system.
I use a Sapphire Radeon 5700 XT Pulse as my primary graphics card (also during boot), and the 980 Ti in the second slot.
After boot, I use my DVI KVM switch to switch to the 980 Ti's DVI output.
The driver's need to be modded in order for them to work with 900 series cards higher than the GTX 960:
(Source: Polish tutorial ⇗ https://www.youtube.com/watch?v=xwWrxu84hDw)

- Go to NVIDIA Website
- Download driver for GeForce 960 for Windows XP (368.81-desktop-winxp-32bit-international.exe) from 2016
- Execute installer until it crashes (no compatible card found) = Installer files are now extracted!
- Edit "C:\NVIDIA\DisplayDriver\368.81\winxp\International\Display.Driver\nv4_dispi.inf"

- Under "Manufacturer" add:

%NVIDIA_DEV.13C2%           = Section008, PCI\VEN_10DE&DEV_13C2
%NVIDIA_DEV.13C0%           = Section008, PCI\VEN_10DE&DEV_13C0
%NVIDIA_DEV.17C8%           = Section008, PCI\VEN_10DE&DEV_17C8
%NVIDIA_DEV.17C2%           = Section008, PCI\VEN_10DE&DEV_17C2
%NVIDIA_DEV.17F0%           = Section012, PCI\VEN_10DE&DEV_17F0

- Under "Strings" add:

NVIDIA_DEV.13C2 = "NVIDIA GeForce GTX 970"
NVIDIA_DEV.13C0 = "NVIDIA GeForce GTX 980"
NVIDIA_DEV.17C8 = "NVIDIA GeForce GTX 980 Ti"
NVIDIA_DEV.17C2 = "NVIDIA GeForce GTX TITAN X"
NVIDIA_DEV.17F0 = "NVIDIA Quadro M6000"

- Save file
- Execute installer setup.exe "C:\NVIDIA\DisplayDriver\368.81\WinXP\International\setup.exe"
- Install driver normally

The experience is SIGNIFICANTLY better than with the AMD Radeon 7970 card! :
- Tom 2D Benchmark results improved from ~1900 pts to ~6380
- UI feels really responsive, like I would expect from a modern system
- No performance degradation when using PAE patch to fully use my 64GB of RAM (maybe ~300 pts less in Tom 2D? But certainly not noticeable)
- Browsing experience very smooth with MyPal
- Significantly better performance overall, even in modern applications or games

Keep in mind that this card is NOT supported in modern macOS versions and probably never will!

I recommend the NVIDIA GeForce 900 series for modern Windows XP systems.
The system finally works like I always wanted it to work: Snappy, overkill, quiet.
I can finally use more than ~900 MB of RAM without the system becoming an unresponsive, slow mess!

If I could find any way to use Creative EAX sound with PAE enabled (any Creative card or USB card driver for that matter), it would be perfect.
Because all drivers I tested for Creative PCI cards only emitted noise when using any PAE patch (4GB or ALL).

Right now, I am using a USB3 Ethernet adapter with Realtek 8153 chipset until there is some way to enable the onboard NICs.
The modded Microsoft generic XHCI driver works fabulously.
I thank you all.

Best regards,
schreiberstein
#5857onuracengiz⇗ 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 (sapientcoder's / dated 7 May 2018)
#5858tumagonx
Zitat von ⇗ schreiberstein im Beitrag ¶ #5856
New report:

If I could find any way to use Creative EAX sound with PAE enabled (any Creative card or USB card driver for that matter), it would be perfect.
Because all drivers I tested for Creative PCI cards only emitted noise when using any PAE patch (4GB or ALL).

schreiberstein


Thanks for the report thats really cool hardware!
I didn't know maxwell driver is compatible with the PAE patch. I have read conflicting info about PAE and maxwell:
⇗ https://www.nvidia.com/en-us/geforce/for...pport-pae-mode/
⇗ http://fireswordblog.blogspot.com/2014/0...msys-after.html


Have you try ASUS Xonar with their emulated EAX (C-Media chipset)?

Another thing, can you use your 64GB RAM fully (say run multiple 7zip at max compression)?
according to this paper:
⇗ https://demandtech.com/wp-content/upload...ws-anUpdate.pdf
there is 16GB barrier of "normal" use and the rest will need AWE (like lmdisk). Assuming pagefile is disabled.
#5859tumagonxTo BIOS modder here,
Is there easy way to spot XP ACPI incompatibility before buying new motherboard? let say by downloading BIOS update from vendor and check for particular strings in ROM file?

Could I rely on specs information where vendor claim ACPI 1.x compatibility like: ⇗ https://www.asrockrack.com/general/produ...#Specifications

PS: assuming I use vanilla XP acpi.sys.
#5860onuracengiz
Zitat von ⇗ schreiberstein im Beitrag ¶ #5856

If I could find any way to use Creative EAX sound with PAE enabled (any Creative card or USB card driver for that matter), it would be perfect.



⇗ SB Audigy Series Support Pack 6.1 (maybe?)
#5861diderius6⇗ @tumagonx

Yes, a Bios with Acpi 1.b is full Acpi compatible with XP.
But there may be no drivers at all under XP for this board.

Until now, I do not find a single motherboard,
where mod of Bios DSDT and /or modded acpi.sys does not work for to start XP with Acpi
Dietmar
#5862diderius6I found in the Mod from ⇗ @canonkong,
that the Device with DEV_0D26 HD5200 is very similar with
Baytrail DEV_0F31 but with other magic numbers and some more stuff for Baytrail
Dietmar
#5863schreiberstein⇗ @onuracengiz I was already trying it with the daniel_k driver packs. Both Audigy and X-Fi. Nothing. And the X-FI Driver was actually from 2016 or so. Very recent. It seems that everything that Creative touched is not PAE compatible.
My onboard Realtek ALC 1220 on my Z490 Designare D works without problems with non-PAE and PAE. But sadly it does not have ASIO or particularly good sound.
⇗ @tumagonx I have been thinking about the Asus Xonar cards, even though I have read that their EAX emulation is mostly a joke. And it is questionable how well the XP compatibility works.

For USB Audio devices, I am sure that in order to support EAX they would need some kind of special Creative driver... and this would probably result in the same incompatibility.

(ASIO works under PAE, but normal Windows Sounds is high pitched noise.)
If I find a cheap offer on eBay, I will probably get one of these newer Creative USB cards.

Individual tasks on 32-Bit should be limited to 2GB. I will try some high memory programs and try to get some kind of VM hypervisor working. (Need to track down old VMware versions (10?), hoping they will still work with this new CPU).

Overall, I have never been so satisfied with my Windows XP setup.
It would be quite possible to use it as "daily driver" as well.

And btw. I find it amusing that I purchased a 980 Ti for "Retro Gaming / Retro Computer purposes".
I barely play games at all, but many high end cards have very nice to have features (higher resolutions, more ports, zero / low fan speed, higher quality, ...)

EDIT: Remaining problem I have: The CPU does not boost at all! It is constantly stuck at base clock of 3.6 GHz in case of my 10850K. Is there any tweak / setting I could apply to allow it to boost?
I remember that it worked on my 9900K on my Z390 Designare board.
#5864onuracengizthere is no other special creative drivers around,except ⇗ OpenAL is missing in that package (some apps/games were depending on that back in the day)
have you tried using an audio control app,like fxsound on top of it? (for pinpointing the problem)
#5865infuscomus⇗ @schreiberstein

have you tried an Audigy RX? This works for my threadripper system.

 

Page 392

#5866schreiberstein⇗ @infuscomus Does it work WITH PAE patch enabled?
Which drivers did you use? daniel_k's package?

If it works, I would order myself one of those.

Cheers,
schreiberstein
#5867Mov AX, 0xDEAD
Zitat von ⇗ gordo999 im Beitrag ¶ #5853

You can't do this using IDA. You need a debugger like Windbg.


IDA has internal windbg plugin, i always use IDA for debugging kernel level things
It's little tricky, but works in most cases
#5868schreibersteinI can confirm that VirtualBox 5.2.44 from July 2020 (the now unsupported branch before the 6.0 that happened later in 2020) works just fine on my system.
It is possible to allocate up to 3854 MB to the guest.
64 Bit guests work: I confirmed Ubuntu 20.04 to work with 3854MB.
Due to the 32 Bit limitation, I assume it is impossible to allocate more than 3.8GB to a guest.
Maybe this can be circumvented with VMware, but I think the last working release is very very old which may be even more problematic than using VirtualBox.
It is possible that the CPU is incompatible. I will try to confirm that later.

For now, it is simply amazing to be able to run virtual machines. :-)

Cheers,
schreiberstein

EDIT: VMware Workstation 10.0.0.7 is the last supported version for 32-Bit Windows hosts (including XP).
Booting a modern GNU/Linux system results in a Kernel Panic at a very early stage. I think it is an incompatibility with the modern hardware.
However, I found out that VirtualBox can be patched to ignore the arbitrary 3854MB limit (VBoxSVC.exe needs to be patched).
See: ⇗ https://deadfishsw.wordpress.com/2016/07...e-3584mb-limit/
(If this blog ever goes down, contact me, I have a copy of this.)
After the file has been patched, you can edit the ".vbox" file of your virtual machine and adjust the assigned RAM manually. (Cannot be done via the GUI!)
This is slightly inconvenient, but very doable.
I tested assigning 16GB to a 64 Bit guest and it worked flawlessly.
That is, virtualization should be fine for at least several more years.

EDIT2: I can confirm it is working reliably. Running prime95 memory stress mode and several applications lead the system to consume to consume 92% of 16GB RAM. No crashes, no calculation errors in prime95, ... THIS IS GREAT!
#5869tumagonx
Zitat von ⇗ diderius6 im Beitrag ¶ #5861
@tumagonx

Yes, a Bios with Acpi 1.b is full Acpi compatible with XP.
But there may be no drivers at all under XP for this board.

Until now, I do not find a single motherboard,
where mod of Bios DSDT and /or modded acpi.sys does not work for to start XP with Acpi
Dietmar


Thanks if possible I want to keep all XP files intact except for kernel and hal where they can be loaded as different filename, I kind of baffled by how random ASrock put their ACPI compliance as the one above is xLake generation and their other xLake MB have ACPI 3.0.
Is there any rules why vendor put particular ACPI level?
#5870Mov AX, 0xDEAD
Zitat von ⇗ tumagonx im Beitrag ¶ #5869
Thanks if possible I want to keep all XP files intact except for kernel and hal where they can be loaded as different filename

you still need patched acpi.sys because most modern MBs use acpi 2.0 syntax
if you want to keep original acpi.sys, need heavy patching DSDT/SSDT tables in bios, this is hard work
#5871tumagonx
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5870
Zitat von ⇗ tumagonx im Beitrag ¶ #5869
Thanks if possible I want to keep all XP files intact except for kernel and hal where they can be loaded as different filename

you still need patched acpi.sys because most modern MBs use acpi 2.0 syntax
if you want to keep original acpi.sys, need heavy patching DSDT/SSDT tables in bios, this is hard work



That's why I'm hunting down ACPI 1.x compatible MBs :) BTW thank for your ntldr ACPI patcher, I'm considering to patch the NTFS boot record (to load different ntldr).

⇗ @schreiberstein
Once you solve EAX issue, you should post your system on youtube, you will pissing off lots of XP hater there! :D
#5872gordo999
Zitat von ⇗ onuracengiz im Beitrag ¶ #5857
.Net Framework runtimes (from 3.5sp1 to 4.8)
⇗ @onuracengiz ...my understanding is that XP won't run on .Net above version 3.5. Can you confirm?

Thanks for links, I have been running the unofficial SP4 for some time.
#5873schreiberstein⇗ @tumagonx I am considering that. Especially now that I have PAE mode working reliably and can run VMs with 16GB of guest memory. Next year is XP anniversary.  With a VM for the "OH NO! I NEED THIS APP BUT IT NEEDS WINDOWS 7 OR LATER!!!!1111" moments, it can be used as a daily driver. I only wish MyPal browser would be a tad more reliable. The Chinese Chromium forks are not much better.

I would also like to move XP to a NVME drive. Then it would be perfect overkill.
#5874gordo999
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5867
IDA has internal windbg plugin, i always use IDA for debugging kernel level things
⇗ @Mov AX, 0xDEAD ...thanks for information. My IDA versions are so old they were installed on XP (version 5+). I am using the newer free IDA version 7. I'll try to find the windbg plugin but I'm not sure if it will work with older version.

I miss the softice debugger. It did not have the advanced features of windbg but it could trace anywhere in ring 0. At the sysenter command, you could trace into it and into system code. I have not been able to do that with windbg or any other debugger.

Some people claim you don't need to trace system code but I often found it useful. For example, a directx app uses its own mouse cursor so you can't trap a mouse button press. With softice, I was able to trap a LButtondown command using wmcommand and trace through the mouse driver, through ring 0 code, and into the dx app from the backend.
#5875diderius6Hi,
I think, that I am only one step away from to get Baytrail VGA to run on XP.
All wished entries are put to registry.
The 5449 driver starts but then gets unloaded again, for an unknown reason.
⇗ @Mov AX, 0xDEAD
Can you please write a short Tutorial, how to set a breakpoint for the driver igxpmp32.sys vers. 5449?
And how to look with Windbg step by step at which point this driver gets unloaded.
I have no Bsod now. Can this also happen, because I did a small mod for igxpmp32.sys and now setupapi.log cries in Windows about everything is unsigned

Dietmar

PS: I load it up, maybe somebody wants to test. It is the modded driver igxpmp32.sys and modded *.inf all together
with there original ones. I modded the Magic Numbers for XP to 9 5 0Eh .
In the original driver 5449 it was 9 7 0Eh .

⇗ https://ufile.io/s6lgsp56
#5876YuriyCN
Zitat von ⇗ schreiberstein im Beitrag ¶ #5856
New report:

After testing out the Sapphire AMD Radeon 7970 graphics card for a while now, I fount its performance to be lackluster on my Z490 platform:

Neg:
- Performance feels dated when playing games at 1440p
- Windows XP 2D performance is very slow (~1900 pts in Tom 2D Benchmark)
---> Regardless of the blazing fast 10 core CPU, the UI feels very sluggish like an old Intel Centrino notebook from 2005.
---> Performance degraded even further when using the PAE memory patch to enable more than ~900 MB of RAM (~1900 pts to ~400 pts on Tom 2D Benchmark) = UNUSABLE PERFORMANCE!
---> Scrolling in web browser felt slow
- Catalyst Control Center buggy on Windows XP



1. To increase 2D performance on RADEON video cards in 2-3 times, you need to replace the videoprt.sys file with a file with WinXP SP2.
⇗ https://www.upload.ee/files/12489589/videoprt_files.zip.html

2. Good Catalyst Control Center for Windows XP
⇗ https://www.upload.ee/files/12377846/AMD...-Pack3.zip.html

3. Scrolling in web browser felt slow - it is observed with PAE only. Without PAE - scrolling in web browser works fast.
Replace the file c:\WINDOWS\system32\drivers\videoprt.sys - and the scroll will work fine!
#5877schreiberstein⇗ @YuriyCN Thank you very much! If I get around to test the AMD/ATI Radeon card again, I will definitely give this a shot! Wish I had known this a bit earlier... However, the 980 Ti really is a beast. I do not regret upgrading.
#5878tumagonx
Zitat von ⇗ schreiberstein im Beitrag ¶ #5868
I can confirm that VirtualBox 5.2.44 from July 2020 (the now unsupported branch before the 6.0 that happened later in 2020) works just fine on my system.
It is possible to allocate up to 3854 MB to the guest.
64 Bit guests work: I confirmed Ubuntu 20.04 to work with 3854MB.
Due to the 32 Bit limitation, I assume it is impossible to allocate more than 3.8GB to a guest.
Maybe this can be circumvented with VMware, but I think the last working release is very very old which may be even more problematic than using VirtualBox.
It is possible that the CPU is incompatible. I will try to confirm that later.

For now, it is simply amazing to be able to run virtual machines. :-)

Cheers,
schreiberstein

EDIT: VMware Workstation 10.0.0.7 is the last supported version for 32-Bit Windows hosts (including XP).
Booting a modern GNU/Linux system results in a Kernel Panic at a very early stage. I think it is an incompatibility with the modern hardware.
However, I found out that VirtualBox can be patched to ignore the arbitrary 3854MB limit (VBoxSVC.exe needs to be patched).
See: ⇗ https://deadfishsw.wordpress.com/2016/07...e-3584mb-limit/
(If this blog ever goes down, contact me, I have a copy of this.)
After the file has been patched, you can edit the ".vbox" file of your virtual machine and adjust the assigned RAM manually. (Cannot be done via the GUI!)
This is slightly inconvenient, but very doable.
I tested assigning 16GB to a 64 Bit guest and it worked flawlessly.
That is, virtualization should be fine for at least several more years.

EDIT2: I can confirm it is working reliably. Running prime95 memory stress mode and several applications lead the system to consume to consume 92% of 16GB RAM. No crashes, no calculation errors in prime95, ... THIS IS GREAT!



Haha that's XP as light hypervisor OS.
Then my next question is if you use lmdisk to create ~48GB ramdisk using awealloc and then put 12 x 4095MB pagefiles there, will XP total virtual memory become ~<64GB overall? say in addition of running 16GB VM, you still able to allocate memory for multiple 7zip compressing stuff.

EDIT:
regarding TurboBoost, maybe XP don't properly support version 3.0?
⇗ https://ark.intel.com/content/www/us/en/...o-5-00-ghz.html
vs
⇗ https://ark.intel.com/content/www/us/en/...o-5-20-ghz.html
#5879blackwingcatHi.

When fail to load acpi, Windows 2000 does not show BSoD. It only shows blinking cursor after loading all text mode drivers. :3

Now I modded acpi.sys for Win2000 referencing XP acpi.sys build 6666.
But any structure are different from XP one.

for example , I should change the following code for Windows 2000.

 
 L0003B672:
mov eax,[esi+2Ch]
cmp word ptr [eax+02h],0002h ->[eax+08h],0002h
jnz L0003B7F9
xor edi,edi
inc edi
push edi
push 52545348h
push [L00029000] // [L0002DCF0]
call SUB_L0001FD9A // SUB_L000234A3
mov ecx,[esi+30h]
mov [ecx+10h] -> [ecx+14h],eax //[ecx+10h]
mov eax,[esi+30h]
add esp,0000000Ch
cmp [eax+10h] -> [eax+14h],ebx
jnz L0003B6DA
mov eax,C000009Ah


Is there modded source file ? :3

Zitat von ⇗ diderius6 im Beitrag ¶ #5801
@blackwingcat

Hi,
you can send me your acpi.sys from win2000 and the exact BSOD.
Then I try to to make acpi.sys work
Dietmar
#5880infuscomus⇗ @schreiberstein

The Audigy RX works in XP with 4GB PAE at least, I have not tested unlimited PAE.

 

Page 393

#5881schreiberstein⇗ @infuscomus Interesting. Which driver are you using?
#5882infuscomus⇗ @schreiberstein

The official Creative driver.
#5883onuracengiz
Zitat von ⇗ gordo999 im Beitrag ¶ #5872
Zitat von ⇗ onuracengiz im Beitrag ¶ #5857
.Net Framework runtimes (from 3.5sp1 to 4.8)
@onuracengiz ...my understanding is that XP won't run on .Net above version 3.5. Can you confirm?

Thanks for links, I have been running the unofficial SP4 for some time.


.net framework 4 will run,not sure about 5 yet
#5884tumagonx⇗ @infuscomus
⇗ @schreiberstein

There is a forum that say moving around the slot (or was it PCH vs CPU) affect the driver, and for system with >4GB the bigger the RAM the goner the sound.
#5885schreiberstein⇗ @tumagonx That would make sense!
All Creative cards I have been testing were attached to my main machine via an external ExSys 1010 PCI-Express to PCI conversion box. They worked mostly fine on Windows XP (no PAE) and Windows 10 x64. However, I experienced instability on Windows 10 when I added an Intel PCI NIC into the game. The system would just randomly freeze. Maybe getting a real PCI-Express card would improve the situation. I preferred the older Creative cards because they they had more support for my PC sound system from Cambridge Soundworks (Creative subsidiary) and its special multi channel SPDIF. The newer cards do not even have coaxial SPDIF so I am forced to use an external converter. I will try to order a cheap Audigy RX and test it. But I wish there was a USB sound card with good EAX and ASIO compatibility because that would make my life a lot easier. I might try to get one of these external SoundBlaster cards and test them. The older ones even have the special proprietary Digital DIN SPDIF output for my PC sound system.
#5886diderius6⇗ @blackwingcat

Have you tried to use the acpi.sys SP3 from outerspace ) direct on your win2000 installation?
For this, make a test on another motherboard with working acpi win2000, if acpi.sys from outerspace ) works there.
And can you use Windbg? For this, try working win2000 installation
and connect it to your new motherboard using nice Lan Debug from ⇗ @Mov AX, 0xDEAD .
The blinking cursor is a Bsod.
May be the Bsod is BugCheck 0x000000A5, {0x00000011, 0x00000008, xxx, yyy)
AMLILoadDDB failed to load DDB .
This I can hack also for acpi.sys for win2000 as I did for acpi.sys from outerspace ), win7 acpi.sys and win8 acpi.sys.
Make try and send me your win2000 acpi.sys

Dietmar

PS: I see, that you know assembler. I not. Can you tell me, how to set a breakpoint into a drivers code and to look step by step what this driver is doing via Windbg? I look for the reason, why a driver is started (showing 0x306 in windbg) and then gets unloaded.
#5887schreibersteinIs there anyone in here using the Intel Z490 platform on XP/2003 as well?

Is your CPU boosting to more than the base clock? (e.g. 3.6GHz)

Would appreciate to hear from you.
#5888diderius6 How to set a breakpoint for a driver in XP?

First I try, after hitting "break" very early in Windbg
kd> bp igxpmp32!DriverEntry
then I continue for windbg with
kd> g
and soon Windbg stops as wished, showing to me
nt!DebugService2+0x11:
80acb77b 5d pop ebp

This message I do not understand.
And the command
kd> g
no longer works.
kd> lm
shows me
start    end        module name
7c910000 7c9c6000 ntdll (deferred)
80100000 80127780 HAL3 (deferred)
80a02000 80da3000 nt (pdb symbols) c:\symbols\ntkrpamp.pdb\5B9E8A586D3D49D98927B5D5117577231\ntkrpamp.pdb
b9318000 b932b780 VIDEOPRT (deferred)
b932c000 b95a3c00 igxpmp32 (no symbols)
b95ec000 b9605b80 Mup (deferred)
b9606000 b9632980 NDIS (deferred)
b9633000 b96bf600 Ntfs (deferred)
b96c0000 b96d6880 KSecDD (deferred)
b96d7000 b96e8f00 sr (deferred)
b96e9000 b9708b00 fltMgr (deferred)
b9709000 b9720900 atapi (deferred)
b9721000 b9746a00 dmio (deferred)
b9747000 b9765d80 ftdisk (deferred)
b9766000 b9776a80 pci (deferred)
b9777000 b97a6d80 ACPI (deferred)
b98a8000 b98b1300 isapnp (deferred)
b98b8000 b98c2580 MountMgr (deferred)
b98c8000 b98d5200 VolSnap (deferred)
b98d8000 b98e0e00 disk (deferred)
b98e8000 b98f4180 CLASSPNP (deferred)
b9b28000 b9b2e180 PCIIDEX (deferred)
b9b30000 b9b34d00 PartMgr (deferred)
b9cb8000 b9cbb000 BOOTVID (deferred)
b9da8000 b9da9b80 kdcom (deferred)
b9daa000 b9dab100 WMILIB (deferred)
b9dac000 b9dad700 dmload (deferred)
b9e70000 b9e70d00 pciide (deferred)
and
kd> !devnode 0 1

DevNode 0x89b41808 for PDO 0x89abb2d0
InstancePath is "PCI\VEN_8086&DEV_0F31&SUBSYS_0F311849&REV_0E\3&11583659&0&10"
ServiceName is "ialm"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)


that the driver igxpmp32.sys for service "ialm" is loaded

as you can see via
kd> !analyze -v
Last event: Load module igxpmp32.sys at b932c000
debugger time: Sun Dec 20 13:32:25.562 2020 (UTC + 1:00)
but what would be next step
Dietmar
#5889diderius6May be it makes sense, to set a breakpoint in  igxpmp32.sys before one of the 44 import functions from videoport.sys
Dietmar

VideoPortAcquireDeviceLock
VideoPortEnumerateChildren
VideoPortFlushRegistry
VideoPortGetAccessRanges
VideoPortGetBusData
VideoPortGetCurrentIrql
VideoPortGetDeviceBase
VideoPortGetRegistryParameters
VideoPortGetVgaStatus
VideoPortInitialize
VideoPortInt10
VideoPortInterlockedDecrement
VideoPortInterlockedExchange
VideoPortInterlockedIncrement
VideoPortMapMemory
VideoPortMoveMemory
VideoPortQueueDpc
VideoPortReadPortUlong
VideoPortReadPortUshort
VideoPortReadRegisterBufferUchar
VideoPortReadRegisterBufferUlong
VideoPortReadRegisterBufferUshort
VideoPortReadRegisterUchar
VideoPortReadRegisterUlong
VideoPortReadRegisterUshort
VideoPortReleaseDeviceLock
VideoPortSetBusData
VideoPortSetRegistryParameters
VideoPortSetTrappedEmulatorPorts
VideoPortStallExecution
VideoPortStartTimer
VideoPortStopTimer
VideoPortSynchronizeExecution
VideoPortUnmapMemory
VideoPortVerifyAccessRanges
VideoPortWritePortUlong
VideoPortWritePortUshort
VideoPortWriteRegisterBufferUchar
VideoPortWriteRegisterBufferUlong
VideoPortWriteRegisterBufferUshort
VideoPortWriteRegisterUchar
VideoPortWriteRegisterUlong
VideoPortWriteRegisterUshort
VideoPortZeroMemory

#5890diderius6Maybe that to set a breakpoint with Windbg here does not work, because we dont have igxpmp32.pdb .
So the only way is to set a hardcoded breakpoint in igxpmp32.sys itself, but I have no idea how to do this
Dietmar

EDIT:In general, you're going to have to set breakpoints by address, since you
don't have symbols. Oh, this will be a hard job. May be easier, to build whole igxpmp32.sys new adding assembler breakpoints everywhere and heavy use of Pemaker.
#5891Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #5888
kd> bp igxpmp32!DriverEntry
then I continue for windbg with
kd> g
and soon Windbg stops as wished, showing to me
nt!DebugService2+0x11:
80acb77b 5d pop ebp

This message I do not understand.
And the command
kd> g
no longer works.

Hi diderius6,

this is bug of windbg, it sometimes get mad, stops somewhere in kernel and cant continue
1) to kill this nasty bug, i dont use "bp igxpmp32!DriverEntry", instead i change opcodes inside igxpmp32.sys to EB FE (endless jmp to itself = jmp $), find where DriverEntry placed in file and change first two bytes to EB FE
2) when driver starts, windows will hang (but loading  bar still progressing), in windbg pause remote PC and you will get EIP exactly at igxpmp32!DriverEntry
3) change EB FE to original bytes by edit memory under EIP
4) if windows hangs again, this mean driver was reloaded from disk and need patch it in memory again :)

 

#5892diderius6⇗ @Mov AX, 0xDEAD

Driver entry (needs to be separated from where is the driver loaded in memory(!))
for igxpmp32.sys is 10267A20 (together with the offset of 10000000).
push    ebp <======== 10267A20 (address of driver entry in igxpmp32.sys)
mov ebp, esp
sub esp, 60h
mov eax, [ebp+DriverObject]
mov dword_10267864, eax
push offset aDriverentryEnt ; "DriverEntry entered\r\n"
push 80000000h
call sub_10016CB0
Which of them has to be changed to EB FE
thanks a lot
Dietmar

EDIT: Is this correct?
PAGE:10267A20 DriverEntry: ; CODE XREF: PAGE:DriverEntry j
PAGE:10267A20 jmp short DriverEntry
First 2 Bytes from DriverEntry 55 8B => EB FE (changed at address 10267A20)
#5893Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #5875
Hi,
Can you please write a short Tutorial, how to set a breakpoint for the driver igxpmp32.sys vers. 5449?
And how to look with Windbg step by step at which point this driver gets unloaded.

⇗ @diderius6
first is easy, but pointless, let's assume you was stoped CPU at start of driver and what you will do next  ? how you will check problem variables on stack ? Why var is not as should be ? etc....

"unloading driver" is driver depend, DriverEntry of any driver usualy always return OK because this is time critical (?) to OS and no time to check proper PCI/HW Regs/...But when OS ready to full init driver it start bombing driver with various IRP packets. On every packet driver must return error code, if no error, driver return 0/Not supported/Delayed. If driver found real error it report it as answer to packer and OS unload it.
You need track on which packet driver return error and why

Puzzle ? Yes, for example i didnt found how VIA USB3 driver unload itself on non-via hardware because it do this job unknow way
#5894Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #5892
@Mov AX, 0xDEAD
push    ebp <======== 10267A20 (address of driver entry in igxpmp32.sys)
mov ebp, esp
sub esp, 60h


EDIT: Is this correct?

PAGE:10267A20 DriverEntry: ; CODE XREF: PAGE:DriverEntry j
PAGE:10267A20 jmp short DriverEntry
First 2 Bytes from DriverEntry 55 8B => EB FE (changed at address 10267A20)

best is to change mov   ebp, esp =>  EB EF because mov  ebp, esp is 2-bytes opcode
but 55 8B => EB EF is OK, just debuger will mess with decoding of:
mov     ebp, esp
sub     esp, 60h

 

#5895diderius6⇗ @Mov AX, 0xDEAD

Oh, such a lot of fun:)).
There are some possibilities.
In next step I will install naked Win7 32 bit on the J1900 board.
I make an extract of whole registry.
And then I install the Baytrail with DEV_0F31 driver for Win7 there.
Again I make extract of whole registry and compare them one by one with Beyond Compare2.

Then I install win7 with nothing else on the x230 Lenovo thinkpad. It has HD4000 driver.
There I make the same procedure with the same driver and extract of registry before and after and compare.

Via this way I have a chance for to see, if it is a setting in registry, that makes the driver unload
Dietmar

EDIT: I change mov ebp, esp => EB EF

First lesson I learned: I dont want to jmp 17 Bytes back, only 2 Bytes back and so as I did right in first try it has to be
mov ebp, esp => EB FE this was my error.

 

Page 394

#5896gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5886
Can you tell me, how to set a breakpoint into a drivers code and to look step by step what this driver is doing via Windbg? I look for the reason, why a driver is started (showing 0x306 in windbg) and then gets unloaded.
⇗ @diderius6 ...It's not that easy at the best of times, especially if you are new to assembly language.

I have seen many tutorials written for debugging specific applications but it's a lot easier when you are trying to debug a working app. You are trying to debug a system issue, or maybe a fault. That's a lot tougher. The structure of normal Windows apps is well known but the system code which addresses drivers is usually gained by experience. There's a good chance you won't be able to trace into the system code with windbg in order to see why the driver is being unloaded.

You have to set up windbg to use symbols, which means pointing it toward the Microsoft symbol server. If you don't, windbg will complain and if you set a breakpoint, when you get to the code it will be straight assembly language without the function names to let you know where you are. I have done that where no symbols are available but you need to be conversant with the assembly code and what it is doing. There are good tutorials on the Net for setting up windbg.

Secondly, there is really no tutorial anyone could offer for what what you ask. The breakpoints required are specific to the code within a driver. You could set a BP to break when a driver is encountered, or if you know the driver's memory range, you could set a BP to break in that range. However, you could trace forever till the driver is unloaded. Even then, the reason for it unloading might not be obvious.

I suggest you first use another utility like Procmon (process monitor by sysinternals) and see if it detects your driver. If the driver is being loaded during the boot phase, you can enable boot logging in procmon and see if it detects your driver. There may be similar utilities on the Net that can monitor loading/unloading. The idea is to watch the activity around your driver loading/unloading so you can get an idea of related processes.

It would be to your advantage to learn windbg and/or an alternate 64-bit debugger like x64dbg. I know that assembly language can seem complicated at first, but it is not that complicated to learn for tracing through code. It's intuitive, as opposed to higher level languages. The main problem in tracing code is not the assembly instructions, it's the structures imposed on it by higher level languages. Unless you know the format of higher level languages like Delphi, which is based on forms, you can become lost in the assembly code.

I learned basic assembly decades ago related to hardware applications. Even thought the assembly I learned was rudimentary, it taught me the relationship between assembly code and the processor. That's really what it's all about, understanding the processor registers and the operations required to manipulate them.

Go for it. Get into code and begin tracing. Even though you are completely lost, read on it and ask questions. In a week or too you'll begin to feel more comfortable with it. Again, the problem is not the assembly code, it's the underlying structure of an OS like Windows. There are really good books written on that subject by people like Mark Russinovich of sysinternals. However, it takes a long time to read this stuff and digest it.
#5897diderius6⇗ @gordo999

Thanks a lot!

"In a week or too you'll begin to feel more comfortable with it. Again, the problem is not the assembly code, it's the underlying structure of an OS like Windows. There are really good books written on that subject by people like Mark Russinovich of sysinternals. However, it takes a long time to read this stuff and digest it."

The book I have, but never read:)).
Even this crazy grapic driver is >2MByte I have an intuition, where I have to look.
Maybe it is the name of the hardware string. There is a connection between it and the Magic Numbers.
Via compare of the settings in registry of the ialm entries in Services I see, that the hardware string changes with the use of different Magic Numbers.
In the Mod from ⇗ @canonkong I noticed via whole compare of driver before and after mod (i do this with Ida Pro and building an *.lst file of it and compare with Beyond Compare2 both. Very nice idea of comparing disambled code!)
that the Magic Numbers all stay as before, but the DEV Ids are careful put to an Magic Number from before.
#5898diderius6⇗ @Mov AX, 0xDEAD

After I injected the endless loop in igxpmp32.sys after the place of DriverEntry,
now the bar runs infinitly:)).
Strange, on first try the driver igxpmp32.sys gets corruptet(?) in System32\drivers.
I think, this happens because I change everything putting harddisk in an USB encloser.
And sometimes it happens, that transfer via USB is not complete, means error.

Now fun goes on.

When I hit break in Windbg, now it shows

kd> lm
start end module name
7c910000 7c9c6000 ntdll (pdb symbols) c:\symbols\ntdll.pdb\1751003260CA42598C0FB326585000ED2\ntdll.pdb
80100000 80127780 HAL3 (deferred)
80a02000 80da3000 nt (pdb symbols) c:\symbols\ntkrpamp.pdb\5B9E8A586D3D49D98927B5D5117577231\ntkrpamp.pdb
b9318000 b932b780 VIDEOPRT (deferred)
b932c000 b95a3c00 igxpmp32 (deferred)
b95ec000 b9605b80 Mup (deferred)
b9606000 b9632980 NDIS (deferred)
b9633000 b96bf600 Ntfs (deferred)
b96c0000 b96d6880 KSecDD (deferred)
b96d7000 b96e8f00 sr (deferred)
b96e9000 b9708b00 fltMgr (deferred)
b9709000 b9720900 atapi (deferred)
b9721000 b9746a00 dmio (deferred)
b9747000 b9765d80 ftdisk (deferred)
b9766000 b9776a80 pci (deferred)
b9777000 b97a6d80 ACPI (deferred)
b98a8000 b98b1300 isapnp (deferred)
b98b8000 b98c2580 MountMgr (deferred)
b98c8000 b98d5200 VolSnap (deferred)
b98d8000 b98e0e00 disk (deferred)
b98e8000 b98f4180 CLASSPNP (deferred)
b9b28000 b9b2e180 PCIIDEX (deferred)
b9b30000 b9b34d00 PartMgr (deferred)
b9cb8000 b9cbb000 BOOTVID (deferred)
b9da8000 b9da9b80 kdcom (deferred)
b9daa000 b9dab100 WMILIB (deferred)
b9dac000 b9dad700 dmload (deferred)
b9e70000 b9e70d00 pciide (deferred)

kd> !DevNode 0x89b41808
DevNode 0x89b41808 for PDO 0x89abb2d0
Parent 0x89af85e8 Sibling 0x89b416d8 Child 0000000000
InstancePath is "PCI\VEN_8086&DEV_0F31&SUBSYS_0F311849&REV_0E\3&11583659&0&10"
ServiceName is "ialm"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
StateHistory[00] = DeviceNodeUninitialized (0x301)
StateHistory[19] = Unknown State (0x0)
StateHistory[18] = Unknown State (0x0)
StateHistory[17] = Unknown State (0x0)
StateHistory[16] = Unknown State (0x0)
StateHistory[15] = Unknown State (0x0)
StateHistory[14] = Unknown State (0x0)
StateHistory[13] = Unknown State (0x0)
StateHistory[12] = Unknown State (0x0)
StateHistory[11] = Unknown State (0x0)
StateHistory[10] = Unknown State (0x0)
StateHistory[09] = Unknown State (0x0)
StateHistory[08] = Unknown State (0x0)
StateHistory[07] = Unknown State (0x0)
StateHistory[06] = Unknown State (0x0)
StateHistory[05] = Unknown State (0x0)
StateHistory[04] = Unknown State (0x0)
StateHistory[03] = Unknown State (0x0)
StateHistory[02] = Unknown State (0x0)
StateHistory[01] = Unknown State (0x0)
Flags (0x000002f0) DNF_ENUMERATED, DNF_IDS_QUERIED,
DNF_HAS_BOOT_CONFIG, DNF_BOOT_CONFIG_RESERVED,
DNF_RESOURCE_REQUIREMENTS_NEED_FILTERED


1: kd> !analyze -v
Connected to Windows XP 2600 x86 compatible target at (Mon Dec 21 01:08:44.046 2020 (UTC + 1:00)), ptr64 FALSE
Loading Kernel Symbols
..........................
Loading User Symbols

*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

Unknown bugcheck code (0)
Unknown bugcheck description
Arguments:
Arg1: 00000000
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000

Debugging Details:
------------------


PROCESS_NAME: Idle

FAULTING_IP:
nt!RtlpBreakWithStatusInstruction+0
80ac37ec cc int 3

EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 80ac37ec (nt!RtlpBreakWithStatusInstruction)
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 3
Parameter[0]: 00000000
Parameter[1]: 80af4780
Parameter[2]: 000003f8

ERROR_CODE: (NTSTATUS) 0x80000003 - {AUSNAHME} Haltepunkt Im Quellprogramm wurde ein Haltepunkt erreicht.

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - Mindestens ein Argument ist ung ltig.

EXCEPTION_PARAMETER1: 00000000

EXCEPTION_PARAMETER2: 80af4780

EXCEPTION_PARAMETER3: 000003f8

DEFAULT_BUCKET_ID: DRIVER_FAULT

BUGCHECK_STR: 0x0

STACK_TEXT:
b9cd3d4c 80ae3e02 00000001 00000000 0000000e nt!RtlpBreakWithStatusInstruction
b9cd3d54 00000000 0000000e 3fab8fe8 2df98998 nt!KiIdleLoop+0x32


STACK_COMMAND: kb

FOLLOWUP_IP:
nt!RtlpBreakWithStatusInstruction+0
80ac37ec cc int 3 <------ content of register EIP

SYMBOL_STACK_INDEX: 0

SYMBOL_NAME: nt!RtlpBreakWithStatusInstruction+0

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: nt

IMAGE_NAME: ntkrpamp.exe

DEBUG_FLR_IMAGE_TIMESTAMP: 4802b3ce

BUCKET_ID: MANUAL_BREAKIN

Followup: MachineOwner
---------


Needs the content  80ac37ec of register EIP to be corrected, because endless loop is one Byte after DriverEntry?
EDIT: I make a test, where the first byte is changed, and EIP shows the same 80ac37ec.
This is a little bit strange for me, because how does Windbg knows, that the endless loop begins at driverentry,
when in real the loop starts one byte later?!
Dietmar
#5899gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5897
Even this crazy grapic driver is >2MByte I have an intuition, where I have to look. Maybe it is the name of the hardware string. There is a connection between it and the Magic Numbers.

⇗ @diderius6 ...can you find the string reference in IDA? If so, you can probably trace it back to where the call is made to load the string. The magic numbers to which you refer are likely references for identifying the string. Many times, a string is called by different parts of the app or driver. Finding a string can be an art in itself.

Of course, when you find the call that loads the string it will come after the problem that caused the driver to be unloaded. You will probably see a compare statement followed by a conditional jump. If you look before the compare and jump statements you might find another CALL that leads to the cause of the driver being unloaded. However, the code leading up to that may be fairly complex. If you look at the stack in windbg it might give you a clue.

If you find the string referenced in IDA, there is usually a reference to where it is used. If you double-click that reference it will take you to the address in IDA where the string is used. It may be a call to a message box. You could try using the addresses preceding the call to the message box as a BP in windbg. The addresses probably won't be the same but the last 4 hex digits may be the same unless IDA has offset them. You can find the exact offset between IDA and windbg by having both open at the same code reference point.

For example, Mov AX Dead gave you the trick for putting the code into an infinite loop. If you insert that code at the beginning of the driver code, windbg will stop there. Note the address and write down some of the code. Then go to IDA and compare that code to the beginning of the IDA code for the driver.

Or, you might find a function call before the message box call where you can set a BP. Or, if you use the stack, you can find where the current function call will eventually return. Then you can set a BP on one of the functions before your current CALL and restart windbg. It should stop at that BP before the message box call, or the address referenced by the string. Then you can trace to the required code section.

There are tricks for cutting down on the number of traced code steps required. You'll learn those by doing it a lot. I always make detailed notes as a I trace, with addresses. If I trace blindly into a function and realize what it is doing, I mark that CALL with jo, for jump over. Then, if I have to restart I know which CALLs to jump over. In fact, I can set a BP on any of the address I recorded.

In windbg, or any other debugger, you can single-step or jump over a CALL. If you want, you can look ahead in the code and set a BP manually on any address ahead of where you are located in the code. Be careful with that because sometimes the processor does not execute in a linear fashion. Often, if I am caught in a LOOP, I will look for a RET statement after the LOOP and set a BP on it. Then I can bypass the LOOP. Some LOOPS are short but some can take thousands of steps before completing.

Try not to use a common windows function as a BP since that will make windows stop many times before your code. To get around that, learn how to use a conditional BP. That means you set a BP on a function with stated conditions such as EAX = 0x400. The language for that in windbg is unnecessarily complex, IMHO, but there are many examples on the Net. If you learn how to use it, you can use BPs much more effectively.
#5900gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5898
@Mov AX, 0xDEAD After I injected the endless loop in igxpmp32.sys after the place of DriverEntry, now the bar runs infinitly:)).
⇗ @diderius6 ...you have to write down the code that was there before you replaced it with the infinite loop code. When windbg breaks on it, use windbg to replace the infinite loop code with the real code.

Go to View/Memory and open a Memory dump window. Before you do anything, click on the symbol on the top right corner that seems to be lines on a page. Click on 'Always floating'. That allows you to drag the window to any position. Then click in the window with @$Scope and type in your current address. It should dump the memory at that location. You may be able to just type in EIP, which is the register with the address of the current code location. IP = Instruction Pointer.

If you see the infinite loop code, set the cursor on the first byte, then type in the correct code you replaced earlier. When you hit Enter it should reset the code to the proper code.
#5901diderius6⇗ @gordo999

Yes, I found the string with Ida.
In registry is written
"HardwareInformation.AdapterString"=hex:08,70,03,e1,c4,c4,24,e1,10,a4,27,e1,14,39
for the Magic Number 9 5 0Eh
(this I think is the Magic Number, question if this is the correct string. There a test with Win7 can help).

and

"HardwareInformation.AdapterString"=hex:08,70,03,e1,a4,12,25,e1,cc,85,28,e1,14,39
for the Magic Number 9 7 0Eh

It is the same place, where the BSOD happens,

.text:10021FB8 loc_10021FB8: ; CODE XREF: sub_10020DB0+11E9 j
.text:10021FB8                 movzx   edx, [ebp+var_469]
.text:10021FBF                 cmp     edx, 1
.text:10021FC2                 jnz     short loc_10021FE1
.text:10021FC4                 mov     eax, [ebp+var_470]
.text:10021FCA                 push    eax
.text:10021FCB                 lea     ecx, [ebp+var_468]
.text:10021FD1                 push    ecx
.text:10021FD2                 push    offset aHardwareinfo_1 ; "HardwareInformation.AdapterString"
.text:10021FD7                 mov     edx, [ebp+arg_0]
.text:10021FDA                 push    edx
.text:10021FDB                 call    ds:VideoPortSetRegistryParameters
.text:10021FE1
.text:10021FE1 loc_10021FE1: ; CODE XREF: sub_10020DB0+1212 j
.text:10021FE1                 push    12h
.text:10021FE3                 push    offset aInternal ; "Internal"
.text:10021FE8                 push    offset aHardwareinfo_2 ; "HardwareInformation.DacType"
.text:10021FED                 mov     eax, [ebp+arg_0]
.text:10021FF0                 push    eax
.text:10021FF1                 call    ds:VideoPortSetRegistryParameters
.text:10021FF7                 push    22h
.text:10021FF9                 push    offset aIntelVideoBios ; "Intel Video BIOS"
.text:10021FFE                 push    offset aHardwareinfo_3 ; "HardwareInformation.BiosString"
.text:10022003                 mov     ecx, [ebp+arg_0]
.text:10022006                 push    ecx
.text:10022007                 call    ds:VideoPortSetRegistryParameters
#5902diderius6⇗ @gordo999

Thanks a lot, exact this my next question how to edit the driver in memory back to its original.
And the next next question is, how to come to this place, where the string is loaded.
I think it should be something like bp 0xaddress (for this string load).
For this we need to find this address.
This I do tomorrow,
now I am tired as much as possible
Dietmar

PS: To 99% I am sure, that we will get a working VGA driver for Baytrail under XP.
#5903gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5902
And the next next question is, how to come to this place, where the string is loaded.
⇗ @diderius6 ...I am tired as well so good idea to leave it for tomorrow. Read through my recent post. I explained how to find the address of the code in IDA, using the string in IDA. The problem might be converting that IDA address to the windbg address.

In the code you included with this post you can see the IDA address at:

.text:10021FDB call ds:VideoPortSetRegistryParameters

Quite often, the 1FDB part of 10021FDB is the same in IDA and in windbg. That can help you narrow down the equivalent address in windbg where you can set a BP.

BTW, the code you included seems to be setting the parameters for HardwareInformation.AdapterString in the registry. I can't see this being a cause of the driver unloading unless for some reason it cannot find the right location in the registry. Maybe during one of the calls it tries to read something in the registry it does not like, then shuts down.

In that case, you'd have to follow the call into where it reads the registry.

Note the following code:

.text:10021FF9 push offset aIntelVideoBios ; "Intel Video BIOS"

It's pushing the address of the string Intel Video BIOS. That is followed by:

.text:10021FFE push offset aHardwareinfo_3 ; "HardwareInformation.BiosString"

If you look at the top of the code you see:

.text:10021FBF cmp edx, 1
.text:10021FC2 jnz short loc_10021FE1


That is the only jump statement in the code so there is not enough information in this code to tell what will ultimately happen. The jnz statement above sends the code execution within this code, not past it.

Without the pdb file for the driver you may not be able to BP on VideoPortSetRegistryParameters. However, if you can convert the address at the beginning of this code in idea @ .text:10021FB8 to the proper address in windbg, you can set a BP on the windbg equivalent address then trace through the code you have posted.

If I recall correctly, there are plugins for creating PDB files from an IDA disassembly.
#5904diderius6⇗ @Mov AX, 0xDEAD, ⇗ @gordo999

I have a question.
When I now know, where the exact entrypoint is for the driver igxpmp32.sys (80ac37ec, found out with EB FE hack)
why I cant change my driver with endless loop back against the original driver and set a breakpoint with
bp 0x80ac37ec just using now the original driver
Dietmar

EDIT: I just test my idea. Now command g or p works again.
When I hit p, Windbg shows me

kd> bp 0x80ac37ec
kd> g
nt!DebugService2+0x10:
80acb77a cc int 3
0: kd> p
nt!DebugService2+0x11:
80acb77b 5d pop ebp
0: kd> p
nt!DebugService2+0x12:
80acb77c c20c00 ret 0Ch
0: kd> p
nt!DbgLoadImageSymbols+0x42:
80ac3a12 c9 leave
0: kd> p
nt!DbgLoadImageSymbols+0x43:
80ac3a13 c20c00 ret 0Ch
0: kd> p
nt!MmLoadSystemImage+0xd4e:
80b9b69c 804b3610 or byte ptr [ebx+36h],10h
0: kd> p
nt!MmLoadSystemImage+0xd52:
80b9b6a0 8b4518 mov eax,dword ptr [ebp+18h]

But this are not the next codes from the loaded igxpmp32.sys driver??
From where are they above and what can I do to run step by step igxpmp32.sys?

I just compare with driverentry in post

¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (393)

They are identic but now with the BIG difference, that p or g command works again.
#5905diderius6Now with hitting p again and again it seems,
that the compi hangs in a loop. I think, this is the bombing with irp, about which
⇗ @Mov AX, 0xDEAD told. This loop was overcome after a lot of tries.
Then comes next loop, much longer. At the end of this loop, the driver igxpmp32.sys was unloaded.

Dietmar

nt!IopLoadDriver+0x4bb:
80b3f3dd 895da4 mov dword ptr [ebp-5Ch],ebx
0: kd>
nt!IopLoadDriver+0x4be:
80b3f3e0 8b45a4 mov eax,dword ptr [ebp-5Ch]
0: kd>
nt!IopLoadDriver+0x4c1:
80b3f3e3 c74486381497a280 mov dword ptr [esi+eax*4+38h],offset nt!IopInvalidDeviceRequest (80a29714)
0: kd>

nt!IopLoadDriver+0x4c9:
80b3f3eb ff45a4 inc dword ptr [ebp-5Ch]
0: kd>
nt!IopLoadDriver+0x4cc:
80b3f3ee 837da41b cmp dword ptr [ebp-5Ch],1Bh
0: kd>
nt!IopLoadDriver+0x4d0:
80b3f3f2 76ec jbe nt!IopLoadDriver+0x4be (80b3f3e0) <----- LOOP
0: kd>
nt!IopLoadDriver+0x4be:
80b3f3e0 8b45a4 mov eax,dword ptr [ebp-5Ch]
0: kd>
nt!IopLoadDriver+0x4c1:
80b3f3e3 c74486381497a280 mov dword ptr [esi+eax*4+38h],offset nt!IopInvalidDeviceRequest (80a29714)
0: kd>

nt!IopLoadDriver+0x4c9:
80b3f3eb ff45a4 inc dword ptr [ebp-5Ch]
#5906diderius6Just via loop and loop and loop I came step by step to the point with Windbg,
where the driver igxmp32.sys was unloaded.
Another question is, why this happened.

But I have full document of Windbg screen with all the steps of loading until unload
Dietmar

⇗ https://ufile.io/s4364p1c
#5907schreibersteinI have ordered the Creative SoundBlaster Live! 24 Bit USB (SB0490) for a few bucks and will report back how well EAX and PAE mode works.
The special Digital DIN output will also support my Cambridge Soundworks (Creative) PC sound system from 1999.
Perhaps after Christmas.
Maybe this is the secret sauce that will perfect this machine.

I have a question regarding NVMe support:
Right now, I already have two Samsung NVMe drives attached to my motherboard.
Since my board has 3 slots in total, I am considering getting one just for XP. Maybe another brand so it is more easy to distinguish them and to disable the other drives in Windows XP.
I had read here a while ago that there were problems with multiple NVMe drives and XP.
Is that still the case? Or should NVMe work just as good (/better) as SATA?

I would appreciate some brief advice on that.

Thank you very much and have a very nice week leading up to Christmas!
Cheers,

schreiberstein
#5908diderius6Compi tries more than 200 times

80b5d43f  0f8533020000    jne     nt!PipProcessDevNodeTree+0x5c8 (80b5d678)

80b5d205 0f856d040000 jne nt!PipProcessDevNodeTree+0x5c8 (80b5d678)

80b5d37c 0f85f6020000 jne nt!PipProcessDevNodeTree+0x5c8 (80b5d678)

80b5d385 0f84ed020000 je nt!PipProcessDevNodeTree+0x5c8 (80b5d678)

80b5d280 0f85f2030000 jne nt!PipProcessDevNodeTree+0x5c8 (80b5d678)

80b5d41b e958020000 jmp nt!PipProcessDevNodeTree+0x5c8 (80b5d678)


80b5d678 8bc7 mov eax,edi


Dietmar
#5909blackwingcatHi.

Sadly, Windows 2000 does not have LAN Debug mode, COM Port only.

And I don't know how to enter to Debug mode when Windows Installation.

Is it correct that ⇗ @Mov AX, 0xDEAD said replace ntldr to ntldr_dbg ?

Here is Win2000 acpi.sys
⇗ v2020
⇗ v2018
⇗ Official version
#5910diderius6⇗ @blackwingcat

I modded all 3 acpi.sys from Win2000 against "ACPI failed to load DDB"
Dietmar

⇗ https://ufile.io/zsylezae

 

Page 395

#5911blackwingcatHi.

Thx. I recognized what was changing.

                mov	ebx,000000A5h
jnz L00031725
push [esi+20h]
push esi
push 00000007h
push 00000011h
push ebx
call jmp_ntoskrnl.exe!KeBugCheckEx
L00031725:
lea eax,[ebp-04h]
push eax
push esi
call SUB_L0001DD62
pop ecx
test eax,eax
pop ecx
jl L00031759 -> nop
mov ecx,[L00029820]
lea eax,[edi+edi*2]
shl eax,02h
or dword ptr [ecx+eax+04h],00000002h
mov edx,[L00029820]
lea ecx,[ecx+eax+04h]
mov ecx,[ebp-04h]
mov [edx+eax+08h],ecx
jmp L00031767
L00031759:
push [esi+20h]
push esi
push 00000008h
push 00000011h
push ebx
call jmp_ntoskrnl.exe!KeBugCheckEx

   

But the changing got no effection.
PC shows only black window and blink cursor :3
#5912infuscomus⇗ @blackwingcat

Try an en_us release of XP, you should be able to see the BSOD instead of a blinking cursor using this version.
#5913infuscomus
Zitat von ⇗ blackwingcat im Beitrag ¶ #5909


And I don't know how to enter to Debug mode when Windows Installation.




I've read online that you can enable debugging in textmode setup by pressing F8 when setup prompts F6 for RAID drivers - try that.
#5914diderius6Under Win7 32 bit I can install the HD driver version 10.18.10.3266 for Baytrail with DEV_0F31 on the J1900 board.
I rescued whole registry folder "config" before I install this HD driver.
Then I rescued whole folder "config" after install of driver for Baytrail and compare.
Only in "System" from registry are differences.
Then I mod the *.inf:
At the place for DEV_156 I place DEV_0F31, original line in *.inf I comment out with ";".
And voila, I can install the driver also.
This means: The 2 packages for DEV_156 and for DEV_0F31 in Win7 are compatible.
The packages for DEV_0D26, DEV_0162, DEV_0152 are also compatible with Baytrail under Win7.

A compare between the registry with HD for DEV_0F31 and DEV_0156 shows, that they are nearly identic.
But I noticed a difference in the hardware string settings between Win7 and XP

XP:
"HardwareInformation.AdapterString"=hex:08,70,03,e1,c4,c4,24,e1,10,a4,27,e1,14,39
which is not NULL-terminated (means 00 at its end)

Win7:
"HardwareInformation.AdapterString"=hex:49,00,6e,00,74,00,65,00,6c,00,28,00,52,\
 00,29,00,20,00,48,00,44,00,20,00,47,00,72,00,61,00,70,00,68,00,69,00,63,00,\
 73,00,00,00

"HardwareInformation.DacType"  and  "HardwareInformation.BiosString"
are identic in XP and Win7

Dietmar

EDIT: I succeed to integrate the "HardwareInformation.AdapterString" from Win7 into XP registry, but does not help.
#5915diderius6Strange, that with Windbg it is not possible to find out,
when and why a driver gets unloaded
Dietmar

PS: Is it possible to hack unload procedure?
Or something like "force" load?
#5916infuscomus⇗ @diderius6

can I have a look at your modded driver?
#5917diderius6Here it is. It has in the driver an entry for F31h,
which is for Baytrail. This is original(!) from Intel.
The driver loads but then gets unload for an unknow reason.
It depends not on entries in the *.inf file, as Win7 showes me
Dietmar

PS: In Win7 the string "HardwareInformation.AdapterString" in registry is always the same.
     In XP it changes with the DEV ID and the Magic Numbers. Something is wrong with "HardwareInformation.AdapterString",
because it is not Null-terminated (00 at its end, here missed).
Maybe, this comes from Hack?!

EDIT: Only this modded driver gives all values for registry, for example video in Services\ialm .

⇗ https://ufile.io/tu1hw2h1
#5918diderius6From Microsoft

Setting Hardware Information in the Registry
 

HwVidFindAdapter can call the VideoPortGetRegistryParameters and VideoPortSetRegistryParameters functions to get and set configuration information in the registry. For example, HwVidFindAdapter might call VideoPortSetRegistryParameters to set up nonvolatile configuration information in the registry for the next boot. It might call VideoPortGetRegistryParameters to get adapter-specific, bus-relative configuration parameters written into the registry by an installation program.

It is recommended that miniport drivers set certain hardware information in the registry to display useful information to the user and for assistance in debugging. A miniport driver can set a chip type, DAC type, memory size (of the adapter), and a string to identify the adapter. This information is shown by the Display program in Control Panel.

The driver sets this information by calling VideoPortSetRegistryParameters. Typically, the driver makes the call in its HwVidFindAdapter routine.

The following table describes the information that the driver can register and provides details for the ValueName and ValueData parameters of VideoPortSetRegistryParameters:

Information for Entry ValueName ValueData

Chip type
HardwareInformation.ChipType
Null terminated string containing the chip name.

DAC type
HardwareInformation.DacType
Null terminated string containing the DAC name or ID.

Memory size
HardwareInformation.MemorySize
ULONG containing, in MB, the amount of video memory on the adapter.

Adapter ID
HardwareInformation.AdapterString
Null-terminated
string containing the name(?!) of the adapter.


BIOS
HardwareInformation.BiosString
Null-terminated string containing information about the BIOS.
#5919infuscomus⇗ @diderius6

I found a 10.18.10.3408 that has only PCI\VEN_8086&DEV_0F31 and nothing else in it for windows 8.1

curious that it's the only HWID supported by this driver (is this graphics chip different from any other intel graphics chip?)
#5920diderius6⇗ @infuscomus

I found a report, that DEV_0F31 is the same device as HD2500 or HD4000,
fully hardware compatible with them, only with a different number of lines.
But Intel did something, that it cant work with XP.
There are a lot of Embedded boards on the market with J1900 cpu Baytrail and DEF_0F31 VGA device.
None of them works under XP.

Intel makes an own(!) webside, to tell that Baytrail does not work together with XP

Dietmar
#5921diderius6What can this mean?

GFX Coinstaller (1.2.30.0) I
 Found disable value in registry; aborting

In Win7 there is a lot of stuff from gfx
Dietmar
#5922infuscomus⇗ @diderius6

maybe it needs some registry entries?

from igxp32.inf

[CoInst.AddReg]

HKR,,CoInstallers32,0x10000,"igfxCoIn_v5449.dll,CoDeviceInstall"

[CoInst.CopyFiles]

igfxCoIn_v5449.dll,igxpco32.dll,,0x00000010
#5923diderius6⇗ @infuscomus
Yes, I found in Win7 an entry in Services for igfx.
But in XP I do not find ANY entry for igfx.
The message above about cancel of coinstaller because of an registry(?) entry is interesting.
Dont know where to look for such an crazy entry for to disable a coinstaller. Intel(?)..
When the mod of the igxpmp32.sys is not done very careful, you do not get all entries in registry, for example no video entry.
And no HardwareInformation.AdapterString . But with my hack I get such a string, but incomplete and not NULL-terminated.
This depends on DEV_ID and the Magic Numbers. I change them from 9 5 E to 9 7 E in the driver for DEV_0F31.
Dietmar
#5924Mov AX, 0xDEAD⇗ @blackwingcat

Zitat von ⇗ blackwingcat im Beitrag ¶ #5909

And I don't know how to enter to Debug mode when Windows Installation.


txtsetup.sif:
OsLoadOptions = "/fastdetect /noguiboot /nodebug" => OsLoadOptions = "/fastdetect /noguiboot /debug /debugport=..."
Zitat von ⇗ blackwingcat im Beitrag ¶ #5909

Is it correct that @Mov AX, 0xDEAD said replace ntldr to ntldr_dbg ?


I never said that
#5925infuscomus⇗ @Mov AX, 0xDEAD

did you make any progress on WDDM? or nothing yet?

 

Page 396

#5926diderius6When you install the driver igxpmp32.sys AFTER complete XP is bootet,
you can easy follow with windbg each step from its driverentry,
because then no other driver is loaded.
With my last tests, igxmp32.sys gets unloaded very late,
may be good sign
Dietmar

As before: VideoPortSetRegistryParameters gets via var_468 a zero value from register edx.
nt!PipProcessStartPhase1

gives Bsod. Does this this belong to a missing at all hardwarestring?
This is the very first time, that I succeed to caught the driver exact at the place, where it fails.
80b5d2e3 e89cedecff      call    nt!PipProcessStartPhase1 (80a2c084)
1: kd>
Tue Dec 22 21:20:54.140 2020 (UTC + 1:00):
*** Fatal System Error: 0x00000050
(0xB9D14000,0x00000000,0x80C84241,0x00000000)

FAULTING_IP:
nt!CmpSetValueDataNew+363
80c84241 f3a5 rep movs dword ptr es:[edi],dword ptr [esi]

eax=00003a70 ebx=e1bfb024 ecx=00000acb edx=00000000 esi=b9d14000 edi=e1bfbf68
eip=80c84241 esp=b9d12c64 ebp=b9d12ca0 iopl=0 nv up ei pl nz na pe nc

LOCK_ADDRESS: 80afd6c0


STACK_TEXT:
b9d12724 80a30d7b 00000003 b9d14000 00000000 nt!RtlpBreakWithStatusInstruction
b9d12770 80a319e6 00000003 00000000 c05ce8a0 nt!KiBugCheckDebugBreak+0x19
b9d12b50 80a31f77 00000050 b9d14000 00000000 nt!KeBugCheck2+0x574
b9d12b70 80aa55ac 00000050 b9d14000 00000000 nt!KeBugCheckEx+0x1b
b9d12bd8 80ae20a8 00000000 b9d14000 00000000 nt!MmAccessFault+0x1016
b9d12bd8 80c84241 00000000 b9d14000 00000000 nt!KiTrap0E+0xdc
b9d12ca0 80c8832b e1037008 b9d130bc 00003a70 nt!CmpSetValueDataNew+0x363
b9d12cf0 80c8b208 e1037008 d6110e7c b9d12dd0 nt!CmpSetValueKeyNew+0x13d
b9d12d78 80c6bfcc e1044420 b9d12dd0 00000003 nt!CmSetValueKey+0x234
b9d12e14 80adedd8 800007f0 b9d12ed4 00000000 nt!NtSetValueKey+0x2dc
b9d12e14 80a3c855 800007f0 b9d12ed4 00000000 nt!KiFastCallEntry+0x158
b9d12eb0 80c00ed7 800007f0 b9d12ed4 00000000 nt!ZwSetValueKey+0x11
b9d12ee0 b9327fa3 00000000 e17bea70 a802a768 nt!RtlWriteRegistryValue+0x75
b9d12f0c b9334ba4 897d5358 e17bea70 b9d130bc VIDEOPRT!VPSetRegistryParameters+0xc9
b9d12f2c a7e3cdb0 897d5358 a802a768 b9d130bc VIDEOPRT!VideoPortSetRegistryParameters+0x2a
WARNING: Stack unwind information not available. Following frames may be wrong.
b9d13524 a8074e65 897d5358 e1969318 00000000 igxpmp32+0x21db0
b9d13660 a7e1e99d 897d5358 00000000 00000000 igxpmp32+0x259e65
b9d13680 b9335318 897d5358 00000000 00000000 igxpmp32+0x399d
b9d13884 b9335c9a 89868270 899f3a60 899f3a68 VIDEOPRT!VideoPortFindAdapter2+0x3ec
b9d138b0 b932fc41 89868270 899f3a60 899f3a68 VIDEOPRT!VideoPortFindAdapter+0x7c
b9d13a1c 80a21c8d 897d5040 899b2300 897d5040 VIDEOPRT!pVideoPortPnpDispatch+0x6ad
b9d13a34 80b5e526 b9d13aa4 89b41808 89abb2d0 nt!IopfCallDriver+0x51
b9d13a60 80b5e66e 897d5040 b9d13a80 00000000 nt!IopSynchronousCall+0xf0
b9d13aa8 80a2c123 89abb2d0 00000001 00000000 nt!IopStartDevice+0x82
b9d13ac4 80b5d2e8 89abb2d0 b9d13d01 899022d0 nt!PipProcessStartPhase1+0x9f
b9d13d20 80b5de56 89b41808 00000001 00000000 nt!PipProcessDevNodeTree+0x238
b9d13d58 80a2d0ab 899022d0 89b32da8 80b1365c nt!PiRestartDevice+0x116
b9d13d80 80ad51a9 00000000 00000000 89b32da8 nt!PipDeviceActionWorker+0x17f
b9d13dac 80bd81ac 00000000 00000000 00000000 nt!ExpWorkerThread+0x10f
b9d13ddc 80ae4212 80ad509a 00000001 00000000 nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16

FOLLOWUP_IP:
igxpmp32+21db0
a7e3cdb0 6a12 push 12h

FAILURE_BUCKET_ID: 0x50_igxpmp32+21db0


And from Ida

.text:10021D87 loc_10021D87: ; CODE XREF: sub_10020DD0+F98 j
.text:10021D87 movzx eax, [ebp+var_469]
.text:10021D8E cmp eax, 1
.text:10021D91 jnz short loc_10021DB0
.text:10021D93 mov ecx, [ebp+var_470]
.text:10021D99 push ecx
.text:10021D9A lea edx, [ebp+var_468]
.text:10021DA0 push edx
.text:10021DA1 push offset aHardwareinfo_1 ; "HardwareInformation.AdapterString"
.text:10021DA6 mov eax, [ebp+arg_0]
.text:10021DA9 push eax
.text:10021DAA call ds:VideoPortSetRegistryParameters
.text:10021DB0
.text:10021DB0 loc_10021DB0: ; CODE XREF: sub_10020DD0+FC1 j
.text:10021DB0 push 12h
.text:10021DB2 push offset aInternal ; "Internal"
.text:10021DB7 push offset aHardwareinfo_2 ; "HardwareInformation.DacType"
.text:10021DBC mov ecx, [ebp+arg_0]
.text:10021DBF push ecx
.text:10021DC0 call ds:VideoPortSetRegistryParameters
.text:10021DC6 push 22h
.text:10021DC8 push offset aIntelVideoBios ; "Intel Video BIOS"
.text:10021DCD push offset aHardwareinfo_3 ; "HardwareInformation.BiosString"
.text:10021DD2 mov edx, [ebp+arg_0]
.text:10021DD5 push edx
.text:10021DD6 call ds:VideoPortSetRegistryParameters
#5927Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #5925
@Mov AX, 0xDEAD
did you make any progress on WDDM? or nothing yet?

missed import added, but boring to debug it all :) so frozen for best time, too much work, no motivation
#5928YuriyCNWindows XP + modern hardware = RTC bug

I observe the strange work of the system time. The system time constantly goes ahead with PC load up to 3-5 minutes a day. When the PC is idle, there is no acceleration of time. This problem occurs on Windows XP only. On Windows 7 or BIOS, time is always accurate - so there are no problems with hardware.

Enabling / disabling HPET in BIOS/UEFI does not affect the course of time. After several experiments, I found out that the difference in the system time appears due to the load on the PC when switching the system (multimedia) timer 16ms - 1ms - 16ms - 1ms. In this case, the clock begins to rush up to 7-10 seconds ahead of 10 minutes. If the multimedia timer is set to period = 1ms = CONST, then the time is running correctly.

#5929blackwingcatI tried native XP acpi.sys and modified it.

1. Stop A5 11 08 -> Fixed
2. A5 2001 -> Fixed
3. A5 2 xx 1

  		cmp	[ebp-08h],esi
jz -> jmp L0001E0BB
push [ebp-14h]
push ebx

   
no effection

L0002F617:
mov edx,[ebp-08h]
cmp edx,edi
jge L0002F63D
cmp edx,ecx
jz L0002F63D
mov eax,[esi]
and eax,ebx
or eax,edi
jz L0002F63D
push [ebp+0Ch]
push 00000001h
push esi
push 00000002h
push 000000A5h
call [ntoskrnl.exe!KeBugCheckEx] <-BSoD
#5930Marlen MaksumovHello can you upload the files that are needed to boot Windows Vista pure UEFI 32bit?
#5931Marlen MaksumovI have an tablet laptop with 86x UEFI 32bit which searches for ia32bit.efi.
#5932infuscomus⇗ @Marlen Maksumov

There was only ever support for UEFI in 32-bit Vista in the early betas, I'm not sure if it ever worked.

earliest official 32-bit UEFI support is windows 8.0
#5933Marlen MaksumovCan someone give the ready iso file of the Windows Vista? because i tried doing by myself doesnt work at all in pure UEFI.
#5934infuscomus⇗ @Marlen Maksumov

As I said, Windows vista won't work in 32-bit UEFI - you'll need to use Windows 8.0 or newer for 32-bit UEFI
#5935Marlen MaksumovOne chinese guy he got it working
⇗ https://www.betaarchive.com/forum/viewtopic.php?t=42051
#5936infuscomus⇗ @Marlen Maksumov

Your doing a pure UEFI boot though, pure UEFI lacks CSM which windows 7 and Vista need to function, so this isn't going to work (unless someone has found a way to get windows Vista/7 working without CSM)
#5937diderius6⇗ @blackwingcat

Is this on an XP installation or on Win2000
for your new motherboard
Dietmar
#5938Marlen MaksumovOk, thanks for the information.
#5939diderius6I make a small joke,
and translate the Hexcode to Asci II of "HardwareInformation.AdapterString"

This gives for Win7 for the DEV_0F31 Baytrail Valley View VGA

I n t e l ( R )   H D   G r a p h i c s

and for XP

páÄÄ$á¤'á9

which does not make so much sense for me )..

Hm, it looks, as if the driver igxpmp32.sys recogniced everything for DEV_0F31 correct
but then found no information in the driver itself about the special information for Baytrail hardware,
that needs to be put to registry
Dietmar
#5940diderius6⇗ @gordo999

When I trace with "p" all assembler from an entrypoint of a driver with Windbg,
is there a way to trace the driver itself?
When I get a Bsod, via IDA I can found the place where it happens,
but not why.
The loong list of assembler orders that I get starting at the entrypoint of a driver,
what are they?
For example there I see test esi,esi which tests esi if it is Zero.
Put where is this test esi,esi stored? Now it is stored in memory, because it a the place in memory after the entrypoint of the driver, but from where is this test esi,esi ? Because only if you know this,
there is chance to hack
Dietmar

PS: Now it is unclear for me as much as possible, from where XP gets the information about the hardware and which part of this information is written to registry.

What does PVOID ValueData contains in
VideoPortSetRegistryParameters(
PVOID HwDeviceExtension,
PWSTR ValueName,
PVOID ValueData,
ULONG ValueLength
)

 

Page 397

#5941gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5940
When I trace with "p" all assembler from an entrypoint of a driver with Windbg,
is there a way to trace the driver itself?
When I get a Bsod, via IDA I can found the place where it happens,
but not why.
The loong list of assembler orders that I get starting at the entrypoint of a driver,
what are they?
For example there I see test esi,esi which tests esi if it is Zero.
Put where is this test esi,esi stored?
⇗ @diderius6 ...sorry meant to get back to you but I have been thinking about the problem. I noticed you have been tracing with 'p' and wondered why. For example, when you 'break' the program execution, you begin again with 'p', which is a command to jump over a function. You need to use 'g'. The 'p' command, which means 'Step Over' seems to be working for you but it may cause unforeseen problems in some applications.

However, the whole problem is bothering me. Can you describe in more detail how the problem occurs with the driver unloading? Is it during installation or after installation. Is it installed during boot then unloads? You are using windbg in kernel mode. Are you using it within the same computer or in a target/host using two computers?

I don't know exactly what you are doing. Whenever I use windbg on a single machine in kernel mode, I begin by loading an executable. Windbg loads the executable and stops at a certain entry point which is normally in system code before the entry point of the executable code. Windbg causes a 'break' in the execution of the code so you can decide how you want to proceed. However, it has loaded the executable and is awaiting input from the user. As you step through the code, windbg is actually executing the code and the executable will eventually start running. Not sure how that works with a driver that is already loaded.

When an executable is already running, you can attach to it and perform certain operation. That seems to be what you are doing with the driver since it's already loaded. I noticed complaints in the early stages of memory issues related to large pages for Loader and Hal. Don't know if that is a concern.

When I look at the code you supplied, your driver is already loaded completely. Therefore the driver seems to have been loaded independently of any action you took, unless you were installing it via a setup file. You did set a BP on the driver code and windbg stopped there. When the driver unloaded, something really strange happened.

On page 298 of your rtf file, the processor is processing code at:
80B5D5C2 in nt!PipProcessDevNodeTree
then suddenly it's processing code at:
80ACB77C in nt!DebugService2+0x11
then at:
80B9911D in nt!UnloadSystemImage+0x353
At this time, the driver igxmp32.sys is missing from the module list.

This represents a weakness in windbg. It cannot show code executed in the kernel itself but it should indicate an error or exception. If an exception occurred in the driver but it wasn't bad enough to cause a BSOD, it would transfer code execution to windbg for a solution. If windbg could not find a solution, it might unload the driver. However, it is not giving any indication of the exception or why it occurred.

I don't know enough about exceptions but one thing you could try is this. At the beginning, when you enter the BP <address>, instead of hitting 'G' or F5, open the Debug tab on the menu bar and select Go Unhandled exception (gn) or Go Handled Exception (gh). One may give you a BSOD, don't know. I have used the first to get apps to run that won't run with G by itself.

The point is, these forms of Go may reveal more information as to why the driver was unloaded.

Maybe ⇗ @Mov AX, 0xDEAD knows more about this.

Read these two pages on controlling the target with regard to exceptions.

⇗ https://docs.microsoft.com/en-us/windows...ling-the-target⇗ https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/controlling-the-target

⇗ https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/controlling-exceptions-and-events
#5942diderius6⇗ @gordo999

"If an exception occurred in the driver but it wasn't bad enough to cause a BSOD, it would transfer code execution to windbg for a solution. If windbg could not find a solution, it might unload the driver."

I think, this is a first step for to look, what is really going on.
Thanks a lot for reading my loong *.rtf document and help!

Something crazy with this vers. 5449 igxpmp32.sys driver from Intel for XP.
It has the device id for Baytrail F31h in it and decides between different Baytrail VGA, for example from device with F30h.
Why should this own driver from Intel not work? May be, that this driver is incomplete? I miss an hardware entry with text
for Baytrail Valley View as the following
.data:1021FE60 aIntelRHdGra_15:                        ; DATA XREF: sub_100239F0:loc_10023F6A↑o
.data:1021FE60 unicode 0, <Intel(R) HD Graphics 2500>,0


Dietmar
#5943diderius6⇗ @gordo999

I tried "gn" after bp at driverentry for the igxpmp32.sys
and Windbg gives a Bsod with the following content, at a very early stage, driver is not loaded yet


Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Opened \\.\com1
Waiting to reconnect...
Connected to Windows XP 2600 x86 compatible target at (Wed Dec 23 23:10:29.218 2020 (UTC + 1:00)), ptr64 FALSE
Kernel Debugger connection established.
WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
Symbol search path is: C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386;SRV*c:\symbols
*⇗ http://msdl.microsoft.com/download/symbols;C:\symbols
Executable search path is: C:\localsymbols
Windows XP Kernel Version 2600 MP (1 procs) Checked x86 compatible
Built by: 2600.xpsp.080413-2133
Machine Name:
Kernel base = 0x80a02000 PsLoadedModuleList = 0x80b019e8
System Uptime: not available
WARNING: Inaccessible path: 'C:\WinDDK\7600.16385.1\src\openfabricsall\nvme13\nvme\objchk_wnet_x86\i386'
Wed Dec 23 23:10:31.234 2020 (UTC + 1:00): Break instruction exception - code 80000003 (first chance)
nt!DbgBreakPoint:
80ac37e0 cc int 3
kd> gn
Wed Dec 23 23:10:37.187 2020 (UTC + 1:00): Break instruction exception - code 80000003 (!!! second chance !!!)
nt!DbgBreakPoint:
80ac37e0 cc int 3
kd> gn
Wed Dec 23 23:10:44.796 2020 (UTC + 1:00):
*** Fatal System Error: 0x0000008e
(0x80000003,0x80AC37E0,0x80AF22D0,0x00000000)

Wed Dec 23 23:10:44.812 2020 (UTC + 1:00): Break instruction exception - code 80000003 (first chance)

A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.

A fatal system error has occurred.

Connected to Windows XP 2600 x86 compatible target at (Wed Dec 23 23:10:44.968 2020 (UTC + 1:00)), ptr64 FALSE
Loading Kernel Symbols
........................
Loading User Symbols

*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 8E, {80000003, 80ac37e0, 80af22d0, 0}

Probably caused by : ntkrpamp.exe ( nt!KiDispatchException+3d9 )

Followup: MachineOwner
---------

nt!RtlpBreakWithStatusInstruction:
80ac37ec cc int 3
kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

KERNEL_MODE_EXCEPTION_NOT_HANDLED (8e)
This is a very common bugcheck. Usually the exception address pinpoints
the driver/function that caused the problem. Always note this address
as well as the link date of the driver/image that contains this address.
Some common problems are exception code 0x80000003. This means a hard
coded breakpoint or assertion was hit, but this system was booted
/NODEBUG. This is not supposed to happen as developers should never have
hardcoded breakpoints in retail code, but ...
If this happens, make sure a debugger gets connected, and the
system is booted /DEBUG. This will let us see why this breakpoint is
happening.
Arguments:
Arg1: 80000003, The exception code that was not handled
Arg2: 80ac37e0, The address that the exception occurred at
Arg3: 80af22d0, Trap Frame
Arg4: 00000000

Debugging Details:
------------------


EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - Mindestens ein Argument ist ung ltig.

FAULTING_IP:
nt!DbgBreakPoint+0
80ac37e0 cc int 3

TRAP_FRAME: 80af22d0 -- (.trap 0xffffffff80af22d0)
ErrCode = 00000000
eax=80086ef8 ebx=000000ff ecx=80124cdc edx=80af5242 esi=80086eb0 edi=80085000
eip=80ac37e1 esp=80af2344 ebp=80af234c iopl=0 nv up di ng nz na po nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00000082
nt!DbgBreakPoint+0x1:
80ac37e1 c3 ret
Resetting default scope

DEFAULT_BUCKET_ID: DRIVER_FAULT

BUGCHECK_STR: 0x8E

LAST_CONTROL_TRANSFER: from 80a30d7b to 80ac37ec

STACK_TEXT:
80af1a4c 80a30d7b 00000003 80af1da8 00000000 nt!RtlpBreakWithStatusInstruction
80af1a98 80a319e6 00000003 00000000 80af227c nt!KiBugCheckDebugBreak+0x19
80af1e78 80a31f77 0000008e 80000003 80ac37e0 nt!KeBugCheck2+0x574
80af1e98 80a397af 0000008e 80000003 80ac37e0 nt!KeBugCheckEx+0x1b
80af2260 80adfa09 80af227c 00000000 80af22d0 nt!KiDispatchException+0x3d9
80af22c8 80ae01d1 80af234c 80ac37e1 badb0d00 nt!CommonDispatchException+0x4d
80af22c8 80ac37e1 80af234c 80ac37e1 badb0d00 nt!KiTrap03+0xb9
80af2340 80123c39 ffdff120 80af2368 80123dcb nt!DbgBreakPoint+0x1
80af234c 80123dcb 80085000 00000000 80afc980 HAL3!HalpGetParameters+0x91
80af2368 80d2ff9f 00000000 80085000 80afe260 HAL3!HalInitSystem+0x33
80af24f8 80d41cd4 00000000 80085000 8003fc00 nt!ExpInitializeExecutive+0x171
80af254c 80d3f6ec 80afe4c0 80afe260 80af2810 nt!KiInitializeKernel+0x568
00000000 00000000 00000000 00000000 00000000 nt!KiSystemStartup+0x2c4


STACK_COMMAND: kb

FOLLOWUP_IP:
nt!KiDispatchException+3d9
80a397af cc int 3

SYMBOL_STACK_INDEX: 4

SYMBOL_NAME: nt!KiDispatchException+3d9

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: nt

IMAGE_NAME: ntkrpamp.exe

DEBUG_FLR_IMAGE_TIMESTAMP: 4802b3ce

FAILURE_BUCKET_ID: 0x8E_nt!KiDispatchException+3d9

BUCKET_ID: 0x8E_nt!KiDispatchException+3d9

Followup: MachineOwner
---------

kd> lm
start end module name
80001000 80004000 BOOTVID (deferred)
80007000 80008100 WMILIB (deferred)
80009000 80009d00 pciide (deferred)
8000a000 8000b700 dmload (deferred)
80010000 80011b80 kdcom (deferred)
80012000 8001b300 isapnp (deferred)
80062000 80072a80 pci (deferred)
80100000 80127780 HAL3 (pdb symbols) c:\symbols\halmacpi.pdb\E84507EBCC884EC88312CED392E768A61\halmacpi.pdb
8038c000 803bbd80 ACPI (deferred)
803bc000 803c2180 PCIIDEX (deferred)
803c3000 803cd580 MountMgr (deferred)
803ce000 803ecd80 ftdisk (deferred)
803ed000 803f1d00 PartMgr (deferred)
803f2000 803ff200 VolSnap (deferred)
804d7000 804fca00 dmio (deferred)
804fd000 80514900 atapi (deferred)
80515000 8051de00 disk (deferred)
8051e000 8052a180 CLASSPNP (deferred)
8052b000 8054ab00 fltMgr (deferred)
8054b000 8055cf00 sr (deferred)
8055d000 80573880 KSecDD (deferred)
80574000 80600600 Ntfs (deferred)
80601000 8062d980 NDIS (deferred)
8062e000 80647b80 Mup (deferred)
80a02000 80da3000 nt (pdb symbols) c:\symbols\ntkrpamp.pdb\5B9E8A586D3D49D98927B5D5117577231\ntkrpamp.pdb

#5944diderius6The driver igxpmp32.sys gets unloaded at the call of
nt!PpSynchronizeDeviceEventQueue 

Dietmar
#5945blackwingcatI want to install Windows 2000.
So, I'm analyzing and using your XP acpi.sys patch on XP SP3 DVD . :3
Now I can not avoid BSoD STOP A5 0x00000002 XXXXXXXX 0x00000001
Which patch should I apply to ?

Zitat von ⇗ diderius6 im Beitrag ¶ #5937
@blackwingcat

Is this on an XP installation or on Win2000
for your new motherboard
Dietmar

#5946schreiberstein⇗ @blackwingcat Mr. Blackwingcat, perhaps this question is heretical to you, but couldn't you consider making the jump from 1999 to 2001 and join forces with the fine folks in the XP community, extend XPs kernel and improve compatibility with modern hardware and software?

I personally think that XP has many benefits to offer.
There is now an excellent USB3 XHCI driver, NVMe drivers, ACPI patches and many more excellent things.
No more updates that could ruin customized changes.
Hardware compatibility is already great all the way up to the mid-2010s.
Over the years, I tried to use Windows 2000 with several improvement, however, I was never able to get it as "usable" as Windows XP.
Especially without a usable browser like MyPal, or VirtualBox, Office 2010 or modern AMD Catalyst support, I found it hard using it for more "modern" workloads.
(Or cool things like WinBTRFS, VeraCrypt, ...)
I know that many things have been improved, but I always had problems with getting FireFox / modern browsers to work well among other things.
So, I always ended up using XP instead.

I use the "Inexperience Patcher" to make the entire UI look mostly indistinguishable from Windows 2000 (It calls itself Windows 2002) and to my mind, this is the best of both worlds.
Perhaps you have a different use case, preferences or specialized legacy applications and my observation does not apply.
Don''t get me wrong, I will be thrilled to see a screenshot posted here of a Japanese Windows 2000 running on one of the latest systems. I would even like to try it myself. But without the other improvements that make Windows XP so sweet to use (especially the Windows 8 USB XHCI driver), it does not look like a really usable / functional system.

I really respect your work and I have followed your blog for many years now.
Kind regards, Merry Christmas and thank you for your work.

schreiberstein
#5947gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #5943

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - Mindestens ein Argument ist ung ltig.

FAULTING_IP:
nt!DbgBreakPoint+0
80ac37e0 cc int 3

⇗ @diderius6 ....seems to have faulted on its own breakpoint. When windbg sets a BP it removes the code at that location and inserts an 0xCC = int 3. Out of curiosity, can you try gh to see how it handles the exception? Or, you might remove the BP and let it run with gn to see if it encounters another exception related to the driver.

BTW, I have used that trick on occasion, inserting my own 0xCC at an address. You have to save the original code (some instructions at the beginning of a function are single byte codes, like a PUSH), and replace the 0xCC byte with it when it breaks. If it's not a single byte instruction you can pad it with 0x90 = NOP instructions, if required. NOP means No Operation, nothing is executed. Windbg knows about the int 3 instruction and takes steps to handle the exception. By using gn you told it to ignore its process for recovery, so it caused a BSOD.

The NOP is also used if you have a conditional jump instruction the app takes and you don't want it to take the jump. You replace the jump code with 0x90s. If the app does not take the jump and you want to, you change the conditional jump code to a JMP code, normally 0xEB for a short jump. Little more complex if it's a long jump but the complexity is only in the math calculations and where to begin.

You can set the EIP register to point at the instruction you removed after you replace it, to make sure it executes that instruction. When it breaks on the 0XCC it has already executed the instruction at that address and may point to the next address. Just replace the 0xCC with original code and set the EIP register to point to it, if it's not pointing there already. Just be sure no other instructions have been executed since that can cause instability.
#5948diderius6⇗ @blackwingcat

Bsod 0x000000A5, (0x00000002, xxx, yyy, zzz)

is error in ACPIRangeValidatePciResources

So, patch is

74 14 FF 75 EC 53  => EB 14 FF 75 EC 53   for Acpi XP SP3


74 14 FF 75 FC 53  => EB 14 FF 75 FC 53   for Acpi Win2000

Dietmar
#5949YuriyCN1) I found a fix for intel chipsets, attached file here - ⇗ What exactly is the hal timer problem? (2)
2) halmacpi.dll rename in hal.dll and put into c:\WINDOWS\system32
3) Rebooted the PC and repeated the timer test.

Result.
The frequency of the QPC timer has been changed from 3.580 MHz to 3.192 MHz.
But RTC bug isn't solved. The system time constantly goes ahead.

#5950Mov AX, 0xDEAD
Zitat von ⇗ YuriyCN im Beitrag ¶ #5949

But RTC bug isn't solved. The system time constantly goes ahead

Hi YuriyCN,
1) Problem is QPC calculation, cpu frequency must be 3000/3100/3200 Mhz (100Mhz * bus ratio ), but it show strange 3.192 value (QPC=rdtsc=CPU Freq)
2) ACPI timer by default is disabled on skylake+, so where cpu-z get it ?
3) We dont know how all values was calculated, so it can be cpu-z only issue
del-8YuriyCN
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5950
Zitat von ⇗ YuriyCN im Beitrag ¶ #5949

But RTC bug isn't solved. The system time constantly goes ahead

Hi YuriyCN,
1) Problem is QPC calculation, cpu frequency must be 3000/3100/3200 Mhz (100Mhz * bus ratio ), but it show strange 3.192 value (QPC=rdtsc=CPU Freq)
2) ACPI timer by default is disabled on skylake+, so where cpu-z get it ?
3) We dont know how all values was calculated, so it can be cpu-z only issue


3.192 это приблизительно 3.200 = 100 МГц * 32
CPU-Z использую просто для демонстрации, мне пофиг что он показывает.
Суть моей проблемы - спешат часы под WinXP.

Процессор - Skylake Intel i5-6500. Материнская плата на H110 чипсете. Под BIOS и под Windows 7 системные часы идут правильно и очень точно. За 1 день уход времени - несколько секунд, что приемлемо.

Но под Windows XP творится какой-то бред. За день работы часы могут уйти до 7 минут вперед! Причем скорость ухода зависит от загруженности ПК. В некоторые моменты время идет правильно, а в некоторые начинает ускоряться. Я начал копать интернет и изучать данную проблему. С железом проблемы 100% нет, проблема чисто софтовая и проявляется только в Windows XP.

Почитав в интернете, я понял, что проблема может быть связана:
1) с HPET таймером
2) с переключением частот процессора на лету
3) с таймерами

Включение/отключение HPET на этот глюк никак не влияет. С переключением частот сложно мониторить, вообще в простое частота может падать до 800 МГц, в номинальном режиме 3200 МГц, в boost режиме 3600 МГц. Далее, я провел эксперименты с мультимедиа таймером. Когда ПК работает - то его период постоянно переключается между 16 мс и 1 мс. Например запуск Хрома приводит к переключению таймера на 1 мс, а запуск Мозиллы не приводит и таймер остается на 16 мс.

Период таймера контроллирую с помощью программы:
Clockres v2.1 - Clock resolution display utility
Copyright (C) 2016 Mark Russinovich
Sysinternals

Maximum timer interval: 15.625 ms
Minimum timer interval: 1.000 ms
Current timer interval: 15.625 ms

Перепробовал варианты патченых hal.dll и intelppm.sys - глюк не убирается. Можно настроить синхронизацию с инетом 2 раза в день - но нафиг такое решение....

Далее я нашел программу, которая жестко устанавливает период таймера в 1мс и на дефолтные для WinXP 16 мс таймер уже не переключается. И произошло чудо - часы стали идти правильно!! На данный момент постоянно держать в памяти эту программу - это единственное приемлемое решение.

Вывод:
1. Почему RTC уходит причину не нашел
2. Запуск фоновой проги жесто устанавливающей период 1 мс решает проблему
3. Уход времени вперёд происходит при переключении периода 1мс <-> 16 мс
4. Если таймер жестко стоит или на 16 мс или на 1 мс то ухода нет
5. Возможно поможет и отключение boost до 3600 МГц, ограничить частоту CPU я ещё не пробовал

Нужен корректный патч системных файлов. Можете чем нибудь помочь?
Готов тестировать.
#5951Mov AX, 0xDEAD
Zitat von ⇗ YuriyCN im Beitrag ¶ #del-8

Но под Windows XP творится какой-то бред. За день работы часы могут уйти до 7 минут вперед! Причем скорость ухода зависит от загруженности ПК


clock is independ hardware, own quartz, own chip, there is no any write control by design
del-9YuriyCN
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5951
Zitat von ⇗ YuriyCN im Beitrag ¶ #del-8

Но под Windows XP творится какой-то бред. За день работы часы могут уйти до 7 минут вперед! Причем скорость ухода зависит от загруженности ПК


clock is independ hardware, own quartz, own chip, there is no any write control by design




Так и было, но 10 лет назад. А новые (слишком умные) материнские платы с UEFI лезут даже в работу RTC. Возможно мешает IME, возможно ещё что-то. Нужно написать тестовую программу, которая постоянно дергает периодом мультимедиа таймера, переключая его с 16 мс на 1 мс и обратно - таким образом можно активировать глюк и накручивать время.

Я находил в интернете описания с подобным глюком. Но вопрошающего сразу забрасывали простыми рецептами - мол часы штука аппаратная, меняй кварц или батарейку. Но здесь дело хитрее... Я думал патч РАЕ мешает, убрал его, но глюк остался. Модифицированные HAL и INTELPPM также не помогают.

ВинХП при простое (тик таймера 16 мс) - время идет точно.
ВинХП при жестко установленном тике =1 мс - время идет точно.
ВинХП под реальной работой, когда тик таймера меняется - время ускоряется.

Это можно проконтроллировать, сравнивая время с обычными часами, так и по программе CPU-Z, поскольку ACPI и QPC таймера насчитывают = 525 секунд, а RTC таймер = 529 секунд, то есть +4 секунды за 10 минут.
#5952Mov AX, 0xDEAD
Zitat

нет, нужна программа, которая показывает время из аппаратных регистров cmos часов, под linux есть hwclock, под windows гугл ничего полезного не дал, без такой проги непонятно кто врет - железка или винда


Edit: swiss knife named "RWEverything" can do this:
Specific -> IO Index/Data - >CMOS 70/71
first 5 bytes are sec:min:hour, in BCD coding (no need hex converting)

#5953pappyN4Trying to get USB from Zen2 CPU working. DEV149C

AMD 1.0.5.3 (official driver win7x64 for B450 motherboard)
Used this Windows 7 driver to get the B450 chipset USB DEV43D5 working.   Needed to copy usbd.sys, but looks like it works fine.  Did not work for 149C

AMD 1.1.0.276
Did not work for 149C.

AMD 2.0.0.60 (official driver win 7x64 for CPU)
xhci install ok, hub gives error.  Looked at Dependency Walker.  Added ksecd8.sys 6.0.5456.5 and ntoskrn8.sys with hexplorer, PEChecksum corrected.  NTOSKRNL Emu_Extender added missing imports from ntoskrnl.exe
///////amdhub3.sys v2.0.0.60
#pragma comment (linker, "/export:KeReleaseSpinLock=ntoskrnl.KeReleaseSpinLock")
#pragma comment (linker, "/export:ExReleaseFastMutex=ntoskrnl.ExReleaseFastMutex")
#pragma comment (linker, "/export:ExAcquireFastMutex=ntoskrnl.ExAcquireFastMutex")
#pragma comment (linker, "/export:KeAcquireSpinLockRaiseToDpc=ntoskrnl.KeAcquireSpinLockRaiseToDpc")
#pragma comment (linker, "/export:_vsnwprintf=ntoskrnl._vsnwprintf")
#pragma comment (linker, "/export:__C_specific_handler=ntoskrnl.__C_specific_handler")


///////ksecdd 6.0.5456.5 for amdhub3.sys v2.0.0.60
#pragma comment (linker, "/export:_strnicmp=ntoskrnl._strnicmp")
#pragma comment (linker, "/export:_wcsicmp=ntoskrnl._wcsicmp")
#pragma comment (linker, "/export:_wcsnicmp=ntoskrnl._wcsnicmp")
#pragma comment (linker, "/export:ExpInterlockedPushEntrySList=ntoskrnl.ExpInterlockedPushEntrySList")
#pragma comment (linker, "/export:ExpInterlockedPopEntrySList=ntoskrnl.ExpInterlockedPopEntrySList")
#pragma comment (linker, "/export:ExQueryDepthSList=ntoskrnl.ExQueryDepthSList")
#pragma comment (linker, "/export:_local_unwind=ntoskrnl._local_unwind")


Dependency Walker shows all good.  Driver installs and usb mouse/flash drive works.  BUT, when shutting down, always BSOD DRIVER_POWER_STATE_FAILURE 9F (0x500,0x002,,)  Looking over thread, from post 3962, maybe windows expects PoStartNextPowerIrp to be called, but this driver does not.

AMD Radeon USB 1.0.0.13
same works/BSOD as 2.0.0.60

Windows 8 USB3 with Emu_Extender
From Win8x64 ISO, ucx01000.sys, usbhub3.sys, usbxhci.sys, wpprecorder.sys, usbd.sys 6.2.9200.16384.  From win7x64 ISO WdfLdr.sys  1.11.9200.16384.  ksecdd.sys 6.0.5456.5.  Renamed, hexplorer, PEchecksum..  
///////ksecdd,usbd,ucx01000,usbxhci,usbhub for win8 generic usb3 
#pragma comment (linker, "/export:_stricmp=ntoskrnl._stricmp")
#pragma comment (linker, "/export:KeLowerIrql=ntoskrnl.KeLowerIrql")
#pragma comment (linker, "/export:KfRaiseIrql=ntoskrnl.KfRaiseIrql")


Dependency Walker shows one issue, ntoskrn8.sys trying to get KeInitializeSpinLock from ntoskrnl.exe but is not finding it.  Tried with ntoskrnl.exe from SP1 (5.2.3790.1830), SP2 (5.2.3790.3959), and latest (5.2.3790.5583).  


Currently stuck. Any ideas?

AMD 2.0.0.60 works but is not quite compatible (does not call PoStartNextPowerIrp?) BSOD
Win8 USB3 Emu_Extender, KeInitializeSpinLock not found, cant test
#5954infuscomus⇗ @pappyN4

Very strange that it can't find KeInitializeSpinLock - it's definitely there, has been in ntoskrnl since win2000.

try this - ⇗ https://anonfiles.com/N6m68b2cp3/WinXP-I...r_v2.3.4b17_zip

inside these folders -

\Integrator Files\Patches\Microsoft USB 3.0 xHCI driver v2.1 (usb3 driver)

\Integrator Files\Patches\Miscellaneous (ntoskrn8)

are prepatched files, try them out.
#5955Squall Leonhart
Zitat von ⇗ infuscomus im Beitrag ¶ #5954
Very strange that it can't find KeInitializeSpinLock - it's definitely there, has been in ntoskrnl since win2000.


changed between windows 7 and 8

Zitat
This function is inlined for x64 systems from Windows XP till Windows 7. Starting in Windows 8, this function is exported from ntoskrnl.lib. As a result, if you are using the Windows 10 WDK to build a binary that runs on Windows 7 (and therefore you need NX pool usage to pass Windows 10 HLK tests), you must define WIN9X_COMPAT_SPINLOCK. Otherwise, you may see Windows cannot load the device driver for this hardware. The driver may be corrupted or missing. (Code 39).
del-10YuriyCN
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5952
Zitat

нет, нужна программа, которая показывает время из аппаратных регистров cmos часов, под linux есть hwclock, под windows гугл ничего полезного не дал, без такой проги непонятно кто врет - железка или винда


Edit: swiss knife named "RWEverything" can do this:
Specific -> IO Index/Data - >CMOS 70/71
first 5 bytes are sec:min:hour, in BCD coding (no need hex converting)



Если после накрутки времени в Windows XP, перегрузиться и зайти в BIOS - то время уже идет вперед. Кто из них начинает врать - не понятно, но в BIOS новое время записывается. Сегодня ещё потестирую с блокировкой частот CPU и шины. Может появится дополнительная информация.

Если нужная программа есть под Linux, наверняка к ней идет исходный код, который можно перекомпилировать под Windows?

 

Page 398

#5956diderius6⇗ @Mov AX, 0xDEAD

I just startet XP Lan debug, XP as Host (where windbg runs) and XP Target (the compi, which I want to debug).
First it does not start.
Then I noticed, that I have to set the IP adresses correct for my home network.
So, may be you give a hint for this in your nice Tutorial ⇗ https://github.com/MovAX0xDEAD/KDNET .

I use now for Debug boot.ini on compi with XP, which I want to debug (Target) with debug ntoskrnl and debug timer hacked hal
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP SP3 DEBUG" /KERNEL=ntos3.exe /HAL=hal3.dll /debug /debugport=COM1 /baudrate=115200 /BREAK
C:\WINDOWS="KDNET" /noexecute=optin /fastdetect /KERNEL=ntos3.exe /HAL=hal3.dll /DEBUG /DEBUGPORT=NET
/HOST_IP=192.168.2.101 /HOST_PORT=50000 /ENCRYPTION_KEY=make.winxp.great.again /CPUFREQ=3000 /TARGET_IP=192.168.2.103
C:\WINDOWS="KDNET_Brk" /noexecute=optin /fastdetect /KERNEL=ntos3.exe /HAL=hal3.dll /DEBUG /DEBUGPORT=NET
/HOST_IP=192.168.2.101 /HOST_PORT=50000 /ENCRYPTION_KEY=make.winxp.great.again /CPUFREQ=3000 /TARGET_IP=192.168.2.103 /BREAK


PS: MSVCRTD.DLL on XP SP3 Compi where Windbg runs (Host) is version 6.00.8797.0  from ⇗ @blackwingcat
SHA-1  F6C83FBF9BE1F5AB40CABD63DFDE4DF340CB74C9
#5957diderius6I want to compare the Windbg whole driver output from driverentry of igxpmp32.sys on the Lenovo x230 with DEV_0166 HD4000
for to compare it with Baytrail.
Crazy, the last Intel (R) HD drivers 6.14.10.5441, 6.14.10.5445 and 6.14.10.5449 give a black screen on the x230.
So, I try the laast version before (without Haswell) 6.14.10.5437 (also with best laast sound)
and this one works, now compare can start
Dietmar
#5958diderius6The driver igxpmp32.sys is unloaded between
80b5d309 e840efecff      call    nt!PipProcessStartPhase2 (80a2c24e)
1: kd>
nt!PipProcessDevNodeTree+0x25e:
80b5d30e 8bf0 mov esi,eax
1: kd>
nt!PipProcessDevNodeTree+0x260:
80b5d310 85f6 test esi,esi
1: kd>
nt!PipProcessDevNodeTree+0x262:
80b5d312 0f8dd6000000 jge nt!PipProcessDevNodeTree+0x33e (80b5d3ee)
1: kd>
nt!PipProcessDevNodeTree+0x268:
80b5d318 817b1806030000 cmp dword ptr [ebx+18h],306h
1: kd>
nt!PipProcessDevNodeTree+0x26f:
80b5d31f bece0200c0 mov esi,0C00002CEh
1: kd>
nt!PipProcessDevNodeTree+0x274:
80b5d324 0f851b010000 jne nt!PipProcessDevNodeTree+0x395 (80b5d445)
1: kd>
nt!PipProcessDevNodeTree+0x395:
80b5d445 807d1c00 cmp byte ptr [ebp+1Ch],0
1: kd>
nt!PipProcessDevNodeTree+0x399:
80b5d449 0f8529020000 jne nt!PipProcessDevNodeTree+0x5c8 (80b5d678)
1: kd>
nt!PipProcessDevNodeTree+0x39f:
80b5d44f ffb5c8fdffff push dword ptr [ebp-238h]
1: kd>
nt!PipProcessDevNodeTree+0x3a5:
80b5d455 ffb5d0fdffff push dword ptr [ebp-230h]
1: kd>
nt!PipProcessDevNodeTree+0x3ab:
80b5d45b 6a01 push 1
1: kd>
nt!PipProcessDevNodeTree+0x3ad:
80b5d45d ff7518 push dword ptr [ebp+18h]
#5959blackwingcatI bought serial blanket yesterday.
I tried it , but F8 press on F6 period seems not to be effection. :3
#5960diderius6⇗ @blackwingcat

No external COM port works, I tested.
Only when there is an integrated COM port on the motherboard,
you can use it for Windbg. But via Lan, an external Lan card works for Windbg under XP as long as it is the supported
Lan DEV list
⇗ https://docs.microsoft.com/en-us/windows...-in-windows-8-1
Dietmar
#5961diderius6Driver igxpmp32.sys loaded on Lenovo x230 with DEV_0166 HD4000

Why I post this is, that I hope to find those belonging places in the igxpmp32.sys driver. But only the names of the variables
appear, I can not find any characteristic place in the driver itself. The driver is for both motherboards the same,
so I wonder, how it can happen, that in memory they are not the same, only similar. driver entrypoint and a lot more are the same in memory on both boards.

So, for me the question is, if you can make a copy from the content of the memory(!),
working on the x230 board and copy it to the memory of the Baytrail board.


The XP installation is nearly to 100% the same, I connect the XP installation from the x230 board to the Baytrail board and this works
Dietmar

80b5d309 e840efecff                call    nt!PipProcessStartPhase2 (80a2c24e)
3: kd>
nt!PipProcessDevNodeTree+0x25e:
80b5d30e 8bf0 mov esi,eax
3: kd>
nt!PipProcessDevNodeTree+0x260:
80b5d310 85f6 test esi,esi
3: kd>
nt!PipProcessDevNodeTree+0x262:
80b5d312 0f8dd6000000 jge nt!PipProcessDevNodeTree+0x33e (80b5d3ee)
3: kd>
nt!PipProcessDevNodeTree+0x33e:
80b5d3ee 33ff xor edi,edi
3: kd>
nt!PipProcessDevNodeTree+0x340:
80b5d3f0 eb47 jmp nt!PipProcessDevNodeTree+0x389 (80b5d439)
3: kd>
nt!PipProcessDevNodeTree+0x389:
80b5d439 81fece0200c0 cmp esi,0C00002CEh
3: kd>
nt!PipProcessDevNodeTree+0x38f:
80b5d43f 0f8533020000 jne nt!PipProcessDevNodeTree+0x5c8 (80b5d678)
3: kd>
nt!PipProcessDevNodeTree+0x5c8:
80b5d678 8bc7 mov eax,edi
3: kd>
nt!PipProcessDevNodeTree+0x5ca:
80b5d67a 48 dec eax
3: kd>
nt!PipProcessDevNodeTree+0x5cb:
80b5d67b 740e je nt!PipProcessDevNodeTree+0x5db (80b5d68b)
3: kd>
nt!PipProcessDevNodeTree+0x5cd:
80b5d67d 48 dec eax
3: kd>
nt!PipProcessDevNodeTree+0x5ce:
80b5d67e 7570 jne nt!PipProcessDevNodeTree+0x640 (80b5d6f0)
3: kd>
nt!PipProcessDevNodeTree+0x640:
80b5d6f0 80bdf2fdffff00 cmp byte ptr [ebp-20Eh],0
3: kd>
nt!PipProcessDevNodeTree+0x647:
80b5d6f7 0f84fdfaffff je nt!PipProcessDevNodeTree+0x14a (80b5d1fa)


DevNode 0x8b09eda8 for PDO 0x8b03f038
InstancePath is "PCI\VEN_8086&DEV_0166&SUBSYS_21FA17AA&REV_09\3&b1bfb68&0&10"
ServiceName is "ialm"
State = DeviceNodeStartPostWork (0x307)
Previous State = DeviceNodeStartCompletion (0x306)

Driver igxpmp32.sys not loaded on Baytrail j1900 board with DEV_0F31

nt!PipProcessDevNodeTree+0x259:
80b5d309 e840efecff call nt!PipProcessStartPhase2 (80a2c24e)
1: kd>
nt!PipProcessDevNodeTree+0x25e:
80b5d30e 8bf0 mov esi,eax
1: kd>
nt!PipProcessDevNodeTree+0x260:
80b5d310 85f6 test esi,esi
1: kd>
nt!PipProcessDevNodeTree+0x262:
80b5d312 0f8dd6000000 jge nt!PipProcessDevNodeTree+0x33e (80b5d3ee)
1: kd>
nt!PipProcessDevNodeTree+0x268:
80b5d318 817b1806030000 cmp dword ptr [ebx+18h],306h
1: kd>
nt!PipProcessDevNodeTree+0x26f:
80b5d31f bece0200c0 mov esi,0C00002CEh
1: kd>
nt!PipProcessDevNodeTree+0x274:
80b5d324 0f851b010000 jne nt!PipProcessDevNodeTree+0x395 (80b5d445)
1: kd>
nt!PipProcessDevNodeTree+0x395:
80b5d445 807d1c00 cmp byte ptr [ebp+1Ch],0
1: kd>
nt!PipProcessDevNodeTree+0x399:
80b5d449 0f8529020000 jne nt!PipProcessDevNodeTree+0x5c8 (80b5d678)
1: kd>
nt!PipProcessDevNodeTree+0x39f:
80b5d44f ffb5c8fdffff push dword ptr [ebp-238h]
1: kd>
nt!PipProcessDevNodeTree+0x3a5:
80b5d455 ffb5d0fdffff push dword ptr [ebp-230h]
1: kd>
nt!PipProcessDevNodeTree+0x3ab:
80b5d45b 6a01 push 1
1: kd>
nt!PipProcessDevNodeTree+0x3ad:
80b5d45d ff7518 push dword ptr [ebp+18h]

DevNode 0x8a4ba430 for PDO 0x8a4cd038
InstancePath is "PCI\VEN_8086&DEV_0F31&SUBSYS_0F311849&REV_0E\3&11583659&0&10"
ServiceName is "ialm"
State = DeviceNodeAwaitingQueuedRemoval (0x30f)
Previous State = DeviceNodeStartCompletion (0x306)

#5962blackwingcatUmm, Serial blanket connected directly mother board.

⇗ https://www.amazon.co.jp/gp/product/B001Y1F0HW/
I bought it
#5963diderius6⇗ @blackwingcat

Does your motherboard have intern COM port? If yes,
this should work
Dietmar
#5964AndaluRegarding the failed restart on my Asrock B250M Pro4, I noticed that it works fine on an 'MPS Multiprocessor' and 'ACPI Uniprocessor' system, while it hangs on a 'Standard PC' and clearly on the 'ACPI Multiprocessor' pc.
What could I try to find a solution?

Edit: I have already tried all the modded hal.dll (halmacpi.dll) without success.
#5965diderius6⇗ @Andalu

Try to disable all devices in Bios, that you dont need.
Make a try with Safe Boot F8.
It is an unknown device, that makes the compi hang
Dietmar

PS: Last chance is to mod DSDT in Bios. But this is crazy hard work.
Have you tried to downgrade your Bios?
Be very careful, BIG risk, that via Bios mod only EEpromer can bring your compi back to life!
#5966Andalu⇗ @diderius6
all devices not needed are disabled in bios and the restart doesn't work even in safe mode.

I also tried to disassemble the dsdt table but I got the following error on the command "iasl -d dsdt.dat":
"File appears to be binary: found 49430 non-ASCII characters, disassembling Binary file does not contain a valid ACPI table"


Edit: nothing changes even downgrading to the first bios release
#5967diderius6⇗ @Andalu

So it is not the *.raw DSDT table.
What version is your Bios for Asrock B250M Pro4?
I can download few Bios for this board and compare their DSDT
Dietmar
#5968Andalu⇗ @diderius6
the version in use is the 2.50 (B250M Pro4(2.50)ROM)

Edit: I'm stuck on the errors below after the command "c:\iasl -f dsdt.dsl" on the dsdt table extracted with UEFITool:

Compiler aborting due to parser-detected syntax error(s)
dsdt.dsl   6503:  Zero
Error    6126 -^ syntax error, unexpected PARSEOP_ZERO

dsdt.dsl  10773:         }
Error    6126 -  ^ syntax error, unexpected '}'

dsdt.dsl  14385:
Error    6126 - syntax error, unexpected $end and premature End-Of-File

ASL Input: dsdt.dsl - Compilation aborted due to parser-detected syntax error(s)

Compilation failed. 3 Errors, 0 Warnings, 0 Remarks
No AML files were generated due to syntax error(s)
#5969diderius6⇗ @Andalu

I also cant disassamble DSDT from 2.50 Bios, strange, I never had before.
May be, that a brandnew version of iasl is needed for this, but brandnew iasl do not run on XP SP3.

From the Bios 1.00 I can extract DSDT and disassemble. There are some changes as I can see in their *.raw files.
Easy try to repair header on *.raw 2.50 DSDT does not work. Iasl starts to disassemble but then crashes.
With Eepromer is no risk to flash this DSDT from 1.00, but without EEpromer BIG risk.

You can make a try to downgrade the Bios to the very first version 1.00
but also this is a risk without EEpromer
Dietmar
#5970Andalu⇗ @diderius6
even with the procedure posted ¶ here by ⇗ @infuscomus is there a risk?
I could give it a try.

 

Page 399

#5971infuscomus⇗ @diderius6 ⇗ @Andalu

I would recommend my Easy2boot grub2 ACPI patching method, no risk to BIOS that way.

edit: yes, no risk.
#5972Andalu⇗ @infuscomus
thanks for confirmation ;)
I already use it on an installed XP. Unfortunately with no success for an iso installation.
#5973infuscomus⇗ @Andalu

with my method the patched ACPI table is deleted on reboot, you would need to mod BIOS to make it permanent.
#5974Andalu⇗ @infuscomus
If I could solve the problem of the failed restart, I could then look for a way to make the change permanent. The problem is that at the moment I don't know which changes to apply.


⇗ @diderius6
eventually I could use my EEprom CH341A that I bought a few days ago even if also in this case I need to better learn "how to" :)
#5975infuscomus⇗ @Andalu

anything hidden by OSYS or OSEL entries in the DSDT?
#5976Andalu⇗ @infuscomus
I was not able to obtain a disassembled DSDT table even in win10 with the iasl version 20200717.
I'll try with the latest version 20201217.

Edit: no way even with the latest iasl ("Binary file does not contain a valid ACPI table").
#5977diderius6⇗ @Andalu
The EEpromer CH341A works ONLY on 3 Volt Bioschips.
Very easy you can kill your chip, I "succeed" with this.
The only EEpromer which works everywhere is Revelprog IS,
but it costs about 150 Dollar and is send from Poland
Dietmar


EDIT: I just see, that they have this EEpromer Revelprog IS also on Ebay.
#5978Andalu⇗ @diderius6
thanks for the info ;)
Could the EZP2019 be useful?

About the dsdt table from the bios version 1.0, which are the changes to apply?
#5979infuscomus⇗ @Andalu

try
acpidump -b
#5980Andalu⇗ @infuscomus
I already obtained the dsdt.dat with UEFITool (the same file with the acidump -b command) but the disassembling operation with the command "iasl -d DSDT.dat" gives always the same message: "Binary file does not contain a valid ACPI table"
#5981diderius6⇗ @Andalu

I would try to downgrade the Bios to very first version 1.0. At once you will see, if the problem is gone or not.
But there is risk without good EEpromer
Dietmar
#5982daniel_kHey guys!

⇗ @Andalu
Are you running a fully updated XP install?
I've experienced those restart issues with a SP3 installation with no updates.
#5983Andalu⇗ @diderius6
I already tried the downgrade for the first time more than an year ago ¶ here
and again some days ago without success

I'm not able to obtain the dsdt.aml even with the bios version 1.0 :(
#5984Andalu⇗ @daniel_k
Hi dude ;) How are you?

As you can see, I have always issues..... is it just a coincidence that they are only with asrock boards?

Unfortunately, the restart doesn't wotk even with the updated XP from Win-XP IE 2020.9.9
#5985daniel_k
Zitat von ⇗ blackwingcat im Beitrag ¶ #5879
Hi.

When fail to load acpi, Windows 2000 does not show BSoD. It only shows blinking cursor after loading all text mode drivers. :3

Hi blackwingcat,

This also happens with XP SP1, acpi.sys hangs while parsing the acpi table.

I'll tell you where to look so you can compare both and patch the Win2000 acpi.sys.

 

Page 400

#5986diderius6⇗ @Andalu
The DSDT from Bios 1.0 I have
Dietmar

⇗ https://ufile.io/35robgkc

Compilation successful. 0 Errors, 32 Warnings, 70 Remarks, 245 Optimizations
#5987Andalu⇗ @diderius6
thanks for the file. Here the results:
Compilation successful. 0 Errors, 32 Warnings, 70 Remarks, 245 Optimizations
Previously it was my mistake :)

Edit: I will try to figure out what changes to apply, it will take me a long time but it will definitely be a way to learn something new.
#5988diderius6⇗ @Andalu

I use iasl.exe with

SHA-1 A4302BFEC6A7D52A937801F6C76D450A1989EB95

It must be one of the very last versions, which works with XP
Dietmar
#5989Andalu⇗ @diderius6
I'm using the same version form the iasl-win-20190509 package
#5990diderius6⇗ @daniel_k

Do you have a modded acpi.sys from XP SP1

Dietmar
#5991daniel_k⇗ @blackwingcat

Bug is in the _ParseScope function

XP SP1

 
.00027D69: 53                             push         ebx
.00027D6A: 8B5C2410 mov ebx,[esp][010]
.00027D6E: 85DB test ebx,ebx
.00027D70: 56 push esi
.00027D71: 8B742410 mov esi,[esp][010]
.00027D75: 57 push edi
.00027D76: 740D jz .000027D85
.00027D78: 81FB01800000 cmp ebx,000008001
.00027D7E: 7405 jz .000027D85
.00027D80: 6A02 push 2
.00027D82: 58 pop eax
.00027D83: EB06 jmps .000027D8B
.00027D85: 8B4608 mov eax,[esi][8]
.00027D88: 83E00F and eax,00F
.00027D8B: 83E800 sub eax,0
.00027D8E: 8B7C2410 mov edi,[esp][010]
.00027D92: 7408 jz .000027D9C
.00027D94: 48 dec eax
.00027D95: 7408 jz .000027D9F
.00027D97: 48 dec eax
.00027D98: 7418 jz .000027DB2
.00027D9A: EB3C jmps .000027DD8
.00027D9C: FF4608 inc d,[esi][8]
.00027D9F: 81FB01800000 cmp ebx,000008001
.00027DA5: 755E jnz .000027E05
.00027DA7: 8B4610 mov eax,[esi][010]
.00027DAA: 89473C mov [edi][03C],eax
.00027DAD: 33DB xor ebx,ebx
.00027DAF: FF4608 inc d,[esi][8]
.00027DB2: 8B4618 mov eax,[esi][018]
.00027DB5: 894728 mov [edi][028],eax
.00027DB8: 8B461C mov eax,[esi][01C]
.00027DBB: 89472C mov [edi][02C],eax
.00027DBE: 8B4620 mov eax,[esi][020]
.00027DC1: 8987A8000000 mov [edi][0000000A8],eax
.00027DC7: 8B7614 mov esi,[esi][014]
.00027DCA: 85F6 test esi,esi
.00027DCC: 7403 jz .000027DD1
.00027DCE: 89773C mov [edi][03C],esi
.00027DD1: 57 push edi
.00027DD2: E827B8FFFF call .0000235FE
.00027DD7: 59 pop ecx
.00027DD8: 5F pop edi
.00027DD9: 5E pop esi
.00027DDA: 8BC3 mov eax,ebx
.00027DDC: 5B pop ebx
.00027DDD: C3 retn



XP SP3

 
.00029485: 8BFF                           mov          edi,edi
.00029487: 55 push ebp
.00029488: 8BEC mov ebp,esp
.0002948A: 837D1000 cmp d,[ebp][010],0
.0002948E: 53 push ebx
.0002948F: 56 push esi
.00029490: 8B750C mov esi,[ebp][00C]
.00029493: 57 push edi
.00029494: BB01800000 mov ebx,000008001
.00029499: 740A jz .0000294A5
.0002949B: 395D10 cmp [ebp][010],ebx
.0002949E: 7405 jz .0000294A5
.000294A0: 6A02 push 2
.000294A2: 58 pop eax
.000294A3: EB06 jmps .0000294AB
.000294A5: 8B4608 mov eax,[esi][8]
.000294A8: 83E00F and eax,00F
.000294AB: 83E800 sub eax,0
.000294AE: 8B7D08 mov edi,[ebp][8]
.000294B1: 7408 jz .0000294BB
.000294B3: 48 dec eax
.000294B4: 7408 jz .0000294BE
.000294B6: 48 dec eax
.000294B7: 7423 jz .0000294DC
.000294B9: EB47 jmps .000029502
.000294BB: FF4608 inc d,[esi][8]
.000294BE: 395D10 cmp [ebp][010],ebx
.000294C1: 756F jnz .000029532
.000294C3: 8B4610 mov eax,[esi][010]
.000294C6: 89473C mov [edi][03C],eax
.000294C9: F6460A02 test b,[esi][00A],2 -->> THIS FIXES
.000294CD: 8B4610 mov eax,[esi][010]
.000294D0: 894614 mov [esi][014],eax
.000294D3: 7404 jz .0000294D9 -->> THIS FIXES
.000294D5: 83651000 and d,[ebp][010],0 -->> THIS FIXES
.000294D9: FF4608 inc d,[esi][8]
.000294DC: 8B4618 mov eax,[esi][018]
.000294DF: 894728 mov [edi][028],eax
.000294E2: 8B461C mov eax,[esi][01C]
.000294E5: 89472C mov [edi][02C],eax
.000294E8: 8B4620 mov eax,[esi][020]
.000294EB: 8987A8000000 mov [edi][0000000A8],eax
.000294F1: 8B7614 mov esi,[esi][014]
.000294F4: 85F6 test esi,esi
.000294F6: 7403 jz .0000294FB
.000294F8: 89773C mov [edi][03C],esi
.000294FB: 57 push edi
.000294FC: E8C0B2FFFF call .0000247C1
.00029501: 59 pop ecx
.00029502: 8B4510 mov eax,[ebp][010]
.00029505: 5F pop edi
.00029506: 5E pop esi
.00029507: 5B pop ebx
.00029508: 5D pop ebp
.00029509: C3 retn



Windows 2000 SP4 - acpi.sys 5.0.2195.6920

 
.00023A52: 53                             push         ebx
.00023A53: 8B5C2410 mov ebx,[esp][010]
.00023A57: 56 push esi
.00023A58: 8B742410 mov esi,[esp][010]
.00023A5C: 85DB test ebx,ebx
.00023A5E: 57 push edi
.00023A5F: 740D jz .000023A6E
.00023A61: 81FB01800000 cmp ebx,000008001
.00023A67: 7405 jz .000023A6E
.00023A69: 6A02 push 2
.00023A6B: 58 pop eax
.00023A6C: EB06 jmps .000023A74
.00023A6E: 8B4608 mov eax,[esi][8]
.00023A71: 83E00F and eax,00F
.00023A74: 8B7C2410 mov edi,[esp][010]
.00023A78: 83E800 sub eax,0
.00023A7B: 740B jz .000023A88
.00023A7D: 48 dec eax
.00023A7E: 740B jz .000023A8B
.00023A80: 48 dec eax
.00023A81: 7472 jz .000023AF5
.00023A83: E993000000 jmp .000023B1B
.00023A88: FF4608 inc d,[esi][8]
.00023A8B: 81FB01800000 cmp ebx,000008001
.00023A91: 7457 jz .000023AEA
.00023A93: 8B473C mov eax,[edi][03C]
.00023A96: 3B4610 cmp eax,[esi][010]
.00023A99: 7329 jnc .000023AC4
.00023A9B: 6A01 push 1
.00023A9D: FF7624 push d,[esi][024]
.00023AA0: E80FAFFFFF call .00001E9B4
.00023AA5: 59 pop ecx
.00023AA6: 59 pop ecx
.00023AA7: FF7624 push d,[esi][024]
.00023AAA: FF7610 push d,[esi][010]
.00023AAD: 57 push edi
.00023AAE: E805050000 call .000023FB8
.00023AB3: 8BD8 mov ebx,eax
.00023AB5: 83C40C add esp,00C
.00023AB8: 85DB test ebx,ebx
.00023ABA: 7508 jnz .000023AC4
.00023ABC: 3BB7C8000000 cmp esi,[edi][0000000C8]
.00023AC2: 74CF jz .000023A93
.00023AC4: 81FB01800000 cmp ebx,000008001
.00023ACA: 741E jz .000023AEA
.00023ACC: 81FB04800000 cmp ebx,000008004
.00023AD2: 7447 jz .000023B1B
.00023AD4: 3BB7C8000000 cmp esi,[edi][0000000C8]
.00023ADA: 753F jnz .000023B1B
.00023ADC: 85DB test ebx,ebx
.00023ADE: 7512 jnz .000023AF2
.00023AE0: 8B473C mov eax,[edi][03C]
.00023AE3: 3B4610 cmp eax,[esi][010]
.00023AE6: 730A jnc .000023AF2
.00023AE8: EBA9 jmps .000023A93
.00023AEA: 8B4610 mov eax,[esi][010]
.00023AED: 33DB xor ebx,ebx
.00023AEF: 89473C mov [edi][03C],eax
.00023AF2: FF4608 inc d,[esi][8]
.00023AF5: 8B4618 mov eax,[esi][018]
.00023AF8: 894728 mov [edi][028],eax
.00023AFB: 8B461C mov eax,[esi][01C]
.00023AFE: 89472C mov [edi][02C],eax
.00023B01: 8B4620 mov eax,[esi][020]
.00023B04: 8987B0000000 mov [edi][0000000B0],eax
.00023B0A: 8B7614 mov esi,[esi][014]
.00023B0D: 85F6 test esi,esi
.00023B0F: 7403 jz .000023B14
.00023B11: 89773C mov [edi][03C],esi
.00023B14: 57 push edi
.00023B15: E884CFFFFF call .000020A9E
.00023B1A: 59 pop ecx
.00023B1B: 5F pop edi
.00023B1C: 8BC3 mov eax,ebx
.00023B1E: 5E pop esi
.00023B1F: 5B pop ebx
.00023B20: C3 retn



Check the attached files, all original and compare code.

See if you can apply the SP3 fix:

 
.000294C9: F6460A02                       test         b,[esi][00A],2 -->> THIS FIXES
...
.000294D3: 7404 jz .0000294D9 -->> THIS FIXES
.000294D5: 83651000 and d,[ebp][010],0 -->> THIS FIXES


to Win2000 acpi.sys

daniel_k has attached files to this post
#5992daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #5984
@daniel_k
Hi dude ;) How are you?

As you can see, I have always issues..... is it just a coincidence that they are only with asrock boards?

Unfortunately, the restart doesn't wotk even with the updated XP from Win-XP IE 2020.9.9

Good, hope you're doing fine too!

Those restart issues are complicated to fix, as the acpi table is properly loaded.
Personally, I have no idea where the issue may be.
#5993daniel_k
Zitat von ⇗ diderius6 im Beitrag ¶ #5990
Do you have a modded acpi.sys from XP SP1

The one from SP3 seems to work just fine, you can even use 6666.
#5994gordo999
Zitat von ⇗ blackwingcat im Beitrag ¶ #5962
Umm, Serial blanket connected directly mother board.
⇗ https://www.amazon.co.jp/gp/product/B001Y1F0HW/
I bought it
⇗ @blackwingcat ...in Canada, we call it a serial port connector, or a serial port breakout connector. I use one on my Asus B360M mobo.

For a serial connection for debugging you also need a null modem cable (crossover cable) to connect your connector to the other computer.

⇗ https://www.decisivetactics.com/support/view?article=crossover-or-null-modem-vs-straight-through-serial-cable

Microsoft describes it well here:

Note the difference between the 9-pin D-shell connector like yours and the 25-pin connector. Almost the same but a slight difference.

⇗ https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/setting-up-a-null-modem-cable-connection

I made my own but you have to be very careful identifying the correct pins since the D-shell serial connectors are mirror images. I used the more complex cable, the null modem cable with handshake.

Basically, a normal serial cable has pins 2 and 3 connected as:

Rx2 -> Rx2
Tx3 -> Tx3

Those are the receive and transmit conductors. With a simple modem cable you are normally sending signals to a 'dumb' terminal like a monitor or over a telephone line to a remote station.

When you connect two computers via serial ports a simple serial/modem cable does not work. Each computer needs to 'talk' to the other to avoid data collisions. So, they reverse the Rx and Tx connectors like this:

Rx2 -> Tx3
Tx2 -> Rx3

Then they use other control signals to control the data flow.

Pin 4 = DTR = data terminal ready
Pin 5 = ground - important to have the same ground at each terminal.
Pin 6= DSR = data set ready
Pin 7 = RTS = ready to send
Pin 8 = CTS = clear to send

Note that these cables cross over as well. That is...

DTR -> DSR both ways
CTS -> RTS both ways

I have actually used a USB -> serial adapter on the host through a crossover cable to a breakout connector like yours.
#5995Andalu⇗ @diderius6
I have extracted the dsdt.bin file from the installed bios v2.50 with aida64 and it is identical (same SHA-1) for both 'uniprocessor acpi' (with the working restart) and 'multiprocessor acpi' system (where the restart fails).

Edit: with the dsdt table extracted from aida64, I can now get the dsdt.dsl also from the bios v2.50

Edit1: I'm still unable to get the dsdt.aml due to 3 errors detected during the iasl compilation :(
#5996diderius6Hi,
is there a way to change the DEV ID from 0F31=>0156 for the integrated Graphikcard
on the J1900 Baytrail cpu
Dietmar
#5997infuscomus⇗ @Andalu

Can you send me your DSDT in both original BIN and DSL form so I can take a look?
#5998Andalu⇗ @infuscomus

below the dsdt table extracted with RWeverything from bios v2.50

Andalu has attached files to this post
#5999Mov AX, 0xDEAD
Zitat von ⇗ YuriyCN im Beitrag ¶ #del-10

Edit: swiss knife named "RWEverything" can do this:
Specific -> IO Index/Data - >CMOS 70/71
first 5 bytes are sec:min:hour, in BCD coding (no need hex converting)
...
Если после накрутки времени в Windows XP, перегрузиться и зайти в BIOS - то время уже идет вперед. Кто из них начинает врать - не понятно, но в BIOS новое время записывается

Hi YuriyCN,
dont need to mess, just compare cmos 70/71 clock with external clock (hand watches/etc)
#6000infuscomus⇗ @Andalu

OK, I managed to disassemble and reassemble your DSDT using iasl 20161222

On recompile it found an error on line 292 - BNUM already exists, so I deleted that.

Try this modded DSDT (the DSDT.aml) and see if it fixes your restarting issue?

infuscomus has attached files to this post

 

Page 401

#6001Andalu⇗ @infuscomus
thanks for your help ;)
I made a fresh XP installation as "standard pc" (here too I got the restart issue) and then loaded your dsdt.aml file via "asl /loadtable dsdt.aml" command but the restart is still not working.
del-11YuriyCN
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5999

Hi YuriyCN,
dont need to mess, just compare cmos 70/71 clock with external clock (hand watches/etc)



Я именно так и делаю.

Сравниваю работу часов в ПК с наручными часами "Электроника Мелодия 55Б", в которых есть ЦНХ (цифровая настройка хода). При синхронизации ПК с интернетом и сравнении с часами - подтверждается идеальная работа часов. Уход времени данных часов несколько секунд за пол-года...

Возвращаемся к ПК
За ночь в выключенном состоянии (8-10 часов) время идет правильно. По факту имею отставание около 1 секунды за 8-10 часов. В итоге часы ПК отстают от точного времени на 2-3 секунды / день. Это точность часов, определяемая BIOS и точностью часового кварцевого резонатора 32,768 Гц. Эту цифру считаю приемлимой.

Но под Windows XP, когда всевозможный запускаемый софт начинает манипулировать с периодом системного таймера (16 мс <-> 1 мс) - я наблюдаю резкий уход времени вперед - до 3-5 секунд за 10 минут активной работы. За рабочий день часы могут уйти на 5-7 минут вперед. Что считаю не приемлемо и не допустимо.

Я могу скинуть программу, с исходным кодом, которая жестко устанавливает период таймера на 1 мс - и убирает глюк со временем.
#6002daniel_k⇗ @Andalu

Wait a minute:

Zitat
Regarding the failed restart on my Asrock B250M Pro4, I noticed that it works fine on an 'MPS Multiprocessor' and 'ACPI Uniprocessor' system, while it hangs on a 'Standard PC' and clearly on the 'ACPI Multiprocessor' pc.


In MPS mode and Standard PC, Windows doesn't load/touch ACPI tables.
Probably your issue is somewhere else, maybe even a BIOS bug.

#6003infuscomus⇗ @Andalu

try "ACPI multiprocessor" mode with the DSDT mod - does restart work now?
#6004Andalu⇗ @infuscomus
Sorry for the delay in my reply.
Does the command "asl /loadtable dsdt.aml" also work on ACPI Multiprocessor mode?
I would like try your procedure with easy2boot but I'm still looking for a way to get the dsdt.bin file :(

Edit: just tried in ACPI Multiprocessor mode with the asl /loadtable command but on (manually) restart I got the A5 bsod (0x00010007,0x79,0x00,0x00) with the acpi666 from outer space. I'll try with other acpi.sys versions.

Edit1: identical A5 bsod error code with acpi5048 and error code 0x03 with acpi2015
#6005Andalu
Zitat von ⇗ daniel_k im Beitrag ¶ #6002
@daniel_k
In MPS mode and Standard PC, Windows doesn't load/touch ACPI tables.
Probably your issue is somewhere else, maybe even a BIOS bug.

also the 'acpi uniprocessor' mode does not touch the acpi tables? Here the restart works.
The bios bug occurs in XP only, no such issue in Win7 and Win10.
#6006infuscomus
Zitat von ⇗ Andalu im Beitrag ¶ #6004
I would like try your procedure with easy2boot but I'm still looking for a way to get the dsdt.bin file :(


didn't you already send me your dsdt.bin file?

Try my Easy2boot method using the modded dsdt.aml file in that zip file I sent you.
#6007Andalu⇗ @infuscomus
I sent you the original un-modded dsdt.bin file. Can I use your patched .aml file instead of the .bin file for the easy2boot method?
#6008infuscomus⇗ @Andalu

Yes, please try my modded dsdt.aml using my method.
edit: and use "ACPI multiprocessor"
#6009Andalu⇗ @infuscomus
just tried with the dsdt.aml file with the easy2boot method on an ACPI Multiprocessor XP system: A5 bsod (0x11)

Edit: same bsod on another working XP disk.
#6010infuscomus⇗ @Andalu

OK, try this dsdt-mod-2.aml file with easy2boot method - does it also give A5 BSOD?

infuscomus has attached files to this post
#6011daniel_k
Zitat von ⇗ Andalu im Beitrag ¶ #6005
[quote=""|p6005]
also the 'acpi uniprocessor' mode does not touch the acpi tables? Here the restart works.
The bios bug occurs in XP only, no such issue in Win7 and Win10.

Only acpi uni/multiprocessor loads the acpi tables. All other modes don't.
As I've said before, if restart doesn't work in Standard PC mode or MPS Uniprocessor, the issue lies in the BIOS itself.

You're obviously using a graphics card.

What about using the onboard video even if in VGA mode to see if the issue persist?
Or even using the PCIE3 (x4 mode) for your graphics card?
#6012daniel_k⇗ @Andalu

The ACPI table of your board is XP friendly.

Does XP boots with your very own table you've attached here?
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (401)

Try it.
#6013Andalu⇗ @infuscomus
A5 bsod 0x03
#6014Andalu⇗ @daniel_k
it boots with its table but the restart fails :(
#6015Andalu
Zitat von ⇗ daniel_k im Beitrag ¶ #6011
Only acpi uni/multiprocessor loads the acpi tables. All other modes don't.
As I've said before, if restart doesn't work in Standard PC mode or MPS Uniprocessor, the issue lies in the BIOS itself.

You're obviously using a graphics card.

What about using the onboard video even if in VGA mode to see if the issue persist?
Or even using the PCIE3 (x4 mode) for your graphics card?

In ACPI Uniprocessor mode the restart works correctly.
No changes with onboard or PCIEx graphics card, it fails with both.

 

Page 402

#6016infuscomus⇗ @Andalu

does this dsdt-mod-3.aml give a BSOD - If it does there might be something wrong with my method.

infuscomus has attached files to this post
#6017Andalu⇗ @infuscomus
unfortunately it doesn't work, same A5 bsod 0x03.

Most likely you are right: I got the A5 bsod even with the original un-modded dsdt.bin file.
Here a shot where you can see my flash drive (disk 1) with the two partitions (I must use the diskmod driver to create and see the 2nd partition):




⇗ @daniel_k
before I did not understand what you meant, sorry
#6018infuscomus⇗ @Andalu

do you have an existing XP install? If you do try patching dsdt then going straight from agfm to your XP drive instead of back to easy2boot.
#6019Andalu⇗ @infuscomus
I follow these steps for the easy2boot method:
- boot from the flash drive
- select "1 alive grub2 File Manager (agFM)"
- F2 and enter to see the exact disk/partition containing the modded table
- F6 to enter the screen where I can select the grub2 console
- I write here: acpi (hd0,msdos2)/ACPI/DSDT.aml (or bin) and enter (no error detected)
- ESC to exit and F3 to select the partition containing the installed XP to boot from.

Should I try differently?
#6020infuscomus⇗ @Andalu

you checked that hd0,msdos2 is the correct partition where the ACPI amd/bin files are located? use the ls command to check

grub2 is case sensitive so double check

If you run acpi (hd0,msdos2)/ACPI/DSDT.bin using your original unmodded DSDT does it boot?
#6021Andalu⇗ @infuscomus
I don't know where to write the 'ls' command but I can see however the exact disk/partition containing the ACPI folder previously created by pressing the F2 key after entering into agFM.
I had already checked that the command in the grub2 console is case-sensitive otherwise it gives an error.

As said before, I got the A5 bsod even with the original dsdt.bin file
#6022infuscomus⇗ @Andalu

ls command in grub2 console to list files in directory

are you able to remake your easy2boot USB on windows 10? I made my easy2boot in windows 10 so I'm thinking maybe it does something different to make it work correctly.
#6023Andalu⇗ @infuscomus
it will seem strange, but I don't have an internet connection in Win10, I use it really few times because I don't like it at all.
And it is equally strange that to create a simple usb stick you need to connect to the easy2boot site :)
#6024infuscomus⇗ @Andalu

Just out of curiosity, can you boot into a live ubuntu 20.04 ISO after patching the DSDT?
#6025Andalu⇗ @infuscomus
to install that ISO in a USB stick with easy2boot I'd still have to use XP and I don't think it's possible with a 64 bit version such as Ubuntu 20.04.
#6026infuscomus⇗ @Andalu

You only need to download the ISO and put it in the LINUX folder - XP can do that.
#6027Andalu⇗ @infuscomus
I used ubuntu-16.04.5 iso (the 20.04 needs some time to compete the download). Once patched the dsdt.aml file and selected the disk to boot from (the E2B parition) I got the same screen of some days ago for the XP iso installation: the classic horizontal lines that fill the screen as a sign of error.
#6028infuscomus⇗ @Andalu

On my Threadripper system I'm not able to get it to boot - grub2 loads but if I try to boot into ubuntu it will freeze after it loads the USB driver (or so it seems, couldn't get a log)
20.04 worked fine though (although the installer was unstable, hopefully they've fixed that by now)
#6029Andalu⇗ @infuscomus
just tried: I can boot into a live ubuntu 16.04.5 via easy2boot after patching the dsdt table.
#6030infuscomus⇗ @Andalu

It would be good to confirm that it is using the modded DSDT.

Open up log viewer and do a search for DSDT or ACPI in the ubuntu system logs to check the date stamp of the table, that way we can see which one is loaded.

I'm off to bed for now, be back later.

 

Page 403

#6031Andalu⇗ @infuscomus
here is an extract from the ubuntu syslog file:



Many thanks for the support
#6032diderius6Nice Video about assembler x86 for 32 bit
⇗ https://www.youtube.com/watch?v=75gBFiFtAb8

But still I do not understand, how the opcode of a driver in XP is worked down, step by step.
What I understand:
The drivers has an entrypoint in memory. But this seems not to mean, that the whole opcode of the driver starts from this adress, step by step.
Because with Windbg you can see, that XP does not work step by step on this driver, because in that case the same driver loaded at the same entrypoint on 2 different compis would be to 100% the same and you should see this opcode of the driver direct,
but it isnt
Dietmar

PS: With the entrypoint of a driver you should be able to extract the whole loaded driver from memory
and even edit it direct in memory: possible?
#6033blackwingcatOkay.
I could enter debug mode with serial cable :3

And I got KeBugCheckEx on
Halaacpi.dll
  		cmp	edx,eax
jnz L8002D7DE
push ebx
push L8001D7B0
push ecx
push DEAD000Ah
push 0000005Ch
call [ntoskrnl.exe!KeBugCheckEx]

ebx = 0 , ecx = 0
#6034infuscomus⇗ @Andalu

Thanks!
Now we know the patching is working and my easy2boot method is valid.
The hard part comes now - to get it working with XP.

What A5 BSOD did you get in XP with this DSDT?
#6035diderius6⇗ @blackwingcat

It is Bsod 0x0000005C, (0xDEAD000A, 0x00000000, xxx, 0x00000000)
in HalpInitIntiInfo

Dietmar

PS: In XP SP3 halmacpi.dll hack is

75 14 53 => EB 14 53

I think in win2000 similar, if not you can sent me your hal.dll .

L80022222:
          cmp    edx,eax
jnz L8002223A ---> jmp L8002223A
push ebx
push L80018E78
push ecx
push DEAD000Ah
push 0000005Ch
call [ntoskrnl.exe!KeBugCheckEx]
L8002223A:
pop edi
pop esi
pop ebx
leave
retn
#6036Andalu⇗ @infuscomus

Hi,
with easy2boot I got the same A5 error code with all DSDT versions (original and modded) on an XP already installed:
(0x03,xxxx,xxxx,0x494E495F)

but, for the same installed XP, when I use the asl /loadtable command with, for example, the dsdt.aml from the 'andalu-dsdt-mod-3' package, the A5 error code is (0x00010007,xxxx,xxxx,0x00)

I still have to find a way to install an XP ISO via easy2boot
#6037diderius6I try to understand, how XP works with a driver, here igxpmp32.sys.
First I notice, that the driverentry point is not the same place in memory,
where the driver is loaded up.

For igxpmp32.sys

entrypoint is 0x80ac37ec

place in memory is from 0xB8EEF000 to 0xB9159000 size 26A000 (is 2531328 which is not the real size of the driver but its required place on harddisk 2.531.328 Byte)

The simple(?) question is now, HOW XP works step by step with this driver and how this can be seen via Windbg

Dietmar
#6038diderius6⇗ @Andalu

When you load DSDT table via asl /loadtable from Skylake above you get always Acpi Bsod,
no matter which version of asl you use. So, asl cant be used any longer for to check any DSDT table
Dietmar
#6039Andalu⇗ @diderius6
thanks for the info ;)
I thought your posts about the asl /loadtable command were still applicable in my case.
#6040infuscomus⇗ @Andalu

There is a tutorial for how to install XP with easy2boot on youtube by a youtuber - Philscomputerlab

On your existing XP install, can you check that you are using the patched outerspace acpi.sys driver?
#6041Andalu⇗ @infuscomus
acpi.sys 6666 (2019.10.20) from outer space (SHA-1: B1CE1C07AFB0861BCCDEC17DAF04274A3DD80C8C)

I'll take a look to the video.
#6042infuscomus⇗ @Andalu

the checksum matches the acpi.sys I use, so thats good.

can you run acpidump -b again? but send me everything this time?
#6043Andalu⇗ @infuscomus
here the extracted tables

Andalu has attached files to this post
#6044diderius6⇗ @Mov AX, 0xDEAD  ⇗ @gordo999

All IRP are with success for the igxpmp32.sys on the Baytrail J1900 board.
For XP now only Process Monitor 3.53 works. New version 3.6 works only for Vista and above.
Now I am out of ideas, what I can look more for, why this driver gets unloaded
Dietmar

#6045infuscomus⇗ @Andalu

Thanks,
I tried different approaches with these, let me know the result.

infuscomus has attached files to this post

 

Page 404

#6046Andalu⇗ @infuscomus
tried both versions on two different SSDs with XP already installed and working but I got always the same A5 error code: 0x00000003,0x8B783D44,0xC0000034,0x494E495F
#6047infuscomus⇗ @Andalu

Very strange, error is in _INI for some reason.

⇗ @diderius6

any ideas?
#6048diderius6⇗ @Andalu

Please send me the acpi.sys
that you use
Dietmar
#6049Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6044
@Mov AX, 0xDEAD  @gordo999
All IRP are with success for the igxpmp32.sys on the Baytrail J1900 board

Hi Diderius,
1) ProcMon shows only filesystem irps.
Try IrpTracker, IRPTrace to see kernel IRPs (i never used it, maybe they are just trash)

2) I forget to say, In WinXP, IRPs for video drivers processed by VIDEOPRT.SYS, this is kernel "framework for video drivers", it will subcall vendor driver by looking function in special _VIDEO_HW_INITIALIZATION_DATA table , for example at init stage it will call HwFindAdapter(). I think there is no tool to trace VIDEOPRT.sys<>Driver.sys requests
#6050Andalu
Zitat von ⇗ diderius6 im Beitrag ¶ #6048
@Andalu

Please send me the acpi.sys
that you use
Dietmar

The acpi.sys is one of your mod versions:
acpi.sys 6666 from outer space (SHA-1: B1CE1C07AFB0861BCCDEC17DAF04274A3DD80C8C)
#6051Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6032

But still I do not understand, how the opcode of a driver in XP is worked down, step by step.
What I understand:
The drivers has an entrypoint in memory. But this seems not to mean, that the whole opcode of the driver starts from this adress, step by step.
Because with Windbg you can see, that XP does not work step by step on this driver, because in that case the same driver loaded at the same entrypoint on 2 different compis would be to 100% the same and you should see this opcode of the driver direct,
but it isnt

PS: With the entrypoint of a driver you should be able to extract the whole loaded driver from memory
and even edit it direct in memory: possible?

- to make life easier, in driver xxx.sys on all code sections set "not pageable" property, this will force load all driver code
- driver loaded in memory by sections, each section define "VirtualAdress Offset", this is offset from load adress to begin of section
- sections may have gaps in memory, but be solid in file driver
- Windows start driver's life by executing entrypoint call "DriverEntry()", "bu xxx!DriverEntry" set deferred breakpoint to first byte of this func inside driver in memory
- Window has "blackmagic" at boot process, it load all drivers to one adresses, after some time reload to another, only ntoskrnl.exe/hal.dll still at old adresses
- all good debuggers allow edit code in memory, just dont edit memory "under" breakpoint, it may give bad effects
#6052diderius6⇗ @Mov AX, 0xDEAD

Thanks for help!

Do you think, that it makes sense to load after breakpoint (for driverentry of igxpmp32.sys) all the code
in memory of the Baytrail board,
that the working driver from the Lenovo x230 has there
Dietmar
#6053Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6037

First I notice, that the driverentry point is not the same place in memory,
where the driver is loaded up.
For igxpmp32.sys
entrypoint is 0x80ac37ec
place in memory is from 0xB8EEF000 to 0xB9159000 size 26A000 (is 2531328 which is not the real size of the driver but its required place on harddisk 2.531.328 Byte)
The simple(?) question is now, HOW XP works step by step with this driver and how this can be seen via Windbg


what is entry point ? this is adress of function if driver loaded to "PE Header Image base"
Windows ignore this Image base for drivers and load body to own memory pool, each driver get "new image base" , so entrypoint in memory is
new image base +  (0x80ac37ec - PE Header Image base)
#6054Mov AX, 0xDEAD
Zitat von ⇗ YuriyCN im Beitrag ¶ #del-11
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #5999

Hi YuriyCN,
dont need to mess, just compare cmos 70/71 clock with external clock (hand watches/etc)


Но под Windows XP, когда всевозможный запускаемый софт начинает манипулировать с периодом системного таймера (16 мс <-> 1 мс) - я наблюдаю резкий уход времени вперед - до 3-5 секунд за 10 минут активной работы. За рабочий день часы могут уйти на 5-7 минут вперед. Что считаю не приемлемо и не допустимо.


Тогда нет возможности обнаружить источник проблемы если ночью когда все выключено микросхема часов правильно считает колебания кварца и правильно записывает их в cmos память. Когда WinXP загружена некая програмная часть записывает свои собственные показания времени, которые в конечном виде попадают в CMOS память поверх того, что там насчитала микросхема, по другому изменить показания аппаратных часов невозможно (есть конечно Intel ME со свои процессором, но врят ли он этим будет заниматся). Настройка периода системного таймера уже не имеет значения если есть такой факт перебивки времени.
Со стороны Windows это выглядит как кто-то(или сама винда) периодически (?) использует вызов SetLocalTime(), за каждый вызов разница времи только увеличивается
#6055ruthanI had time to switch to more active mode, i will never make some wild coding as some masters here.. but good testing and experimenting is also important.

My target was try Fresco USB3 device compatibility (⇗ https://sheet.zoho.com/sheet/published.d...22a5b950420cb22 ).. but i got boot freeze (infinite boot logo), after reboot and some new devices detection.. i suspected USB devices and i was right, when i disconnected all USB devices, its booting fine.. so im now connecting UBS device one by one, because i had to make some unwanted changes.. I have now 4 different USB controllers connected. Meanwhile i find few things.

 At least on Intel USB3 my Gigabyte keyboard is not realiable, when i had only 1 device, keyboard connected, was always able to skip WinXP checkdisk, but take ~1 hour on all my disk and WinXP has bad idea add some dirty flag to all partitions, when you get some boot crash, at least on my machine.. Win7 checkdisk is also that slow, only for some reason Windows 10 have some better and much faster checkdist at least 10x faster..
  I know that Windows 98 i thing i some ms-dos.sys file or something like that have possibilities not run scandisk.. but i dunno if it is possible to set for XP? Ideal would be check only system C: driver and ignore other..
  .. but back to keyboard, i made with 1 device connected, zillion restarts and reboot and it always worked, when i connected other devices just 3x USB2 monitor hubs, its no more realiable and keyboard is sometimes not working for checkdisk skip.. i tried shutdown, psu power disconnection anything.. im not able to find way to make it working everytime.. when i connect PS/2 keyboard it is working everytime, so there has to be some bug.

Some dirty flag removed from Windows would be good too..

I have other question, Nvidia Gpus are limited in XP to 2 monitors only, what about AMD ones, is there some AMD card and driver, which could handle 3 monitors?
#6056diderius6⇗ @Andalu

This is hack of acpi.sys against Bsod 0x000000A5 (0x00000003, xxx, yyy, zzz)

Dietmar

⇗ https://ufile.io/305aedg3
#6057ruthanSome good new, i finally found some working USB3 Gigabit Lan combo..  Assix AX88119 is running fine on Fresco USB3 controller and fresco driver - station drivers from 2016..  Because copying files with 100Mbit/s simply sucks.. I tried better Realtek USB3 with zillions controllers, it always installed drivers, no exclamation marks, but networking never worked.. it seems i will be maybe even make working some DVB-T2 turner on it.. but i have now other priorities.
#6058ruthanHmm Fresco is nice one, its first controller, where Xbox360 controller working correctly, even after reboot..
#6059Andalu⇗ @diderius6 ⇗ @infuscomus

firstly thank you guys for your help

With the new acpi.sys XP boots correctly.
With the easy2boot method it works on an XP already installed with the "dsdt-mod.aml" from the package "andalu_acpidump_dsdt_mod" but, really strange, not all the times:
XP starts correctly without the A5 bsod but in some attempts the desktop occupies only a third of the screen, the remaining part remains black. The same always happens with "dsdt-mod-osys-fix.aml". The other modified dsdt tables always give a bsod.

In any case, the restart still doesn't work, unfortunately


EDIT: also tried with a pciex graphics card for the easy2boot method but I got the A5 bsod (0x00010007,xxx,xxx,0x00) in all attempts, even with the only mod table that sometime works (dsdt-mod.aml). Same error code with the original dsdt table also with the onboard vga.
#6060diderius6I just noticed, that none of the *.dll are loaded together with igxpmp32.sys on the Baytrail J1900 board.
For example igxpdx32.dll gets a lot of IRP on the Lenovo x230 notebook with working DEV_0166 HD4000 GPU.
But I dont know if the absent of all the *.dll which belongs to the driver igxpmp32.sys on the Baytrail board
is a consequence of the unloaded driver igxpmp32.sys or a reason, that igxpmp32.sys gets unloaded
Dietmar

EDIT: In Dependency Walker igxpdx32.dll shows only dependency to videoprt.sys
but not to igxpmp32.sys.

igxpmp32.sys itself also shows no dependency to igxpdx32.dll .

 

Page 405

#6061blackwingcatThank you, I tried it.
And, I found crash on reference address 0x01000801 in hal!HalInitSystem

So, I want to make break point on hal!HalInitSystem
I tried the following command.

kd> bp hal!HalInitSystem
Bp expression 'hal!HalInitSystem' could not be resolved, adding deferred bp
kd> bp 803b5ab8
kd> eb 803b5ab8
ReadVirtual: 803b5ab8 not properly sign extended
803b5ab8 55
kd> bu 803b5ab8
kd> bu hal!HalInitSystem
kd> bl
0 e Disable Clear 803b5ab8 0001 (0001)
1 e Disable Clear 803b5ab8 0001 (0001) hal!HalInitSystem
Microsoft (R) Windows Debugger Version 10.0.20153.1000 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

Opened \\.\com5
Waiting to reconnect...

*** Fatal System Error: 0x0000000a
(0x01000801,0x000000FF,0x00000001,0x803B5b50)

But it is no effection.
Is there any better method how to make bp ?
 
 SUB_L80025B3C:
mov eax,[L800225D0]
push esi
push edi
xor edi,edi
test eax,eax
jbe L80025B9E
L80025B49:
mov esi,[L800225E4+edi*4]
mov dword ptr [esi],00000000h <- esi =0x01000801
push edi





Zitat von ⇗ diderius6 im Beitrag ¶ #6035
@blackwingcat

It is Bsod 0x0000005C, (0xDEAD000A, 0x00000000, xxx, 0x00000000)
in HalpInitIntiInfo

Dietmar

PS: In XP SP3 halmacpi.dll hack is

#6062gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6032
But still I do not understand, how the opcode of a driver in XP is worked down, step by step. What I understand: The drivers has an entrypoint in memory. But this seems not to mean, that the whole opcode of the driver starts from this adress, step by step.
⇗ @diderius6 ...Dietmar, the opcode is the hex byte combo that represent an assembly instruction. When you see an assembly instruction like PUSH, it is a higher level instruction that makes no sense to the processor.The processor needs machine code which is in 1s and 0s which can be represented by 3.3 volts or 0 volts. To make it conveninet for we humans, the binary 1s and 0s are written in hexadecimal.

Don't try to digest all of this, or feel frustrated if you can't. It's just intended as an example of opcode usage. In IDA, if you want to see the opcodes associated with instructions, you have to open Options/General/Disassembly and look for 'Number of opcode bytes'. I generally start at 8 bytes but you may find certain instructions use more. IDA will then display the opcodes for each instruction.

You will notice immediately that the code steps between addresses is dependent on the number of opcode bytes.

For example, a PUSH instruction in 32-bit code often starts with an 0x5 as in 01010reg. The first 4 most significant bits are 0101 = 0x5. The 4 least significant digits are 0reg, a 4 bit value where:

reg = 000 for the EAX register
reg = 001 for the ECX register
reg = 010 for the EDX register
reg = 011 for the EBX register
reg = 100 if no register is specified
reg = 101 for the EBP register
reg = 110 for the ESI register
reg = 111 for the EDI register

Note that the values from 000 - 111 are binary codes for 0,1,2,3,4,5,6,7.

If you see assembly code for PUSH 55, it means to PUSH the value of the EBP register onto the stack. You can tell that because its PUSH = 01010101, where MSB 0101 = 0x5 and LSB 0101 = 0reg where reg = 101 = 0x5 = EBP. Opcode 50 means PUSH EAX.

This is for x86 assembly and it seems things have changed for x64 assembly. I am looking into that now. However, I am looking at an x64 instruction for a jump instruction which is written as:

jmp short loc_149a4 in IDA

It's opcode is EB 6F where JMP = EB, the same as in x86. The 6F tells the processor how many code steps to take. My JMP statement is located at 00000000'00014933 and the JMP is going to relocate the processor execution 0x6F code steps later at 00000000'000149A4. If I subtract the originating address from that address, using hexidecimal subtraction (use programmer mode on the Windows calculator) I get 149A4 - 14933 = 0x71, which is wrong. If I subtract the 0x6f indicated in the EB 6F opcode, I get 149A4 - 6F = 14935, which is two code steps past the JMP address. Therefore I have to add the 6F after the opcode steps.

Going back to my original address:
0000000000014933     EB 6F    jmp short loc_149A4
counting from 14933, the EB opcode is at 14934 and the 6F opcode is at 14935. That's the address I want. When I add 6F to 14935, I get 149A4, the address specified in the jmp statement.

You can see from that alone that the processor executes each opcode statement based on the address spaces taken up by each opcode byte. Having said that, it's never that simple. There are variations, depending on the instruction, how the counting is done and which registers are used.

Also, the opcode bytes can form a code, one of them called an r/m code. The codes identify the register used and they also indicate how more complex opcodes are addressed. Sometimes you'll see an assembly instruction with a multiplier in it that is indicated by *. The multiplier value included in the opcode.

So, you'll get an instruction like MOV reg, reg. That means to move a value from one register to another. It is written in the form:

[100010dw] [mod, reg, ,r/m] [disp 0,1 or 2]

Where each value in the brackets is a byte in length. The second byte breaks down into:

mod (2 bits) + reg (3 bits) + r/m (3 bits) = 8 bits = 1 byte. Each of those sets of bits can form a code. In base 2, two bits can form 4 codes: 00, 01, 10, and 11. Three bits can form 8 codes: 000, 001, 010, 011, 100, 101, 110, 111. Each code can represent a condition or a processor register.

Some people tend to forget that all of this code is aimed at a hardware processor which can only understand 1s and 0s in the form of equivalent voltages. Some people using higher level languages, like object oriented programming, never seem to understand that the objects they define don't exist, but are represented by code, which ultimately is executed by voltages in a processor. It's difficult to equate human ideas to a processor but it's really not helpful to abstract and obfuscate code as if it is a reality unto itself. Assembly language tends to bring us back to Earth, especially at the machine code level which opcodes represent.  

If you hear the word object, think of it as code. That way, you won't get your mind bent trying to visualize an object in a processor or memory. The trick then, when trying to represent reality in a processor is to think of how to represent the reality as code. Or read the inventor of the C++ language, Bjarne Stroustrup, who tends to talk in real terms rather than in abstractions and obfuscations.

So the opcode has 3 bytes with the first representing the MOV instruction as in 0x100010dw. I wont get right into this right now, I just want to give an example, The d refers to 'direction' and if d = 1 the MOV is memory to register. The w = word, which means a data word. If w = 1, use a 16 bit or 32 bit data word. If w = 0 use an 8 bit data word.

Therefore if the MOV instructions first opcode byte is 10001011 = 0x8B we have a MOV from memory to a register and it will be 16 or 32 bits. I have noticed that 64 bit code does it differently so I need to research that since I am currently debugging a 64-bit app.

The mod, reg,  r/m byte tells us which registers are in use and how memory is to be addressed. 'mod' means mode and it can have 4 values, since it occupies only 2 binary digits: 00,01,10,11. If mod = 00, it can have two meanings. If the associated r/m = 110, a direct memory access is used. If r/m, is not 110, the displacement is 0 and indirect memory access is used. Don't be confused by displacement I'll explain.

If mod = 01, an indirect memory operand is used with 8 bit displacement.
If mod = 10 an indirect memory operand is used with 16 bit displacement.
If mod = 11 a two register instruction is used. The reg field is the destination register and the r/m field is the source register.

The 'reg' component of the mod, reg, r/m byte tells us which general purpose register is used. I described them above for the PUSH instruction but they are slightly different here. Since the 'reg' portion is 3 bytes it is limited to 8 separate codes, hence 8 registers, as follows:

000 = AX/EAX or AL for 8 bits
001 = CX/ECX or CL for 8 bits
010 = DX/EDX or DL for 8 bits.
011 = BX/EBX or BL for 8 bits
100 = SP/ESP or AH for 8 bits
101 = BP/EBP or CH for 8 bits
110 = SI/ESI or DH for 8 bits
111 = DI/EDI or BH for 8 bits.

There are times when the reg field defines a segment register 'sreg' rather than a general purpose register. A segment register is a register pointing to a data segment (DS), a stack segment (SS), a code segment (CS), system registers FS and GS, and an extra segment, ES.

000 = ES, 001 = CS, 010 = SS, 011 = DS, 100 = FS and 101 = GS. All of these registers are used as base addresses for various data segments while FS and GS are used by the system for thread specific work.

Here's the complex part for the r/m portion. The fields work together at times. If the mod field is 11, r/m specifies the source register using the reg field. Otherwise, r/m is as follows:

000 = DS:[BX+SI+disp]...explained in a minute.
001 = DS:[BX+DI+disp]
010 = SS:[BP+SI+disp]
011 = SS:[BP+DI+disp]
100 = DS:[(SI+disp]
101 = DS:[DI+disp]
110 = SS:[BP+disp]
111 = DS:[BX+disp]

These are all examples of indirect memory addressing since the memory address is not expressed as a number. It is expressed indirectly by a pointer, which is contained in the square brackets. A pointer is value that points to the address in memory that needs to be accessed.

The DS and SS refer to the data segment and the stack segment. If you open up the 'registers' window in windbg (under View/Registers) and scroll down the window you will see the cs, ds, es, fs, gs, and ss registers listed with values. Those values are used to located the base addresses of other segments in memory. It's not easy to decipher them so don't take them too literally. If you learn to decipher them it will help you incredibly when going through memory.

Anyway the DS segment register is usually combined with the ESI register as DS:ESI while the ES register is combined with the EDI register as ES:EDI. Likewise, the SS register is usually combined with the stack pointer as SS:ESP.

⇗ https://www.tutorialspoint.com/assembly_programming/assembly_registers.htm

In the case above, the DS and SS registers are being used internally to point the processor to where it needs to be. So DS:[BX+SI+disp] has the following meaning:

DS = the base memory segment (again, don't go looking for it, it needs to be deciphered using system tables).

[.....] indicates a pointer. Any time you see the square brackets around register values it means you have to use the value pointed to by the address inside the brackets. In this case you are adding the value in the BX register to the value in the SI register plus a displacement, to get an address.

BX is a general reference for the B-register. With a 32-bit system, it included the EBX (32-bit) and the BX (16-bit). BX can be further broken into BH = 8 MSB bits and BL = 8 LSB bits.

SI is the lower 16 bits of the ESI register.

disp = displacement is the number of bytes given to offset a value. For example [EBP + 8] means go to the memory address of EBP plus 8 bytes.


Zitat von ⇗ diderius6 im Beitrag ¶ #6032
Because with Windbg you can see, that XP does not work step by step on this driver, because in that case the same driver loaded at the same entrypoint on 2 different compis would be to 100% the same and you should see this opcode of the driver direct, but it isnt Dietmar
As I explained above, it should go step by step if you look at the opcode bytes and give each byte an address.

Zitat von ⇗ diderius6 im Beitrag ¶ #6032
PS: With the entrypoint of a driver you should be able to extract the whole loaded driver from memory and even edit it direct in memory: possible?
Yes, it's possible. However, there may be issues with memory access since a driver is normally related to system memory which is better protected than user memory. You also have to realize that the image in memory for executables and dll files is not exactly the same as the image on disk. If you learn how to use the PE header in the app on disk you can figure out how the memory image is loaded.

This is more about advanced reverse engineering and you'll have to read on how to do it. I have dumped the memory of a user-level app to disk and I have edited the memory of the app. There are things you need to watch, however. In a paged system like Windows, sometimes the memory page you need is paged to disk, in the pagefile. If you try to access it the system can crash. So, you need to learn how to reload the memory from disk.

It's all doable.
#6063gordo999
Zitat von ⇗ blackwingcat im Beitrag ¶ #6061
So, I want to make break point on hal!HalInitSystem
I tried the following command.
kd> bp hal!HalInitSystem

⇗ @blackwingcat ...this could be a context problem. In other words, you need to be in the code for Hal before you can set a breakpoint. Or, the Hal module has to be loaded, which you can't do in windbg apparently. I had no problem with this using softice but windbg seems to have difficulties setting BPs on system code.

I think there are ways around this using kernel mode debugging...not sure. Softice would let you trace from user code into system code then set a breakpoint. I know there is a way to change context in windbg.
#6064gordo999⇗ @diderius6 ...a couple of links to useful windbg stuff. The pdf file at second link has a section on memory dumps.

⇗ http://windbg.info/doc/1-common-cmds.html

⇗ http://windbg.info/doc/2-windbg-a-z.html
#6065Andalu⇗ @infuscomus

XP-IE2020.9.9 iso with the new acpi.sys by ⇗ @diderius6 correctly installed via the easy2boot flash drive prepared in XP using Easy2Boot_v2.06A_DPMS.exe.
It needs a mandatory graphics card because the vga on board produces an unreadable screen. Unfortunately, the restart remains still not working for my B250M Pro4.

By entering the command "acpi (hd0, msdos2)/acpi/dsdt.aml" in the grub2 console, the installation hangs right after loading the iso into memory with either Firadisk or WinVBlock. Tried using all the modded dsdt.aml tables without results.
#6066diderius6⇗ @gordo999

Thank you a lot for help and the 2 documents about the use of Windbg!
Do you have an idea, why a *.dll is not loaded at all, how is a *.dll loaded and called,
have a nice day
Dietmar
#6067diderius6⇗ @gordo999

Can you please describe as good as possible for me the following output from Windbg
kd> 
nt!PipProcessDevNodeTree+0x399:
80b5d449 0f8529020000 jne nt!PipProcessDevNodeTree+0x5c8 (80b5d678)

Dietmar
#6068infuscomus⇗ @Andalu

are you able to continue the install without patching ACPI for now?
#6069Andalu⇗ @infuscomus

1st test: the XP installation is correctly completed with the acpi.sys from ⇗ @diderius6 integrated into the XP-IE2020.9.9 iso by choosing the classic "windows install menu" option in the easy2boot main menu.

2nd test: before choosing directly the "windows install menu" option, if I enter the grub2 console and here run the command "acpi (hd0,msdos2)/acpi/dsdt.aml", then go back to the easy2boot main menu and choose again the same "windows install menu" option as above, the XP installation hangs after loading the iso in memory.
#6070diderius6⇗ @blackwingcat

I noticed, that you have Bios 2606 installed on your board.
For the cpu Ryzen 3950x you can go back to Bios 0602.
I compare the DSDT in both Bios.
In Bios 0602 are some less devices than in Bios 2606.
So its worth a try, but without a good EEpromer a BIG risk on this board
Dietmar
#6071infuscomus⇗ @Andalu

Honestly, I'm not sure why this is happening, I only tested this method on my threadripper system.
#6072Andalu⇗ @infuscomus

your method seems to work correctly with one of your modded dsdt tables, otherwise my system would never boot.
I can't figure out why this doesn't happen every time and the desktop isn't always displayed full screen.
#6073diderius6I succeed to install the igxpmp32.sys driver version 5437
on the Lenovo x230 with DEV_0166 HD4000 GPU
without any *.dll.
For this I deleted all *.dll in its setup folder,
in registry everything about service "ialm"
and all those belonging *.dll in windows\System32
This means, that the driver igxmp32.sys is to 100% independend
from any of its installations *.dlls
Dietmar

EDIT: I also succeed to install the igxpmp32.sys driver on the Lenovo x230 notebook
with only one entry for DEV_0F31 in its installations *.inf file.
So vice versa this modded driver (no 166h in igxpmp32.sys only F31h)  works.
What is different for Baytrail Valley View GPU???

#6074diderius6Is anybody here, who knows about linux?
I found, that they wrote, that the Sourcecode for Baytrail Valley View is nearly(?) identic to
HD4000 or HD2500, so that they do not need to change a lot.
But I dont find this Source code
Dietmar
#6075kukonosau⇗ @diderius6
Hello. Where is last version SATA AHCI for XPx86 for Ryzen? I have B350 chipset motherboard. Which drivers version recommended? Hitman: Blood Money has slow more loading and Fraps lagging. Copying files very low.

 

Page 406

#6076kukonosau⇗ @diderius6
Why Patch Integrator was deleted with Upload.ee site? I haven't found files Integrator, but early I can their save. Site electronix help...
#6077infuscomus⇗ @kukonosau

you can get the patch integrator here - ⇗ https://www.zone62.com/downloads/softwar...ntegral-edition
#6078ruthanHere is disable annoying checkdisk:
⇗ https://www.raymond.cc/blog/disable-or-s...indows-startup/

I also made on VIA USB3 TV tuner fully working..
#6079gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6067
kd> 
nt!PipProcessDevNodeTree+0x399:
80b5d449 0f8529020000 jne nt!PipProcessDevNodeTree+0x5c8 (80b5d678)

⇗ @diderius6 ..I don't pretend to be an expert on windbg, I consider myself a newbie on it as well, even though my experience with debuggers in the past as well as years of tracing code gives me an advantage .

The statement above is a conditional jump and it is dependent on a previous statement in which two values are compared (CMP) or tested (TEST). If you see a CALL statement before the jne above, when it returns, there will be values returned in different registers, usually in the RAX/EAX register, at least.. Then you might see a Test EAX, EAX. The test instruction compares the returned value with itself using a logical bitwise AND operator. If the values returned are anything other than 0, the test operator will return a 1. If the value is 0 it will return a 0.

The statement above is based on a previous condition, immediately before it. If the condition is TRUE = 1, the processor will ignore the jne and continue execution. If the condition is FALSE, it will branch off to the address following the jne. Be careful with this because it could cause a crash but if you don't want to branch off to that address, you can replace the opcodes before the jne, 0f8529020000, with 909090909090. Be sure to use as many 0x90s as opcode bytes. Don't leave a 0 because you think it means nothing. Each 0x90 is a NOP statement which means do nothing. The processor will happily carry on executing past the jne statement. You have seen this done before but maybe did not understand why.

The CMP instruction compares the returned value with a value stored elsewhere. The value could be an 'immediate' value, which is an integer value stored in the program, like 0x1000, or it could be in another register. If the CALL returns 0x1000, the CMP instruction compares 0x1000 to 0x1000 and produced a 1 = TRUE. If not, it produces a 0 = FALSE. The conditional jump statement following acts accordingly.

The jne instruction means 'jump if not equal'. An equivalent instruction is jnz = jump if not zero. They react to the flags register, which have a bit set to 1 or 0 depending on the condition reported by statements like CMP or TEST. There are many other conditions that can change the flags register.

If you want to change the result of a conditional jump, if you want to take a different code path than the app is taking, you can find the related flag and change it. For example, in a jz or jnz conditonal jump, the zero flag controls the direction the code will take following a conditional jump. If you change it, the jump goes in the other available code direction.

Such a change in the flag register is only temporary, when you reload the app it does not apply, so you need to change the code in the app using the 0x90 or equivalent.

⇗ https://en.wikipedia.org/wiki/FLAGS_register
#6080diderius6⇗ @gordo999

Thanks a lot,
I try,
Dietmar
#6081diderius6I see,
that my compare between Lenovo x230 with DEV_0166 HD4000 and Baytrail with DEV_0F31 seems to be better, than thought.
Really at every place in memory is on both compis the same Hexcode after meeting driverentry of igxpmp32.sys.

Take a look:
HD4000 loads
3: kd> 
nt!PipProcessDevNodeTree+0x259:
80b5d309 e840efecff call nt!PipProcessStartPhase2 (80a2c24e)
3: kd>
nt!PipProcessDevNodeTree+0x25e:
80b5d30e 8bf0 mov esi,eax
3: kd>
nt!PipProcessDevNodeTree+0x260:
80b5d310 85f6 test esi,esi
3: kd>
nt!PipProcessDevNodeTree+0x262:
80b5d312 0f8dd6000000 jge nt!PipProcessDevNodeTree+0x33e (80b5d3ee)
3: kd>
nt!PipProcessDevNodeTree+0x33e:
80b5d3ee 33ff xor edi,edi
3: kd>
nt!PipProcessDevNodeTree+0x340:
80b5d3f0 eb47 jmp nt!PipProcessDevNodeTree+0x389 (80b5d439)


Baytrail fails
nt!PipProcessDevNodeTree+0x259:
80b5d309 e840efecff call nt!PipProcessStartPhase2 (80a2c24e)
1: kd>
nt!PipProcessDevNodeTree+0x25e:
80b5d30e 8bf0 mov esi,eax
1: kd>
nt!PipProcessDevNodeTree+0x260:
80b5d310 85f6 test esi,esi
1: kd>
nt!PipProcessDevNodeTree+0x262:
80b5d312 0f8dd6000000 jge--->E9d700000090 jmp? nt!PipProcessDevNodeTree+0x33e (80b5d3ee)
1: kd>
nt!PipProcessDevNodeTree+0x268:
Heres must be 80b5d3ee ----> 80b5d318 817b1806030000 cmp dword ptr [ebx+18h],306h

When this is the place, where IRP for the very first time gives "true" on Baytrail,
the driver fails
Dietmar

PS: Can this driverfail been overcome just by jge => jmp?
#6082gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6081
PS: Can this driverfail been overcome just by jge => jmp?

⇗ @diderius6 ...not necessarily. The code leading up to it is checking the devnode tree so it is trying to find a driver object in the tree and maybe it can't find one. With Microsoft, it's not necessary to suspect they are trying to mislead you by creating a false jump in most of their stuff.  

I am not that experienced with windbg but I know there is a way to display the devnode tree. If you can do that for both drivers any discrepancies might be obvious. I suggest you become familiar with how the devnode tree is formed using driver objects.

BTW...I am a newbie with driver stuff as well.

⇗ https://docs.microsoft.com/en-us/windows...bugger/-devnode

⇗ https://docs.microsoft.com/en-us/windows...d-device-stacks

At bottom of page in link 1..."Remarks

The !devnode 1 command lists all pending removals of device objects.

The !devnode 2 command lists all pending ejects of device objects.

You can use !devnode 0 1 to see the entire device tree".

Also, see link in page to plug and play troubleshooting.
#6083diderius6⇗ @gordo999

The fail of Baytrail happens always exact at this place, which I describe.
And very few steps later, the driver is loaded (for HD4000).
Interesting what will happen, when I do this hack tomorrow.
Still the reason is unclear, why this error happens. It seems to depend on test esi, esi (if esi =0).
But for sure this is the exact place
Dietmar
#6084ruthanI made newer XP install again working fine, but i have problem with older installation, which worked before some HW messing (faster CPU, Geforce 730 -> 750 TI and some USB controllers and devices in other USB ports). Now im able to boot once in normal boot, here hw changes are detected.. and after getting BSOD bellow, im only able boot into Safe mode. Newer installation is using same HW fine, so it has to be some OS, driver configuration problem.

Code 0x000050, detail:
⇗ https://www.dropbox.com/s/9llqyzivf22sz1...code50.jpg?dl=0

Does somebody know to which device it is related? Im using PAE 4 mem mode, unless some driver installation rewriten modified files..
#6085gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6083
It seems to depend on test esi, esi (if esi =0).
But for sure this is the exact place Dietmar
⇗ @diderius6 ...it can be challenging for sure unless you find the exact code leading to the problem. Sometimes it's nowhere near where it seems.

Can you post more of the code? What precedes the test esi, esi? The esi register is often used for strings and there may have been a compare of strings that were not equal.

If there is a CALL before the test instruction, can you trace into it to see where it goes? It may be huge with many nested calls or it could be simple before the RET instruction. I think you may have posted the driver file, if I can have a look at it in IDA with the right address of the test esi, esi, I may be able to spot something.

Also, what is the result of the test esi, esi instruction? Does it jump or not? I think you said one of the drivers had a different result than the other.
#6086diderius6⇗ @gordo999

This comes from the result of the call of nt!PipProcessStartPhase2 (80a2c24e)
as you can see in the code above.
The result is in EAX(?) and then copied to ESI.

So, the problem is in nt!PipProcessStartPhase2 (80a2c24e).

I found nothing about ProcessStartPhase2

Dietmar

PS: I dont know, how to follow nt!PipProcessStartPhase2
and where this test esi, esi is written.
Is it at a place in the driver igxpmp32.sys?

EDIT: With the Source code of XP SP1 I found it. It is defined in pnpenum.c
and called by pnpirp.c

NTSTATUS
PipProcessStartPhase2(
IN PDEVICE_NODE DeviceNode
)
{
ULONG problem = CM_PROB_FAILED_START;
NTSTATUS status;

PAGED_CODE();

status = DeviceNode->CompletionStatus;
if (DeviceNode->DockInfo.DockStatus != DOCK_NOTDOCKDEVICE) {

if (NT_SUCCESS(status)) {

//
// Commit the current Hardware Profile as necessary.
//
PpProfileCommitTransitioningDock(DeviceNode, DOCK_ARRIVING);

} else {

PpProfileCancelHardwareProfileTransition();
}
}

if (!NT_SUCCESS(status)) {

SAVE_FAILURE_INFO(DeviceNode, DeviceNode->CompletionStatus);

//
// Handle certain problems determined by the status code
//
switch(status) {

case STATUS_PNP_REBOOT_REQUIRED:
problem = CM_PROB_NEED_RESTART;
break;

default:
problem = CM_PROB_FAILED_START;
break;
}

PipRequestDeviceRemoval(DeviceNode, FALSE, problem);

if (DeviceNode->DockInfo.DockStatus != DOCK_NOTDOCKDEVICE) {

ASSERT(DeviceNode->DockInfo.DockStatus == DOCK_QUIESCENT);
IoRequestDeviceEject(DeviceNode->PhysicalDeviceObject);
}

} else {

IopDoDeferredSetInterfaceState(DeviceNode);

//
// Reserve legacy resources for the legacy interface and bus number.
//
if (!IopBootConfigsReserved && DeviceNode->InterfaceType != InterfaceTypeUndefined) {

//
// ISA = EISA.
//
if (DeviceNode->InterfaceType == Isa) {

IopAllocateLegacyBootResources(Eisa, DeviceNode->BusNumber);

}

IopAllocateLegacyBootResources(DeviceNode->InterfaceType, DeviceNode->BusNumber);
}

//
// This code path currently doesn't expect any of the above functions
// to fail. If they do, a removal should be queued and failure should
// be returned.
//
ASSERT(DeviceNode->State == DeviceNodeStartCompletion);

PipSetDevNodeState(DeviceNode, DeviceNodeStartPostWork, NULL);
}

return status;
}

#6087diderius6I found everything with IDA Pro in the debug version of Ntoskrnl
loc_55B308: ; CODE XREF: PipProcessDevNodeTree(x,x,x,x,x,x,x,x)+173 j
PAGE:0055B308 ; DATA XREF: PAGE:off_55B781 o
PAGE:0055B308 push ebx ; jumptable 0055B223 case 5
PAGE:0055B309 call _PipProcessStartPhase2@4 ; PipProcessStartPhase2(x)
PAGE:0055B30E mov esi, eax
PAGE:0055B310 test esi, esi
PAGE:0055B312 jge loc_55B3EE <--------- jmp, this hack will stay forever but does it help?
PAGE:0055B318 cmp dword ptr [ebx+18h], 306h
PAGE:0055B31F mov esi, 0C00002CEh
PAGE:0055B324 jnz loc_55B445
PAGE:0055B32A push 0
PAGE:0055B32C push 14F3h
PAGE:0055B331 push offset asc_55ADBE ; "d:\\xpsp\\base\\ntos\\io\\pnpmgr\\pnpenum.c"
PAGE:0055B336 push offset aCurrentnodeSta ; "currentNode->State != DeviceNodeStartCo"...
PAGE:0055B33B jmp loc_55B411
#6088infuscomus⇗ @Mov AX, 0xDEAD

Since you have source code, do you have a new acpi.sys driver to help ⇗ @Andalu with the restart issue?
#6089Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #6088
@Mov AX, 0xDEAD
Since you have source code, do you have a new acpi.sys driver to help @Andalu with the restart issue?

Hi infuscomus,
there is nothing to compile to make working driver, acpi "sp1->sp3" sources useless for new platforms, they don't have acpi 2.0 support
to fix reboot issue you can try find in sp1 sources place where need to patch and apply binary patch to v6666 or longhorn 5048's acpi.sys
#6090infuscomus⇗ @Mov AX, 0xDEAD

Oh sorry, I was mistaken, I had thought you had updated the source code to fix bugs and support ACPI 2.0 on new hardware.

 

Page 407

#6091diderius6⇗ @Mov AX, 0xDEAD

What does it mean, when in Windbg something in the "view" of the registers is marked red
Dietmar
#6092ruthanHmm i encountered some other Win XP problem with my new monitor which would be nice to fix.. Nvidia drivers and lack of support of anything better than 1080p over HDMI, with Display port its a bit better (at least 2560x1440 @60 Hz), but also only older revisions on DP standard are running.. Problem is on AMD site too, i dunno about Intel. On Nvidia side is also problem with scaling keep - aspect ration correction, it is not avalaibe in newer drivers, last one good is 355.98

⇗ https://www.vogons.org/viewtopic.php?f=6...=922827#p922827
⇗ https://www.vogons.org/viewtopic.php?f=63&t=72471
⇗ https://www.vogons.org/viewtopic.php?f=63&t=75570
#6093Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6091
@Mov AX, 0xDEAD
What does it mean, when in Windbg something in the "view" of the registers is marked red


⇗ @diderius6
I dont use windbg for step debugging, but i think "red" mean register' value was changed after last executed opcode
#6094ruthanI found out that my old installation problem is related to Nvidia drivers.. when i install them, i cant boot to normal boot..

Code 0x000050, Page_Fault_In_NONPAGE_AREA detail: // Sometimes it is also black screen, after logo..
⇗ https://www.dropbox.com/s/9llqyzivf22sz1...code50.jpg?dl=0

Question is why im getting this with my old install and not with new one?
#6095diderius6Until now no success with the Baytrail Valley View GPU.
Even all the hacks work, at the end the driver igxpmp32.sys gets still unloaded.
I notice, that some informations in registry for Service\ialm are missed only on the Baytrail board,
for example
"HardwareInformation.MemorySize"=hex:00,00,00,40
This just looks, as if the device with DEV_0F31 is not correct recogniced by the driver.
When I delete this value on the Lenovo x230,
in each boot it is build new so it is important
Dietmar

PS: I also make a try to copy all the missed values from the Lenovo x230 to the J1900 Baytrail board.
Does not help, the device there is not correct recogniced.
#6096ruthanHmm, im out of ideas, i rechecked and applied PAE /4GB patch and its still not booting, because Nvidia drivers, i tried couple of them with older GPU it worked, i dunno if it matter that old  slower GPU had paradoxically 4GB (Geforce 730 with 4GB..) and new one has only 2GB, so other memory areas are used.. and they are failing or collide with something..
#6097blackwingcatThus, I could enter kernel Debug mode on HAL.
But it seems to fail to initialize HalpMpInfoTable in HalInitSystem(it is dll Entrypoint)
Strangely, it seems to be called any functions in hal.dll before HalInitSystem.
#6098infuscomus⇗ @ruthan

you might want to try using display driver uninstaller and then reinstall your drivers.
#6099dpps5387690Hi ⇗ @diderius6

Can you give me last acpi.sys for winxp sp3?
I will install Winxp sp3 for Z490.
Thanks.
#6100infuscomus⇗ @dpps5387690

For XP on modern hardware (ACPI, AHCI, USB3) I would recommend getting this - ⇗ https://www.zone62.com/downloads/softwar...ntegral-edition

and using the optional patch integrator included with it to make a patched XP ISO that will work on modern hardware.

use options 1, 4, 6 and 7 in the patch integrator.
#6101dpps5387690Thank you.
I try it.
#6102diderius6⇗ @Mov AX, 0xDEAD

When I want to set a breakpoint in the driver igxpmp32.sys itself before call VideoPortSetRegistryParameters(),
can I use the same method, changing at the exact place at the beginning of this call in the igxpmp32.sys to Hexvalues EB FE?
And will I been there at the exact place, where this function is called?
And can I check via this methode, which part of a driver is never reached, used from XP?
Dietmar

PS: Do you have an idea, why the string with value for "HardwareInformation.MemorySize"=hex: ..
was not written in the registry? May be because XP does not know, how big this Video memory is. If yes, where can I find this value?
#6103diderius6⇗ @dpps5387690

I dont know, how fit you are with computers.
At your place, I would install everything by myself.
The XP from zone62.com is a really nice thing.
But where is fun to reach all by yourself
Dietmar

This acpi.sys from outerspace )

⇗ https://ufile.io/dvr3flye
#6104ruthan⇗ @infuscomus  Is there some good driver installer for XP?
 I reinstalled quite few Nvidias drivers (during process it should be overwritten), i dunno if some old hidden devices could be problem, installed no Geforce experience bloatware and i tested that only Nvidia HDMI sound driver (is not blocking boot). my guess that problem is elsewhere in some WinXP memory or PAE memory management, which need to be patched, because safe is working fine, normal mode without Nvidia drivers too.. Without PAE patch (4GB) my MB has only 900 MB of RAM, so it is dead end. i had this error (Page_FAULT_IN_NONPAGED_AREA), on some machines, when old PAE Dibya patch was used and some driver was not compatible..
#6105infuscomus⇗ @ruthan

There is snappy driver installer, although I'm not sure if the latest version still works in XP though.

 

Page 408

#6106diderius6Yesssa, the nice methode EB FE from ⇗ @Mov AX, 0xDEAD at any point in the driver works!
Now I can really test the driver step by step(!) with all registers,
100% as the compi did.
A little bit crazy: First, XP changes the hacked EB FE driver igxpmp32.sys against original one.
Then I get endless loop, but the break happens at the driverentry point.
Then I continue from there with hitting p enter enter enter enter...
and I come to the place with jmp jmp jmp jmp..
as the photo shows.
And voila, this is the exact point, at (with via Ida Pro)
 .text:1001FD0D                                                 call            ds:VideoPortSetRegistryParameters
happens. There is a correspondens between the adresses
0xB8F1FD0D on compi.

Now, in princip XP is complete open for me, Source Code all in Assembler,
but no mystery has a chance now
Dietmar



#6107ruthan⇗ @infuscomus Its installer not uninstaller and its running even with Windows 2000.
#6108diderius6What I still do not understand is,
with which values now this function is called
Dietmar
VideoPortSetRegistryParameters(
PVOID HwDeviceExtension,
PWSTR ValueName,
PVOID ValueData,
ULONG ValueLength
);


HwDeviceExtension=89130358 (content of EDX via Source Code in Ida) as I can see with the Register View from Windbg
ValueName =??? offset aHardwareinform ; "HardwareInformation.MemorySize"
ValueData=87e1b734 (content of ECX via Source Code in Ida)
ValueLength= 4 via Ida source code, but no register contains 4, so is this value direct given without any register ???

PS: By the way I noticed, that on a second boot XP has changed some values at the same place(!), for example the
register ESI.
#6109Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6108
VideoPortSetRegistryParameters(
PVOID HwDeviceExtension,
PWSTR ValueName,
PVOID ValueData,
ULONG ValueLength
);


⇗ @diderius6

PVOID HwDeviceExtension=89130358 (content of EDX via Source Code in Ida) as I can see with the Register View from Windbg
PVOID - pointer to something, at 0x89130358 stored allocated HwDeviceExtension struct

PWSTR ValueName =??? offset aHardwareinform ; "HardwareInformation.MemorySize"
PWSTR - Pointer to null-terminated Unicode string, this pointer set to some adress inside *.sys because ida detected this string staticaly

PVOID ValueData=87e1b734 (content of ECX via Source Code in Ida)
PVOID - pointer to something, because length is 4 this mean pointer to simple type, in this case to ULONG, at 0x87e1b734 stored 4 bytes

ULONG ValueLength= 4 via Ida source code, but no register contains 4, so is this value direct given without any register ???
yes, for integer constants, compiler use "push 4", no regs
#6110Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6102
@Mov AX, 0xDEAD
PS: Do you have an idea, why the string with value for "HardwareInformation.MemorySize"=hex: ..
was not written in the registry? May be because XP does not know, how big this Video memory is. If yes, where can I find this value?

XP dont need to know, driver is responser for edit/write record in registry, it detect mem size by reading hardware chip and write raw size to registry
#6111diderius6⇗ @Mov AX, 0xDEAD

Thanks a lot.
Today was a nice day, because now I understand a lot more, how XP works.
And new chances for the Baytrail driver
Dietmar

PS: Interesting, that there are only adresses given. Because I wonder a lot, how complex information can be given in 4 Byte.
#6112diderius6⇗ @Mov AX, 0xDEAD

"it detect mem size by reading hardware chip"

Where is this information about GPU chip originally taken from
Dietmar
#6113Mov AX, 0xDEADHi All,

After review KDNET in Windows 10, i didn't found significal changes, win81<>win10 kdnet.dll convertor will be released soon

p.s. this tool not for end-users, but help to remote debug old winxp/2003 kernel stuff on MotherBoards with modern PCIe LAN Controllers
#6114Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6112
@Mov AX, 0xDEAD
"it detect mem size by reading hardware chip"
Where is this information about GPU chip originally taken from


⇗ @diderius6
from video chip itself, driver read some reg from chip, it knows which reg need to use, there is no standart regs for videochips (except VGA-compatible part)
videochip' hardware registers mapped to cpu' memory, this is how PCI MMIO works, cpu read from "logical" memory adress, but actualy read from pci device
#6115diderius6⇗ @Mov AX, 0xDEAD

Do you know, how I can just read the content of an given adddress (here for example 0x87e1b734 with windbg?
When this address is not touched during boot of XP,
a breakpoint there does not help
Dietmar
#6116diderius6⇗ @Mov AX, 0xDEAD

I tried !db 0x87e1b734

but this gives nonsense or at the end of boot process just 00 00 00 everywhere
Dietmar
#6117diderius6I found, how to see all of the content (and around also) of an given address via:

Just chose from Edit menu of Windbg "Go to Address" and then chose "Dissasembly".
So I find after starting from the breakpoint at the entrypoint of igxpmp32.sys
typing in the open Window from "Go to Address" 80b5d309 in "Dissasembly" Window
80b5d309 e840efecff                call    nt!PipProcessStartPhase2 (80a2c24e)
From this I know, that it is correct.

Now, until now I only do not know, how Windbg can show to me the content of any VARIABLE, from the address, where I set breakpoint via bp with Windbg.
Interesting would be also, to know the content of any variable at the address called with "Go to Address".
But because the compi is not at this address, it seems to be impossible
Dietmar
#6118ruthanHow to exactly install Kernel driver model 1.1 to existing installation? In readme just install it, but there is not installer, should i right click on inf file and install, or its there other way? Is needed for NVME drivers? There also some certificates in Integrator package for which drivers are these needed? What will not work without this update? Its unclear..
#6119diderius6⇗ @ruthan
You can take a look at the nice XP from zone62.com .
I think, that you can install everything from the installations folders on Setup CD
for Windows XP Professional SP3 x86 - Integral Edition 2020.9.9  also on a normal XP SP3 installation.
Just chose, which driver or program you want
Dietmar

PS: If you have a special question for a driver or a program, ask in the forum at zone62.com .
#6120ruthanI already have it installed on other partition, but im trying to keep working my old one and here some more info would nice..  If there are authors or users of that distro here, why not ask here?

It has for sure more value for most of users than some registry debug values, im getting lots of notification about it from this thread on email.. but im not saying, go to post it elsewhere.. because this one of advantages this forum, to be open.

 

Page 409

#6121diderius6⇗ @Mov AX, 0xDEAD

When I type dv for to see the content of all locale variables in commandline of Windbg,
I get message
0: kd> dv
Unable to enumerate locals, HRESULT 0x80004005
Private symbols (symbols.pri) are required for locals.
Type ".hh dbgerr005" for details.

This happens, because I do not have private symbols for the driver igxpmp32.sys, even not the public *.pdb.
Is there a way, to get the content of a local variable, when windbg breaks at an given address
Dietmar
#6122gordo999
Zitat von ⇗ blackwingcat im Beitrag ¶ #6097
Thus, I could enter kernel Debug mode on HAL.
But it seems to fail to initialize HalpMpInfoTable in HalInitSystem(it is dll Entrypoint)
Strangely, it seems to be called any functions in hal.dll before HalInitSystem.
@backwingcat ...Hal is called early in the boot process (by ntoskrnl???) to initialize Windows. That could mean the entry point for HalInitSystem is known at boot and may not be part of the Hal library that requires the dll EntryPoint.

Can you use a remote kernel debugging session and get it to break before Hal is called? I have not tried that.
#6123gordo999
Zitat von ⇗ gordo999 im Beitrag ¶ #6122
Zitat von ⇗ blackwingcat im Beitrag ¶ #6097
Thus, I could enter kernel Debug mode on HAL.
But it seems to fail to initialize HalpMpInfoTable in HalInitSystem(it is dll Entrypoint)
Strangely, it seems to be called any functions in hal.dll before HalInitSystem.
@backwingcat ...Hal is called early in the boot process (by ntoskrnl???) to initialize Windows. That could mean the entry point for HalInitSystem is known at boot and may not be part of the Hal library that requires the dll EntryPoint.

Can you use a remote kernel debugging session and get it to break before Hal is called? I have not tried that.



Look here...

⇗ http://pig.made-it.com/win-boot-test.html

also, check links at bottom of page.

ps. you may have to look up the links on the Wayback Machine.
#6124pappyN4⇗ @infuscomus
KeInitializeSpinLock imports fine from the x86 ntoskrnl.exe, however its does not look like its present in the x64 versions which is what i am trying to get working.  Looking at the code from react, if it calls KeInitializeSpinLock for x86 then it call it from ntkernalAPI, but if its for x64 then it just sets the SpinLock value to zero.  

if defined(_X86_) && (defined(_WDM_INCLUDED_) || defined(WIN9X_COMPAT_SPINLOCK))
NTKERNELAPI
VOID
NTAPI
KeInitializeSpinLock(
_Out_ PKSPIN_LOCK SpinLock);
#else
FORCEINLINE
VOID
KeInitializeSpinLock(_Out_ PKSPIN_LOCK SpinLock)
{
/* Clear the lock */
*SpinLock = 0;
}
#endif



It's been a long time since ive used C...   ⇗ @Mov AX, 0xDEAD  спрашивая желающий помогать? благодарю вас

Off topic:  I put several phrases through google translate, and every time i translated to Russian and back to English it turned a polite asking if someone is willing to take a look, help if they feel like, and google translate turns it into sounding like an order or demand.  google completely removed  the politeness.

Compiling with Server 2003 x64 free build environment:
-jumps to else statement, does not stay in AMD64,
-remove IF statement and have only #pragma....@KeInitializeSpinLock_k8, ERROR:Unresolved external symbol @KeInitializeSpinLock_k8

ntoskrnl_redirects.h

 
//                Windows XP/2003 x64                   //
#if (NTDDI_VERSION >= NTDDI_WS03) && defined(_AMD64_)

// KeInitializeSpinLock (FASTCALL) (4)
#define _KeInitializeSpinLock
#ifndef _AMD64_
#pragma comment (linker, "/export:KeInitializeSpinLock=@KeInitializeSpinLock_k8")
#else
#pragma comment (linker, "/export:KeInitializeSpinLock=ntoskrnl.KeInitializeSpinLock")
#endif



ntoskrn8.c

 
void FASTCALL
KeInitializeSpinLock_k8 ()
{
KSPIN_LOCK SpinLock;

SpinLock = 0;

}
#6125gordo999
Zitat von ⇗ pappyN4 im Beitrag ¶ #6124

Off topic:  I put several phrases through google translate, and every time i translated to Russian and back to English it turned a polite asking if someone is willing to take a look, help if they feel like, and google translate turns it into sounding like an order or demand.  google completely removed  the politeness.
⇗ @pappyN4 ...

I understand. Some phrases in English asking for help:

Could someone help me with this problem?

Is it same in Russian?

Может ли кто-нибудь помочь мне с этой проблемой?

More polite:

Could someone help me with this problem, please?

Может кто-нибудь помочь мне с этой проблемой, пожалуйста?
#6126gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6106
Then I continue from there with hitting p enter enter enter enter...
and I come to the place with jmp jmp jmp jmp..as the photo shows.
⇗ @diderius6 ...still don't understtand why you are using p-enter. The p enter jumps over entire function calls. I find it easier to use F10 instead of p-enter. I use F8 to single-step (t-enter). If you know where you are going and you are sure there is nothing important in each function call, then p-enter allows you to step through large amounts of code. However, if there is something important in one of those CALLs you will miss it.

One thing I have learned from years of reversing is that certain CALLs call into the kernel and the kernel can call back into your app at a different address. You can miss that using p-enter only. I have seen that in user mode where user32.dll calls back into the app before the app returns to user32.dll then back to the original location in the app code.

Using t-enter (F8) can be very tedious but you will learn tricks to bypass a lot of single-stepping.

You can use p-enter or F10 to trace but I prefer t-enter or F8 so that I won't accidentally jump over a CALL. As I approach a CALL I am often looking to see what is loaded in each register because some are related to the parameters required by the CALL. The registers can hold addresses of strings and where the strings might be moved. If you know the function, like memcpy, you can look up what is being loaded into the registers and passed on the stack.

Look here under 14)Stepping and Tracing. It does say p-enter can be used for tracing but I find it can be dangerous if you are not paying attention. If you make a mistake and single-step into a function CALL using T-enter (F8) there are windbg instructions to step back out, which means tracing all the way to the end of the CALL. Or, you can explore the CALL then jump over it.

⇗ http://windbg.info/doc/1-common-cmds.html
#6127gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6111
PS: Interesting, that there are only adresses given. Because I wonder a lot, how complex information can be given in 4 Byte.
⇗ @diderius6 ...4 bytes = 32 bits of data. You don't need to get complex information into 4 bytes, you can include an address that points to the complex information.

An address pointing to such information is called a pointer. In the code, if an address is contained in square brackets [....], it is an address pointing to information at that address. Or the address may be preceded by 'ptr' for pointer.

In memory, complex data can be stored in structures like arrays. The array is arranged sequentially in memory with the base address as the zero element. If I have an array at address 0x80004567, then the array data begins at that address. If code wants to reach that address it loads it in a register as pointer. If it wants to reach the n-1 element in the array it uses an address like [80004567 + n].
#6128blackwingcatWhen set break, Windows Installer shows it can't load bootvid.dll. :3

I found
HalpMpInfoTable
broken.

Broken table
FFFFFFFF`803AE100  01 00 00 02 00 00 00 00 00 00 00 00 01 10 00 02
FFFFFFFF`803AE110 04 08 00 00 00 00 00 00 01 00 00 02 00 00 00 00
FFFFFFFF`803AE120 00 00 00 00 01 08 00 01 B4 00 00 00 00 00 00 00
FFFFFFFF`803AE130 01 20 00 03 08 08 00 00 00 00 00 00 01 40 00 01
FFFFFFFF`803AE140 20 08 00 00 00 00 00 00 01 00 00 01 00 00 00 00

Correct table.
FFFFFFFF`803AE100  10 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00
FFFFFFFF`803AE110 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
FFFFFFFF`803AE120 00 00 E0 FE 00 40 D0 FF 00 50 D0 FF 00 00 00 00
FFFFFFFF`803AE130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
FFFFFFFF`803AE140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Zitat von ⇗ gordo999 im Beitrag ¶ #6122
Zitat von ⇗ blackwingcat im Beitrag ¶ #6097
Thus, I could enter kernel Debug mode on HAL.
But it seems to fail to initialize HalpMpInfoTable in HalInitSystem(it is dll Entrypoint)
Strangely, it seems to be called any functions in hal.dll before HalInitSystem.
@backwingcat ...Hal is called early in the boot process (by ntoskrnl???) to initialize Windows. That could mean the entry point for HalInitSystem is known at boot and may not be part of the Hal library that requires the dll EntryPoint.

Can you use a remote kernel debugging session and get it to break before Hal is called? I have not tried that.

#6129diderius6On the Lenovo x230 I can simulate exact the behavior from the J1900 Baytrail board,
when I change the magic numbers from 9 9 0C => 9 5 0E on the igxpmp32.sys driver
So, this is a big step forward
Dietmar
#6130diderius6⇗ @Mov AX, 0xDEAD
I have problem, to delete a breakpoint in windbg.
After hitting F9 and delete all Breakpoints, they are not gone.
My question is: Where are those breakpoints stored,
in real memory on the Target PC (the PC which I test)?
And how can I delete them there all?
Is it possible, that they stay in memory even after reboot?
Or are they stored at another place in windbg on the Host computer (where windbg runs)?
This seems to be a bug in windbg
Dietmar
#6131Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6130
@Mov AX, 0xDEAD
My question is: Where are those breakpoints stored,
in real memory on the Target PC (the PC which I test)?
Or are they stored at another place in windbg on the Host computer (where windbg runs)?


@Dietmar
Hi,
BPs stored on Target PC, in memory. if "bc *" don't works, this is bug, maybe restarting windbg can clear session data, i dont know...
#6132Mov AX, 0xDEADHi pappyN4,

Zitat von ⇗ pappyN4 im Beitrag ¶ #6124

Compiling with Server 2003 x64 free build environment:
-jumps to else statement, does not stay in AMD64,
-remove IF statement and have only #pragma....@KeInitializeSpinLock_k8, ERROR:Unresolved external symbol @KeInitializeSpinLock_k8

ntoskrnl_redirects.h  
//                Windows XP/2003 x64                   //
#if (NTDDI_VERSION >= NTDDI_WS03) && defined(_AMD64_)

// KeInitializeSpinLock (FASTCALL) (4)
#define _KeInitializeSpinLock
#ifndef _AMD64_
#pragma comment (linker, "/export:KeInitializeSpinLock=@KeInitializeSpinLock_k8")
#else
#pragma comment (linker, "/export:KeInitializeSpinLock=ntoskrnl.KeInitializeSpinLock")
#endif




1) reduced variant:
#define _KeInitializeSpinLock
#pragma comment (linker, "/export:KeInitializeSpinLock=KeInitializeSpinLock_k8")


2)
change in "default redirect" section:
#pragma comment (linker, "/export:KeInitializeSpinLock=ntoskrnl.KeInitializeSpinLock")
to:
#ifndef _KeInitializeSpinLock
#pragma comment (linker, "/export:KeInitializeSpinLock=ntoskrnl.KeInitializeSpinLock")
#endif

for x32 block "1)" will never compiled because parent "#if (NTDDI_VERSION >= NTDDI_WS03) && defined(_AMD64_) ", _KeInitializeSpinLock will not defined and export will be "/export:KeInitializeSpinLock=ntoskrnl.KeInitializeSpinLock"

for x64 block "1)" set export as "/export:KeInitializeSpinLock=KeInitializeSpinLock_k8", define _KeInitializeSpinLock, skip block "2)"


Zitat

 
void FASTCALL
KeInitializeSpinLock_k8 ()
{
KSPIN_LOCK SpinLock;

SpinLock = 0;

}




No args, must be:
void
FASTCALL (are you sure ??)
KeInitializeSpinLock_k8( KSPIN_LOCK* SpinLock)
{
*SpinLock = 0;
}

#6133diderius6⇗ @Mov AX, 0xDEAD

This is an interesting aspect:
Even after new install of XP, new install of Windbg, reboot few times,
the breakpoints are still at their places in memory of the Target pc.
Hm, this means, you can put information there without any notice
Dietmar

PS: I doublecheck this: Via old windbg version on COM1 port and via windbg from win8.1.
Both show the same breakpoints in memory, surviving there in a crazy way, like on a harddisk..
#6134Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6121
0: kd> dv
Unable to enumerate locals, HRESULT 0x80004005
Private symbols (symbols.pri) are required for locals.
Is there a way, to get the content of a local variable, when windbg breaks at an given address


⇗ @diderius6
windbg is too oldschool with ugly GUI, I recommend change debugger to IDA (dont sure about windbg plugin in IDA FREE 5.0 or 7.0 versions)
IDA show [ebp-xxx] as local variable on stack without any symbols requirement (but name is undefined, like var_xxx)
#6135daniel_k⇗ @diderius6

Did you take a look at the changes in the Kaby Lake driver modded to support Coffee Lake graphics?

 

Page 410

#6136diderius6⇗ @daniel_k

Yes, I check there everything and understand most.
They do not change the magic numers, only DEV numbers and entries in *.inf file, because each Kaby Lake device has a counterpart in Coffee Lake graphics.
Without the correct Magic Numbers, the graphic chip is not correct recogniced from XP.
This I found out today with test on the Lenovo x230 board with working DEV_0166 HD4000,
where I simple change the Magic Number from 9 9 0C => 9 5 0E
Dietmar
#6137diderius6⇗ @Mov AX, 0xDEAD
I have IDA pro 6.1.
There I found in "Debugger" "run" or "attach".
Which one should I use and which to put in the field of the connection string,
see photo,
thanks a lot
Dietmar

#6138diderius6⇗ @Mov AX, 0xDEAD

Can I delete the "CC" for break with code "90" by hand in memory using windbg
Dietmar
#6139infuscomus⇗ @pappyN4

Zitat

Dependency Walker shows one issue, ntoskrn8.sys trying to get KeInitializeSpinLock from ntoskrnl.exe but is not finding it. Tried with ntoskrnl.exe from SP1 (5.2.3790.1830), SP2 (5.2.3790.3959), and latest (5.2.3790.5583).



I missed this earlier, So I looked into it and I think KeInitializeSpinLock should be omitted from the 64-bit version of ntoskrnl extender since it seems it does not exist for 64-bit versions of ntoskrnl.

⇗ @Mov AX, 0xDEAD
can you update ntoskrnl extender on github to reflect this?

#6140Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6137
@Mov AX, 0xDEAD
I have IDA pro 6.1.
There I found in "Debugger" "run" or "attach".
Which one should I use and which to put in the field of the connection string,


⇗ @diderius6
⇗ https://www.hex-rays.com/wp-content/uplo...ging_windbg.pdf
read kernel part....
#6141Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #6139
@pappyN4
Zitat

Dependency Walker shows one issue, ntoskrn8.sys trying to get KeInitializeSpinLock from ntoskrnl.exe but is not finding it. Tried with ntoskrnl.exe from SP1 (5.2.3790.1830), SP2 (5.2.3790.3959), and latest (5.2.3790.5583).


I missed this earlier, So I looked into it and I think KeInitializeSpinLock should be omitted from the 64-bit version of ntoskrnl extender since it seems it does not exist for 64-bit versions of ntoskrnl.
@Mov AX, 0xDEAD
can you update ntoskrnl extender on github to reflect this?


Hi All, thank for feedback !

I will update extender to exclude KeInitializeSpinLock from x64 compiling
But be carefully - i never tested x64 extender in real :), i've done x64 part just to be "compilable", for example it may have errors in reverse-engineered structs

#6142Mov AX, 0xDEADKDNET project updated on github, now it support lan debug drivers from Windows 10 !

windows 8.1 supported chipsets - ⇗ https://docs.microsoft.com/en-us/windows...-in-windows-8-1

versus

windows 10 supported chipsets - ⇗ https://docs.microsoft.com/en-us/windows...g-in-windows-10
#6143diderius6IDA pro winddbg
Seems not to work with XP as host and xp as target

LoadLibrary(C:\IDA61\plugins\python.p64) error: Das angegebene Modul wurde nicht gefunden.
C:\IDA61\plugins\python.p64: can't load file

Dietmar
#6144Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6143
IDA pro winddbg
LoadLibrary(C:\IDA61\plugins\python.p64) error: Das angegebene Modul wurde nicht gefunden.
C:\IDA61\plugins\python.p64: can't load file


ida try to load x64 dll, too strange...
for debugging no need python, ignore this warning
del-12YuriyCN
Уход времени "вперёд" на современных ПК под Windows XP


При использовании Windows XP на современных материнских платах обнаружился досадный глюк - системное время уходит вперёд, причем степень ухода зависит от активности работы ПК и может набегать до 5 минут в день. Проблема проявляется только в Windows XP. На выключенном ПК, под UEFI/BIOS или в современной ОС - время идет правильно. Хотя часовая микросхема RTC должна быть независимой частью, но на современных материнских платах это не так. Видимо UEFI продолжает взаимодействовать с установленной Windows XP и как-то влияет на ход часов. Исследование показало, что уход часов "вперед" происходит при постоянном переключении периода системного таймера 16 мс в 1 мс и обратно. В Windows XP (по умолчанию) этот таймер работает с периодом 16 мс и если на ПК не проявлять активности - то он продолжит работать с периодом 16 мс. Но при запуске Хрома или мультимедиа приложений, таймер переключается в режим работы с периодом 1 мс и может возвращаться на 16 мс. При жестко установленном периоде 16 мс (или 1 мс) время идет точно, но при постоянном переключении таймера 16 мс - 1 мс - 16 мс - 1 мс происходит сбой в работе часов реального времени RTC.

Решение проблемы:
Поскольку специалисты с Win-Raid не смогли разобраться с причиной данной проблемы, то "красивого" решения (на уровне патча системных файлов) по состоянию на 3 января 2021 года ещё не появилось. Имеющиеся правленые файлы hal.dll и intelppm.sys решают какую-то другую проблему с таймерами, но на описанный глюк не влияют. Сейчас мы имеем "костыльное" решение - программа Timer_Fix с исходным кодом, написанная на Visual Studio 6.0. Программа не имеет интерфейса, после запуска она переведет системный таймер на период 1 мс и оставит его неизменным. Программа постоянно висит в процессах до перезагрузки ОС. Для завершения работы (в случае необходимости) нужно просто прибить процесс Timer_Fix.exe через "Диспетчер задач". Для удобства лучше положить Timer_Fix.exe в "Автозагрузку" и напрочь забыть о проблеме с уходом времени. Каких-либо косяков от использования данного метода не обнаружено. В целом, данный фикс можно считать "костыльным", но ничего лучшего на данный момент нет.

Состав архива:
Clockres - программа для контроля периода системного таймера
CPU-Z - в закладке About, кнопка Timers можно контроллировать частоты системных таймеров
Neutron 1.07 - удобная программа для контроля и синхронизации времени через интернет
Timer_Fix (с исходным кодом) - фикс проблемы с уходом времени вперед (устанавливает таймер на 1мс)
Timer_bug.png, Timer_bug_2.png - скриншоты с демонстрацией проблемы

Скачать - ⇗ https://www.upload.ee/files/12718339/Sof...l_Time.zip.html
или ⇗ https://yadi.sk/d/KpTGDPITsNWn7w

===========================================================================

Текстовый комплект методик по установке Windows ХР mod 2021 на современные ПК


Данный файл обязан быть у каждого ХР-ишечника. Народ читает какие-то бредовые форумы, хотя если прочитать данный TXT-файл - вы найдете ответ на 95% вопросов и позволит использовать Windows XP на ПК 2014-2021 года сборки. В текстовой методике собрана вся информация известная на данный момент - модернизированные драйвера (USB3.0, AHCI SATA, ACPI, NVMe, GPT, PAEfix), твики, патчи, готовые сборки.

Версия методики от 03.01.2021г.
ТХТ файл (74 кБ) - ⇗ https://yadi.sk/d/ieXbEpruPa3DWg
#6145dpps5387690Hi ⇗ @diderius6 & ⇗ @infuscomus

I try the acpi 6666
Install winxp stuck 0x7E 0xC0000005 in IDE Mode

dpps5387690 has attached images to this post  ⇗ 0x7E.jpg
#6146diderius6⇗ @dpps5387690

I think because of this Bsod,
that your acpi.sys from outerspace ) is on reboot copied back to the original acpi.sys.
You can copy the acpi.sys from outerspace ) by hand into folder Windows\system32\drivers

Dietmar

PS: Do you try to install from original xp.iso?
#6147dpps5387690⇗ @diderius6

I use USB(grldr Tool),during install cause this problem(0x7E).

I will try the original xp.iso.

Thanks.
#6148kukonosau⇗ @diderius6
Hi! My congratulations again for create drivers acpi, SATA AHCI and so on for Windows XP SP3 x86. But how you have talent create drivers? Do you learning programs languages, for example, C++? Maybe, Python? How to be "scientist"? Sorry for my bad English. I speak in Russian. But I don't understand you. Maybe, you to talk me different literature for develop my skill programmer? Maybe, you are use IDA 7 Freeware? 2nd questions: do you working under Windows XP SP2 x64 today? Can you to send me all last drivers? More I interesting acpi after post #2202. Do you have another acpi for XP x64 today? I thanks you for your job! Job done! :)
#6149kukonosau⇗ @YuriyCN
Приветствую. Неоднократно видел Ваши сообщения на форуме. Вы и вправду тут единственный русскоговорящий? Ну, кроме меня)
#6150diderius6⇗ @kukonosau
Я работаю учителем математики и физики в средней школе. Windows XP - мое хобби.
Windows XP SP2 x64 is unstable on most newer hardware, as I noticed
Dietmar

 

Page 411

#6151kukonosau⇗ @diderius6
Do you speak in Russian?! Or you used translator? But you have last unstable drivers for XP x64? XP is my hobby also, this is my life! :)
#6152infuscomus⇗ @dpps5387690

I would recommend using Easy2boot to do XP installs, I've had no trouble with it.
#6153diderius6I make small joke:
I replace the original opcode at this place in Ram(!) via windbg with 90 90 and restart the compi about 10 times.
And voila, my changed opcode survives reboot in memory!
So, it is a mythos, that with switching off compi, all information is lost in Ram.
This is DDR3, 4 Gbyte on the Baytrail board
Dietmar
nt!KiIdleLoop+0x3a:
80ae3e0a 90 nop
1: kd>
nt!KiIdleLoop+0x3b:
80ae3e0b 90 nop

PS: The crazy breakpoint survives full new install of XP in ram.

EDIT: Now I think it is a crazy error in both versions of windbg,
because I change whole ram on the Baytrail J1900 board and both windbg versions show me still the 90 90 at their place in ram, brrr.. It means, that the whole windbg installation on my compi is crashed. Now I need to think, how to repair this.
Just install windbg does not help, it tested.
#6154diderius6⇗ @kukonosau
Я немного говорю по-русски :))
Dietmar
#6155kukonosau⇗ @diderius6
Вот это хорошо! Тогда я бы побольше хотел с Вами общаться насчёт Windows XP. Уж очень нравится мне эта операционная система. Жаль, для x64 нет сборника драйверов. Почему, интересно, она нестабильно работает с современными платами, а в играх FPS отличный показывает, даже лучше, чем x86? И почему на Intel работает, но не на Ryzen? На Ryzen случайный BSOD возникает. Я бы смирился с отключением сетевой карты Ethernet, но никак не с BSOD/crash randomally.
#6156kukonosau⇗ @diderius6
What is Dietmar? Translate in Russian, please.
#6157diderius6⇗ @kukonosau

I can read, speak and understand without any translator. To write in Russian is another thing.
But better to speak english here at the forum.
XP SP3 is the OS, that the US army is using still today.
And when you have a payed license (I think about 1200$ a month) for XP SP3 like the german Bundestag,
you get updates always for XP SP3 today
Dietmar
#6158kukonosau⇗ @diderius6
Okay. But I don't understand English. I have based level speaking. Why USA use XP SP3? This is faster OS, for their opinion? Bad that I haven't motherboard with socket AM3+. Последнее оборудование, поддерживаемое ХР, очень хотел бы! На борту имею GTX 960 лишь.
#6159kukonosau⇗ @diderius6
Probably, I mistaked that buyed equipment with AM4 Socket change AM3+. Price almost equal, but I had been full support OS Windows XP and Windows 7. Ideal be launch GTA V on Windows XP x64 and other modern games. Highest performance!!!
#6160gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6130
I have problem, to delete a breakpoint in windbg.
⇗ @diderius6 ...look under Edit menu for 'Breakpoints' window. You can disable, enable, or delete them there.
#6161gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6153
PS: The crazy breakpoint survives full new install of XP in ram.
diderius6 ...sounds like the 90 90 got written to disk. Don't know if windbg has that feature although some debuggers have that option. There's no way RAM can retain memory after being powered off unless there is some kind of battery backup or sleep/hibernate state active.
#6162diderius6⇗ @gordo999

After this operation, crazy things happen.
I install XP new on the Baytrail board,
I set up windbg on another harddisk, delete all paths for symbols
and set them new.
Now on the Baytrail board and (!) on the Lenovo x230 ALWAYS windbg breaks at always the same adresses,
very near to the place, where I set the 90 90.
They are still there.
This is really crazy. No breakpoint is set,
but windbg shows at this places cc int 3.
So, I am nearly sure, that for some crazy reasons those 2 breakpoints and the 90 90 are always set from fresh(!) installed windbg at the place in memory on this 2(!) compis
Dietmar

PS: The list for breakpoints is empty.

#6163gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6162
Now on the Baytrail board and (!) on the Lenovo x230 ALWAYS windbg breaks at always the same adresses,
very near to the place, where I set the 90 90.
⇗ @diderius6 ...from what I can see, windbg has broken on a debug breakpoint at 80AC37E0 and your disassembly address is at 80AC36C1. The INT 3 you see following that address are not breakpoints, they are filler bytes you find in some apps before a function.

What is bothering me is the cmp eax, 30203DB just before the series of INT 3 instructions. It may be garbage code. I used to see that in Softice when it first broke and when I hit t-enter for a single step, the code would change. Sometimes the disassembler get it wrong. Try a single-step (F8 or t-enter) to see if the code changes. As it stands, it should hit the INT 3 instruction, which makes no sense.
#6164diderius6The Windbg via COM1 does not work any longer, it just hangs, see photo.
Even I installed XP on the Baytrail compi new.
Strange as much as possible
Dietmar

#6165gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6164
The Windbg via COM1 does not work any longer, it just hangs, see photo.
Even I installed XP on the Baytrail compi new.
⇗ @diderius6 ...debugging can be a nightmare at times. Did you use a break instruction? Open Debug windows and click on Break (there is a key combo for it...I forget). Also, reboot the target computer. It seems to have connected OK. If not, try rebooting both computers.

 

Page 412

#6166diderius6⇗ @gordo999

Reboot of all compis does not help. Tomorrow I make on a brandnew harddisk an XP install new, where Windbg runs.
Somewhere must those crazy entries been stored. If I trust windbg, they are really in memory of the Baytrail and the Lenovo
x230 compi. Question is, how they come there and how to delete them there. It is like virus.

Just before the total crash of Windbg I make an interesting discovery:
Using the EB FE methode I find out, that in the driver 5449, where the Device ID DEV_0F31 for baytrail is mentioned,
the subroutine for DEV_0F31 is reached, but not the place, where the compare with DEV_0F31 happens.
Not the compare fails, the place is not reached. For the very first time I understand, why this driver does not work for Baytrail on XP,
but there is hope
Dietmar
#6167Outbreaker⇗ @YuriyCN
Do we have to run the "Timer_Fix.exe" file for every logged-in user? Or is it enough to run it as a SYSTEM file?
#6168diderius6⇗ @gordo999

You are right. When I type t (F8) now windbg shows complete other assembler orders than with p.
How to overcome this?
And the strange breakpoints are still shown and brake the same, even I install Windbg (from *.msi installer) and run windbg on a different compi(!), with Symbols, all new fetched only from
WINDOWSXP-KB936929-SP3-X86-DEBUG-SYMBOLS-FULL-ENU-DEBUG.EXE
Dietmar

PS: Not so much possibilities left, where those breakpoints come from. From lan net?!
#6169infuscomus⇗ @diderius6

I'm guessing windbg has the breakpoints cached somewhere, in appdata maybe?
#6170dpps5387690⇗ @diderius6 & ⇗ @infuscomus

I install winxp success.

Thanks.
#6171infuscomus⇗ @dpps5387690

you're welcome!
#6172diderius6⇗ @infuscomus

For now nearly exact 3 years I have not seen a single crash on my PC for daily use with XP SP3.
And from there I heavy use Windbg all the time also.
Something really strange is going on. Eventually it is not enough, to install XP new,
but needed before with Winhex a 00 00 00.. writing to the whole harddisk.
It is like virus
Dietmar
del-13YuriyCN
Zitat von ⇗ Outbreaker im Beitrag ¶ #6167
@YuriyCN
Do we have to run the "Timer_Fix.exe" file for every logged-in user? Or is it enough to run it as a SYSTEM file?


Если в WinХР несколько пользователей
Я работаю только под одним пользователем - Администратор, других пользователей не использую, даже учетная запись Гость - отключена.. Соответственно, Timer_Fix.exe достаточно запустить 1 раз. Если вы используете несколько пользователей одновременно - то проверьте с помощью программы Clockres, чтобы период системного таймера был постоянным и равным 1 мс для всех пользователей.

А вообще, нужно взять за основу исходники Timer_Fix и написать программу, которая наоборот, специально переключает системный таймер 1 мс / 16 мс например каждые 10 секунд. Тогда данной программой можно вызывать ошибку с RTC и накручивать время. Возможно тогда это привлечет внимание реверс инженеров и они решат данную проблему "красиво" - на уровне патча системных файлов.
#6173diderius6I set up 2 compis with original XP SP3 from CD.
After I start debug via lan on them, again the same breakpoint happens.
So, the only possibility is, that this happens over lan,
because all compis are in the same net.
Exact like Virus
Dietmar

EDIT: For not to get crazy, I boot without any lan and connected only direct with serial cable via COM1 port those 2 computers.
Now, Windbg works normal, no Break at all (both versions 6.12 of Windbg and 6.3.6900 from win 8.1).
Still crazy, what is going on. It seems, that Windbg stores the IP numbers of the via lan connected compis,
and then send to all of them this crazy Break command.

EDIT2: I connect the Lenovo x230 notebook and the baytrail J1900 board, both with XP SP3 via lan cable direct.
Hm, again I get Breakpoint at 80ac37e0 for the board J1900 and vice versa Host<=>Target also(!).
Where can this information been stored?

Ok, next try: Now again I install XP SP3 from original CD on the Lenovo x230 notebook and the same for the baytrail J1900 board. In the very first beginning before XP install I wipe the harddisks out on both compis with 00 everywhere.

No connection to my lan home net or internet at all. Only connection via direct Lan cable at the end.
If then again this Breakpoint 80ac37e0 will be shown, this information must stay in Ram or in Bios or??
I disable before connection via direct lan cable the pagefile.
Then I will report.
#6174diderius6Waaaooh,
even I make EVERYTHING on both compis (Lenovo x230 and Baytrail J1900) new (XP SP3 original)
no contact to Internet, no contact to my Home lan,
when the Baytrail J1900 is debugged via 8.1 debugger,
with direct Lan cable connection,
it shows the same BREAK as before.
So, it is somewhere stored on this compi, what a crazy result,
because I wiped both harddisks out with 00 everywhere, checked this and they have no contact to any other compi,
brandnew original installation with this result. Pagefile I disabled and checked non existance of pagefile.sys on both compis before I connect them direct via Lan cable.
Dietmar

EDIT: On this Baytrail board I flashed the Bios new with the nice DSDT from ⇗ @infuscomus .
I will flash it again and take a look again. If then the same Break happens, it is not stored in Bios.
I also make a test with the free ntoskrnl.exe on the Baytrail board. Same result but little bit other place, where it brakes.

Microsoft (R) Windows Debugger Version 6.3.9600.17200 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Using NET for debugging
Opened WinSock 2.0
Waiting to reconnect...
Connected to target 169.254.211.181 on port 50000 on local IP 169.254.63.4.
Connected to Windows XP 2600 x86 compatible target at (Mon Jan 4 18:10:02.343 2021 (UTC + 1:00)), ptr64 FALSE
Kernel Debugger connection established.

************* Symbol Path validation summary **************
Response Time (ms) Location
OK C:\WINDOWS\Symbols
Symbol search path is: C:\WINDOWS\Symbols
Executable search path is:
Windows XP Kernel Version 2600 MP (1 procs) Checked x86 compatible
Built by: 2600.xpsp.080413-2133
Machine Name:
Kernel base = 0x80a02000 PsLoadedModuleList = 0x80b019e8
System Uptime: not available
Break instruction exception - code 80000003 (first chance)
nt!DbgBreakPoint:
80ac37e0 cc int 3


EDIT: I flash Bios new, doublecheck that Bioschip has to 100% the same content as on 16 December (complete, everything, whole Bios chip),
but the break remains exact as before.
So, windbg found a way to store something not on harddisk, not in Bios, hm, where else??
Last idea from me was to clear Cmos, result same breakpoint.
And my lastlast idea: I change the DD3 ram against one, that I havent used for 2 years, but still same Breakpoint.
#6175infuscomus⇗ @diderius6

do you get the same result with the windows 10 debugger?
#6176diderius6⇗ @infuscomus
Where do I find the win10 debugger?
And can it work like the 8.1 windbg with XP SP3?
Dietmar
#6177infuscomus⇗ @diderius6

It's part of the Windows 10 SDK (you can install just the Debugger Tools)
#6178diderius6⇗ @infuscomus
Thanks, I am just downloading.
I set a breakpoint at this address, where the compi always break.
Then I delete this breakpoint.
On next reboot break again at the same point.
I try to overwrite the hexcode for cc at this address.
Debugger shows, that code has changed.
On next reboot break at the same place again,
brrr..
windbg found a hidden place on compi: Not harddisk, not Bios, not Cmos, not Ram. Some other places on Compi where to store information for Break?
Dietmar
#6179infuscomus⇗ @diderius6

There is no left over junk in AppData or in Windows\Temp?
#6180diderius6⇗ @infuscomus

No, I delete on known places all to 100% and set XP up fresh from original CD on Target and Host pc.
No connection to anything.
This simple means, that we (I) do not understand, how a compi under XP works. There are hidden places for to store something
on the mainboard.
I noticed some strange things before:
When I go in last summer to Ukraine,
after the scanner on Airport the SSD (with XP) and the mssd (with Win10) show errors.
Rosetta Stone program was damaged.
I have a very good USB stick from Kingston, which works as harddisk.
On this I put an USB bootable image of this XP installation before.
Just like intuition, that ssds, nvme are bad at all.
This image is still ok, survives scanner at Airport.
With XP on harddisk I never got a problem for years with scanners at airport.
This is future..
Dietmar

 

Page 413

#6181infuscomus⇗ @diderius6

maybe try windows 8.1/10 as host PC?
#6182diderius6⇗ @infuscomus

May be, that newer Windbg work better.
But the discovery is really serious in my eyes.
Information can be stored on this motherboard without known place.
I got a second, brandnew motherboard, exact the same build year, brand,
as the first Asrock Q1900M.
This I never connected to a power source until now.
May be, that I can found out, where other places are on this motherboard for to store information
Dietmar

EDIT: I have a Kangaroo USB stick, which can be set write protect.
With EWF filter on a Fat32 partition(NTFS not works, because XP writes during boottime there) it is possible,
to start XP complete write protected.
I will install on the second J1900 board a new XP, and then copy it to the write protect stick.
I think, Windbg will work from there also.

del-14YuriyCN

>>Добавление команды /usepmtimer на глюк со временем не влияет.

Привет, вот описание ключа:

/USEPMTIMER  параметр указывает на то, что операционные системы Windows XP и Windows Server 2003 используют параметры таймера PM-TIMER, а не параметры счетчика отметок времени, если процессор поддерживает параметры таймера PM_TIMER. Проблема возникает на компьютерах с включенной технологией AMD Cool'n'Quiet в BIOS.
Многоядерные или многопроцессорные системы могут столкнуться с смещением счетчика отметки времени (TSC), когда время между различными ядрами не синхронизируется.[/QUOTE]

Спасибо. Я уже опробовал. Эта команда не помогает.

У меня не АМД, а Интел процессор. Да и вообще глюк - это происки современного, слишком умного UEFI.... Вряд ли разработчики ВинХП в 2001 году знали, что появятся такие модные материнки, с такими умными UEFI, чтобы заложить эту команду.

Из того, что проверил и оно не помогает.
1) включение/отключение HPET таймера в BIOS|UEFI
2) включение/отключение режимов энергосбережения процессора в BIOS|UEFI (у меня Intel i5-6500, 4@3,2ГГц)
с названиями C7 State, С0/1 State и других - всего 6 режимов.
3) команда /USEPMTIMER  в boot.ini
4) правленые файлы hal.dll и intelppm.sys с win-raid

Из того, что помогает.
1) Использование Timer_Fix.exe

#6183gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6168
PS: Not so much possibilities left, where those breakpoints come from. From lan net?!
⇗ @diderius6 ...Dietmar...it's not clear to me which breakpoints you mean. In the screen shot you posted I could not see any breakpoints that were abnormal. Can you give more information?

With regard to RAM, it is not possible for it to retain memory between boots unless the individual cells in the memory card are damaged. I am referring to a hard boot, one in which Sleep or Hibernate is not maintaining the data in RAM. Even then (after hard reboot), the memory data affected would change from boot to boot. It's highly unlikely that the same driver would occupy the same physical memory cells in RAM.

For example, I am working on an app that loads at a different RAM base address each time I boot. Right after starting an app in windbg, if you enter !peb in the command line windbg will show the PEB, which lists information about the loaded module. It shows the base address as something like 00000001 3FEB0000 for 64 bit. I have left a space between the 00000001 and the 3FEB0000 for clarity. Next time I load the app in windbg, it will show something like 00000001 E0070000 for the same app. There is a big difference in memory location between 3FEB0000 and E0070000.

BTW, once you locate the base address using !peb, you can enter !dh 00000001E0070000 and it will give you the entry point into the appllication/module. In my case the entry point is 144C, meaning it is located at offset 0x144C from the base address. I can now enter BP 00000001E007144C and windbg will stop at at the apps entry point after I hit G. That saves using the other trick that forces the processor to freeze at the point you inserted it.

Actually, the entry offset for any app is located in the PE header. There are tools like LordPE that will lay out the PE header for you.
#6184diderius6⇗ @gordo999

The problem is deeper. Why happens there a Break without any instruction always at the same place?
I set up complete new Host and target PC, with NO connection to world outside. And this Break remains always.
Not the Break is the problem, the problem is, that this Break is instructed from a strange, unknown place on the mainboard,
not Bios, not CMOS, not harddisk, not Ram
Dietmar
#6185ruthan⇗ @diderius6
If is on board, longer batter removal could help, older bioses have something caaled NAND or CMOS clear option, but new ones has nothing like that and for some example some data as memory stick first training results etc, has to be saved somewhere. Maybe only part of ROM is writable from bios upgraded. Also some board have dual bios, but not afaik 2 special chips, so there could be some other memory areas.

But i would also bet my money on remote pc from which you are making connection.. that it has some session and which connection data are these thing reapplied. I dont follow every your post and details, maybe you already excluded it.
#6186diderius6"In this case windbg is using Base+Kernel+x86 workspaces."
Where is this workspace located,
on the CPU itself? Is there a piece of memory,
where windbg can store information permanent?

Dietmar

PS: May be there is a flag, that Windbg can permanently set on a  cpu register for a breakpoint, who knows..
#6187iyutosGentlemen, I know that among you there are renown experts in Assembler and Windows internals.  
Perhaps when somebody will have free minutes, can you please take a look to a *problem of video-acceleration* in Windows 7 with classic theme?
I know that this forum is about WinXP/2k, I posting it as odd exception.

⇗ https://github.com/MovAX0xDEAD/NTOSKRNL_Emu/issues/4
#6188infuscomus⇗ @diderius6

This was posted on 4chan

Zitat

Someone with account there should tell him there is a bug in Intel iAMT debug engine which actually has the ability to fuck the computer storing things like breakpoints in its flash portion of the ROM, if you write to certain directions under certain circustances. It comes from the built in AMT debug/jtag like feature.

#6189iyutosIf indeed Intel iAMT debug engine is involved here, this debugging of graphic drivers becomes real hardcore.
Few sentences out of context: "The second option enables the use of hardware breakpoints rather than software breakpoints. The hardware breakpoints employ CPU debugging facilitiesnamely, debugging registers dr0 through dr7whereas implementing software breakpoints usually involves executing the int3 instruction. In the context of malware debugging, this means hardware breakpoints are more resilient and more difficult to detect".


****************Intel System Debugger - User and Reference Guide:*************

The debugger can use both hardware and software breakpoints, each of these has strengths and weaknesses:

*Hardware Breakpoints* are implemented using the DRx architectural breakpoint registers described in the Intel® 64 and IA-32 Architectures Software Developer Manuals. They have the advantage of being USABLE DIRECTLY AT RESET, BEING NON-VOLATILE, and being usable with flash or other read-only memory. The downside is that they are a finite resource.
*Software Breakpoints* require modifying system memory as they are implemented by replacing the opcode at the desired location with a special instruction. This makes them an unlimited resource, but the memory dependency mean you cannot install them prior to a module being loaded in memory, and if the target software overwrites that memory then they will become invalid.

<...> SMM Entry/exit disables/re-enables breakpoints. <...> Alternatively, you can patch the BIOS to re-enable breakpoints when entering SMM, but this requires the ability to modify the BIOS.

See also:  ⇗ https://en.wikipedia.org/wiki/X86_debug_register
⇗ https://www.codeproject.com/Articles/280...reakpoints-prog
#6190iyutosIt seems to me that Windbg stores values in six debug registers, Intel ME is not involved
#6191diderius6⇗ @infuscomus

Can you give me the link for this article?
I read, that someone has the same problems with Windbg,
that he was unable to delete Breakpoints but no explanation for this.
A comment about this was just to delete whole registry entry
under HCU\software\Microsoft\windbg .
There the "workspace" from windbg is "stored".
This cant be true in my case, because registry on new XP SP3 setup on Host and Target compis never heard anything about windbg.
There must be a place on the motherboard,
where this information is stored. And it is not only a flag,
because the full address(es), where the Break(s) should happen must be stored also
Dietmar

PS: Now I set up a fresh original XP SP3 on the brandnew Asrock Q1900M board (named board 2).
For this I use a brandnew harddisk and Ram DDR3 never used until now.
Before I save the whole Bios 1.80 from this board with very good EEpromer Revelprog IS.
Then I flash unmodded Bios 1.30 to it from its own Biosmenu.
Then I integrate nice DSDT from ⇗ @infuscomus into Bios 1.30 and flash with EEpromer, so that I can setup XP in IDE mode without crazy BSODs.
At the end I do not install any driver. Then I connect it to the old compi from 2005 from my parents via COM1 cable direct.
Until now, there is no Windbg on it.
And in the end I put this brandnew harddisk back to the Q1900M (board1), and change Ram from the Board2.
Look what happens.
This will be the ultimative prove, that there are other possibilities to store some information on an unknown place on this board Asrock Q1900M.
#6192diderius6"Beginning in 2005, Intel began including Active Management Technology in Ethernet controllers. This system is effectively a firewall and a tool used for provisioning laptops and desktops in a corporate environment. In 2008, a new coprocessor  the Management Engine  was added. This management engine is a processor connected to every peripheral in a system. The ME has complete access to all of a computers memory, network connections, and every peripheral connected to a computer. The ME runs when the computer is hibernating and can intercept TCP/IP traffic. Management Engine can be used to boot a computer over a network, install a new OS, and can disable a PC if it fails to check into a server at some predetermined interval. From a security standpoint, if you own the Management Engine, you own the computer and all data contained within."
Dietmar
del-15YuriyCN
Zitat von ⇗ iyutos im Beitrag ¶ #6187
Gentlemen, I know that among you there are renown experts in Assembler and Windows internals.  
Perhaps when somebody will have free minutes, can you please take a look to a *problem of video-acceleration* in Windows 7 with classic theme?
I know that this forum is about WinXP/2k, I posting it as odd exception.

⇗ https://github.com/MovAX0xDEAD/NTOSKRNL_Emu/issues/4




Очень медленная работа классического интерфейса Win7, привела к тому, что я отказался от использования Win7 в пользу WinXP. У данной проблемы 2 решения: использовать классическую тему в AERO-исполнении либо использовать патченый DWM.EXE.

Проблема довольно подробно описана здесь - ⇗ [Solution] Acceleration of GUI interface on the non-Aero themes of Windows 7
#6193diderius6Flash back to Bios 1.30 and placing nice modded DSDT from ⇗ @infuscomus on the Asrock Q1900m Board 2 is done.
After I reset CMOS, set IDE in Bios and enable USB3, nothing more.
Just now I am installing original XP SP3 with acpi.sys from outerspace ). No other driver, no connection to outer world.

Now happens the most most crazy ever:
I get the same (!) break on board 2 as before on board 1. Debug via COM1 port works, but is unstable.
This means: All the fresh XP SP3 installations give a break on any of the Asrock Q1900m boards!
Now I put an XP with all updates and also with the updates from Posready on this new harddsik.
Because I remember very good, that there has been a time without any breaks on board 1
Dietmar

EDIT: After I install an XP SP3 with newest updates, windbg via COM1 works very fast but still shows this crazy Break.
I disabled nearly all devices in Bios. After this, the free ntoskrnl.exe does not show a Break,
but the checked ntoskrnl.exe shows Break exact at the same place.
Now I use the working debugger, for to look a little deeper at this Break.
This place, where it happens is marked


Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Opened \\.\com1
Waiting to reconnect...
Connected to Windows XP 2600 x86 compatible target at (Tue Jan 5 21:51:49.703 2021 (UTC + 1:00)), ptr64 FALSE
Kernel Debugger connection established.
Symbol search path is: C:\WINDOWS\symbols
Executable search path is: C:\WINDOWS\symbols
Windows XP Kernel Version 2600 MP (1 procs) Checked x86 compatible
Built by: 2600.xpsp.080413-2133
Machine Name:
Kernel base = 0x80a02000 PsLoadedModuleList = 0x80b019e8
System Uptime: not available
Break instruction exception - code 80000003 (first chance)
nt!DbgBreakPoint:
80ac37e0 cc int 3
kd> !analyze -v
Connected to Windows XP 2600 x86 compatible target at (Tue Jan 5 21:52:05.875 2021 (UTC + 1:00)), ptr64 FALSE
Loading Kernel Symbols
.....................................
Loading User Symbols

*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

Unknown bugcheck code (0)
Unknown bugcheck description
Arguments:
Arg1: 00000000
Arg2: 00000000
Arg3: 00000000
Arg4: 00000000

Debugging Details:
------------------


FAULTING_IP:
nt!DbgBreakPoint+0
80ac37e0 cc int 3

EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 80ac37e0 (nt!DbgBreakPoint)
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 3
Parameter[0]: 00000000
Parameter[1]: 80124cdc
Parameter[2]: 80af5242

ERROR_CODE: (NTSTATUS) 0x80000003 - {AUSNAHME} Haltepunkt Im Quellprogramm wurde ein Haltepunkt erreicht.

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - Mindestens ein Argument ist ung ltig.

EXCEPTION_PARAMETER1: 00000000

EXCEPTION_PARAMETER2: 80124cdc

EXCEPTION_PARAMETER3: 80af5242

DEFAULT_BUCKET_ID: DRIVER_FAULT

BUGCHECK_STR: 0x0

LAST_CONTROL_TRANSFER: from 80123c39 to 80ac37e0

STACK_TEXT:
80af2340 80123c39 ffdff120 80af2368 80123dcb nt!DbgBreakPoint
80af234c 80123dcb 80084000 00000000 80afc980 HAL3!HalpGetParameters+0x91
80af2368 80d2ff9f 00000000 80084000 80afe260 HAL3!HalInitSystem+0x33
80af24f8 80d41cd4 00000000 80084000 8003fc00 nt!ExpInitializeExecutive+0x171
80af254c 80d3f6ec 80afe4c0 80afe260 80af2810 nt!KiInitializeKernel+0x568
00000000 00000000 00000000 00000000 00000000 nt!KiSystemStartup+0x2c4


STACK_COMMAND: kb

FOLLOWUP_IP:
nt!ExpInitializeExecutive+171
80d2ff9f 84c0 test al,al

SYMBOL_STACK_INDEX: 3

SYMBOL_NAME: nt!ExpInitializeExecutive+171

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: nt

IMAGE_NAME: ntkrpamp.exe

DEBUG_FLR_IMAGE_TIMESTAMP: 4802b3ce

FAILURE_BUCKET_ID: 0x0_nt!ExpInitializeExecutive+171

BUCKET_ID: 0x0_nt!ExpInitializeExecutive+171

Followup: MachineOwner
---------

#6194diderius6I found this place for Break in the debug version of ntoskrnl.exe.

After
call   HalInitSystem 
test al, al

and when this is zero,
compi jumps to Breakpoint.
Crazy, because I changed nothing..
Before I never had this Break.
I try to hack the degug ntoskrnl.exe
but then comes message, that ntoskrnl is damaged.
So it seems to have something like Signed in it,
checksum is correct.
May be someone here can tell me or just do,
how to overcome for hacked ntoskrnl this message,
here is the file from my modded ntoskrnl.exe
Dietmar

⇗ https://ufile.io/2klom64c
#6195gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6193
FAULTING_IP: 
nt!DbgBreakPoint+0
80ac37e0 cc int 3

⇗ @diderius6 ...confused as to the problem you are having. The code above is normal for windbg, it always break at that point, nt!DbgBreakPoint in ntdll!LdrDODebuggerBreak. I just opened an app and that's where it stops. My address is different than your because I am using Windows 7 version of ntdll.dll.

In the windbg debug window, the main window, it says:
(1640:1218): Break instruction exception - code 80000003 (first chance)
ntdll!LdrpDoDebuggerBreak+0x30
00000000'77cf6c50 cc int 3
That code is the loader that loads apps into memory for windbg. If it did not stop there, the app would run to completion. It stops there to allow you to make adjustments and to tell windbg where you'd like it to stop.

 

Page 414

#6196diderius6⇗ @gordo999

When you want to set a breakpoint there, it is normal.
But here happens something strange.
After Break the debugger gets crazy, only in few times it shows the line with kd>.
This all did not happen before.
I also find the errorplace in ntoskrnl, something does not match in hall.dll, this test al, al
shows this.
As I said, nothing at all of this happens before,
I do not know what changed
Dietmar
#6197diderius6When I use the debug hal.dll, modded for the timer error, and ntoskrnl.exe debug version,
the break still happens at the same place, but after that break I can work normal with Windbg
Dietmar

PS: After hitting g,
windbg shows me now a lot of lines, which do not appear at all before.
#6198diderius6Next try on the Q1900m board 1, with 4 Gb ram.
I setup with original XP SP3 CD in IDE mode, only acpi.sys from outerspace ) on it.
Before setup I disable nearly everything in Bios.
After setup I change intelppm.sys and hal.dll on the harddisk (against the power states and timer problems),
because I noticed, that windbg hangs without them, may be only timermodded hal.dll needed on Baytrail(!) board.
With the normal free ntoskrnl.exe now no Break happens with Windbg via COM1 cable, connected to the old compi from my parents. Was a hard job, to get on this old compi Windbg vers. 6.12 to run. It is only in the win7 SDK 7.1 and it needs Framework 4.0, full install.
Then I change free ntoskrnl.exe against checked ntoskrnl.exe and the free, timermodded hal.dll against the checked, timermodded hal.dll and rename them to ntos3.exe and hal3.dll.
I thought, that may be the /BREAK command in boot.ini can let the compi with checked files break
at always the same address 80ac37e0. But this also does not help. So, still break from nowhere at 80ac37e0.
Ok, crazy things are going on:
After hitting g on the kd> line, compi starts without any other breaks and very few lines in Window from Windbg.
Then I install the Intel HD driver version 5449, unmodded only in its *.inf I change 0152=>0F31, then I use the setup.exe
for the HD driver. No error message. But some entries in registry under Services\ialm are missed or not NULL Terminated, for example for maxmem.
But the driver still does not work (Code 10), but this is only for humans, says nothing about why.
I check with nice EB FE command the driverentry point. It is also always the same, 0x80ac37ec.
Now the compi runs endless and a look at the register EIP shows 0x80ac37ec as usual.
But now things changed: It is impossible to set a breakpoint with bp or bu at this adress.
You can set the breakpoint, but the compi does not stop. A look with bl tells always, breakpoint at 0x80ac37ec.
Now I try next: After crazy break again at 80ac37e0, I type in kd>bp igxpmp32!DriverEntry .
Strange message appears: expression 'bp igxpmp32!DriverEntry' could not be resolved. adding deferred bp
Ok, I hit g
Then Message appears *** ERROR: Module load completed but symbols could not be loaded for igxpmp32.sys
Breakpoint 0's offset expression evaluation failed.

But the compi stops at the DriverEntry point of igxpmp32.sys .
Before, I cant use g, p or t from this place. But crazy things going on, now I can.
But Windbg is in an endless loop at next adress pop ebp.
And always breaks after this message.
Now I just type in kd>bc *
which deletes all Breakpoints.
And voila, now I can use g, p, t for to trace the driver igxpmp32.sys .
Because from loong work before I know, that the shown HEX orders are correct.

Ok, why it is impossible to set a working breakpoint at the DriverEntry?
The DriverEntry 0x80ac37ec
is very near to the crazy break from nowhere at 80ac37e0 .
I thought, that this may be too short time for BREAK at 0x80ac37ec.
So I set down the speed for Debug via COM cable from 115200=>9600.
But this does not help
Dietmar

PS: But via method at wished places Breakpoint force with EB FE works.
So, testing what is going on, can continue.

Here is the content of my boot.ini on the Target PC Baytrail Asrock Q1900m board 1.

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=COM1 /baudrate=115200
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP SP3 DEBUG" /noexecute=optin /fastdetect /KERNEL=ntos3.exe /HAL=hal3.dll /debug /debugport=COM1 /baudrate=115200 /BREAK
C:\WINDOWS="KDNET" /noexecute=optin /fastdetect /KERNEL=ntos3.exe /HAL=hal3.dll /DEBUG /DEBUGPORT=NET /HOST_IP=192.168.2.101 /HOST_PORT=50000 /ENCRYPTION_KEY=1.2.3.4 /CPUFREQ=3000 /TARGET_IP=192.168.2.104
C:\WINDOWS="KDNET_Brk" /noexecute=optin /fastdetect /KERNEL=ntos3.exe /HAL=hal3.dll /DEBUG /DEBUGPORT=NET /HOST_IP=192.168.2.101 /HOST_PORT=50000 /ENCRYPTION_KEY=1.2.3.4 /CPUFREQ=3000 /TARGET_IP=192.168.2.104 /BREAK
#6199diderius6⇗ http://read.pudn.com/downloads182/ebook/...nternals(2).pdf

Nice, there I found, that indeed the timer is involved in HalInitSystem
Dietmar
#6200diderius6I found with the nice EB FE methode via Windbg the exact place in the Hex code of the igxpmp32.sys, where this driver fails.
In version 5449, where the Baytrail driver with DEV_0F31 is mentioned,
this condition jnz is never met. So, the driver settings to DEV_0F31 is overjumped always
Before this place, compi reaches all, I tested
Dietmar

cmp     dword ptr [edx+1FCh], 0Eh

gives not ZERO as needed for Baytrail via its Magic Numbers 9 5 0Eh


#6201diderius6"Hardware Breakpoints
Within most CPUs there are special debug registers that can be used to store the addresses of breakpoints and specific conditions on which the breakpoint should triggered (e.g. read, write, execute). Breakpoints stored here are called hardware (or processor) breakpoints. There is a very finite number of registers (usually 4) which limits the number of total hardware breakpoints that can be set. When the CPU reaches a memory address defined within the debug register and the access conditions are met, the program will pause execution.

Hardware breakpoints are set within WinDBG using the ba (Break on Access) command. In its most basic usage, it takes 3 attributes:

0:001> ba e 1 00453689



This command would (we'll see soon why it doesn't) accomplish the same thing as the previous bp example, however now we're setting a hardware breakpoint. The first argument, e, is the type of memory access to break on (execute), while the second is the size (always 1 for execute access). The final is the address."

Tomorrow I will test

ba e 1 80ac37ec

Dietmar
#6202gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6196
When you want to set a breakpoint there, it is normal.
⇗ @diderius6 ...It has nothing to do with the user, windbg sets that BP as a matter of its normal operation. Without the BP, the app would not stop while being loaded and would run to completion.

Part of my confusion is related to how you are working with the driver. With a normal executable, when you load it from the File menu, it is loaded by windbg and stops at the debug point we are talking about. I was not aware that you can load a driver in the same way since it does not have to be executed. A driver is loaded in memory and accessed by the system via calls (interrupts) from external hardware. However, I realize you are having trouble getting the driver to load.

I suggest you look at that specific application of windbg to debugging drivers.

Your windbg installation may be corrupt. You could start by deleting the current workspace and starting fresh. If that doesn't work, then delete everything related to windbg and install a fresh copy.

With regard to windbg not allowing the kd> prompt, it does that when it is busy, or when it does not have a proper connection to the target. In fact, the kernel is responsible for loading kdcom.dll, which interprets and controls the flow of serial data to and from the computer. It is loaded at boot time by ntoskrnl at the same time Hal is loaded and the video driver. A problem in communications between ntoskrnl and kdcom.dll could mess up your windbg session.

Zitat von ⇗ diderius6 im Beitrag ¶ #6196
As I said, nothing at all of this happens before,
I do not know what changed Dietmar
Welcome to the crazy world of debuggers. I have spent hours, days, and even weeks trying to get a debugger running properly.
#6203diderius6⇗ @gordo999

Do you have an idea, why a breakpoint set via Windbg with
bp address
not stops the compi at this address, when it is a valid address in memory, which the compi has to execute?
Before it works. Oh, I installed everything 2 times new, really all.
Can this happen because of missing Symbols? Now I use the checked Symbols, but only hal.dll and ntoskrnl.exe
are checked files, all others in this XP SP3 are from free build.
I think, the breakpoints set with bp or bu know nothing about memory.
But the hardware breakpoints do, so it should be impossible, that a hardware breakpoint does not work, as long as the compi pass this address during executing Hex code
Dietmar
#6204gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6203
Do you have an idea, why a breakpoint set via Windbg with  bp address not stops the compi at this addressr
⇗ @diderius6 ...what comes to mind immediately is a thing called "context". When a process is running, it runs in its own context. In this use of the word, context means address space. Breakpoints like BP are generally valid only in the memory space of a process. I have not used BU but I understand it to mean the BP will be reserved till that module at that address comes into focus, which is also its context.

Also, Windows and other OSs use time-slicing. That means the processor can only focus on one thread at a time. A thread, of course, is a string of code that represents a process for a user or the system. You may see many windows open on a desktop but only the one you are working in with the mouse cursor has th focus, meaning the focus of the processor. Of course, the processor has to keep all the other windows and processes alive so it jumps from one to the other, attending to them while the window you are working in has the focus.

When the Window in focus is running, it occupies a virtual address space, which includes all imports required by the app. That's it's context. If you set an ordinary BP on an address in another module or process outside that context, windbg will likely complain.

When I worked with softice, it could be frustrating until I learned about contexts. If I set a BP in a process address when the process was not loaded, or even in focus, softice would complain. So, I had to locate the process in memory using the 'table' command, which listed all modules loaded. I could then highlight the module, set my breakpoint, and softice was happy.

There is a similar feature in windbg for setting context. I am not very familiar with it but I did use it once. This is the problem with windbg, it is so complex the learning curve seems to take forever. Leave it alone for a few months and much of it is forgotten.

Regarding your previous post about ba e1 <address>, I have not used hardware BPs a lot. However, I read something interesting at the Msoft site. You can set a breakpoint on the serial port using the ba breakpoint, using BA i <serial port addy>, where addy is the standard serial port address range.. That might be a useful troubleshooting technique, not just for serial ports but for any external device attached to the mobo. You can also specify a hardware BP using r, w or i in place of e, where r = read, w = write, and i = i/o as in i/o port..

The difference between a hardware and a software BP, is that the software BP relies on temporarily replacing code with an int 3. That causes an exception which windbg knows how to handle. The hardware breakpoint is set for the processor. The processor is interrupt-driven, meaning it is alerted by external devices via interrupts whenever they need service. I think a hardware interrupts address is placed in a special table monitored by the processor, as with normal interrupts.

⇗ https://docs.microsoft.com/en-us/windows...reak-on-access-

This article may prove valuable to you. I posted about the special debug version of ntldr, found on the XP SP1 disk, that can help kernel debugging over a serial cable. It also explains a windbg attachment that can help. With this NTLDR, you can apparently break before ntoskrnl is loaded during boot.

⇗ https://kobyk.wordpress.com/2008/07/04/r...-boot-debugger/
#6205diderius6MINIX is the most used OS in the world since 2006

⇗ https://www.cs.vu.nl/~ast/intel/

Dietmar
#6206diderius6Is there a program,
with which you can find the (start) address of a series of Hex orders in memory
Dietmar
#6207Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6206
Is there a program,
with which you can find the (start) address of a series of Hex orders in memory
Dietmar

Hi Dietmar,
question is "what kind of memory ?" memory controller ? virtual in ring 0 ? virtual in user's process ?
WinHEX can work with all RAM, also RW_Everything has some RAM operations
#6208Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6205
MINIX is the most used OS in the world since 2006
⇗ https://www.cs.vu.nl/~ast/intel/


most used is linux because every LCD/Plasma TV and every Android-based device has it (linux kernel, not all OS)
#6209diderius6This time I break into the loaded driver with CC INT 3 (with edited igxpmp32.sys vers 5449 with Winhex at wished place),
and Windbg breaks there as wished
.text:1004EE7E loc_1004EE7E: ; CODE XREF: sub_1004EA10+2EF j
.text:1004EE7E mov edx, [ebp+arg_0]
.text:1004EE81 cmp dword ptr [edx+1FCh], 0Eh
.text:1004EE88 int 3 ; Trap to Debugger <--- this break I set, it was original jnz
.text:1004EE89 nop
Question, if I understand this right:

edx=89be4358 as the Register view of Windbg shows at EIP=b937ae88 (the address, where Break happens)
edx+1FCh = 89be4554 if I calculate right.

This means, that at the address 89be4554 should be a value of 0Eh when the cmp gives "yes" ?
But the value at address 89be4554 is 0000, so the cmp gives "false" ?
Dietmar
#6210gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6206
Is there a program,
with which you can find the (start) address of a series of Hex orders in memory
Dietmar
⇗ @diderius6 ...this is a lot more info than you need but I am trying to demonstrate the overall procedure for byte searches and why.

As ⇗ @Mov AX, 0xDEAD explained, it depends on where in memory and how the app/driver is loaded. I don't know of any program that can do a search for bytes in memory but if I am searching for memory bytes, I do it indirectly by examining the disk image using IDA or hex editors like UltraEdit or HxD. Then I cross-reference the addresses between the disk image and the memory image. Or, you could try to dump the entire file/driver RAM image to a disk file and do your search with a hex editor, or even load it as a binary file in IDA.

If you are working in a particular application or driver, which is loaded from disk, you can search for the bytes in the app's disk image and note the offset from the beginning of code. Then you can try to find the same offset in memory. So, you are working backwards, you are not searching memory for the bytes you are searching a disk image or a disassembled image in IDA, then synchronizing addresses till you find the desired code.

There is another problem, however. If the bytes you seek are common bytes, there may be a thousand instances of those bytes. The trick is to look nearby to find unusual sequences of code bytes, noting the offset from the bytes you want to find, then searching for those bytes. I use IDA with the opcodes visible and look at the assembly instructions. I look for assembly instructions nearby that are unlikely to be common to the entire app, then I include that string of opcode bytes in my search string. Using that method I can narrow down a search to one or two instances. Then I look at the bytes surrounding those bytes to see if they compare.

If you can load the app/driver in IDA and figure out how the IDA address compares the the address of the app/driver when it is loaded in memory, it's a matter of doing hexadecimal arithmetic to find the bytes. It's not always that simple, however. I have used this successfully with apps that are loaded conventionally into user memory but as ⇗ @Mov AX, 0xDEAD explained, getting at other memory can be tricky or impossible.

I have not tried windbg remotely in kernel mode yet to any degree. One complaint I have with it in local mode, where you load an app with windbg on the same computer, is it's inability to trace into ring 0 code, which is system code. If you can't trace it I don't see how you can search it. I can't see a tool being available that will search ring 0 code.

For straight apps on disk, I use a hex editor like UltraEdit or HxD. Both have hex bytes search features but for larger files, I find HxD faster. As ⇗ @Mov AX, 0xDEAD pointed out in an earlier post, IDA also has a hex editor with search features.

With apps, and possibly drivers, you can find the base address where the app/driver is loaded in memory using windbg. If the app/driver has the focus, use !peb and it will give you a lot of info on that app/driver with its base address in memory. As a preliminary check, you can compare the bytes at the windbg memory address to the bytes on the disk image. Be advised that code often starts on a disk image at offset 0x400 or 0x1000, so you may need to apply those offsets on the disk image. The PE header info will tell you where the code section starts. By analyzing the memory image against the disk image you can eventually figure out how they are related.

You might get lucky with a one to one search between a hex editor image and the memory image but sometimes the memory image is loaded a bit differently than the disk image. For one, a disk image shows code address offsets from address zero whereas in common x86 memory addressing the app image was often located at 0x401000. With 64 bit apps it gets trickier. If you know how to read a PE header or PE header information from a tool like LordPE, the information is in there to locate your code in memory.

Still, if you are persistent and use landmarks in the code that are recognizable in the IDA disassembly or the hex editor image, you can find anything eventually.

For example, I am currently working on an app which I have loaded in memory and open in IDA as well. If I have an address in memory I try to find the same address in IDA and calculate the difference in the MSB of the lower 8 bytes in the address space between the memory address and the IDA address. Then I can find my way through the IDA code and synchronize it with the memory code. Using both, I can locate code in the disk image as well, so I can then sync between memory, IDA and the disk image.

If you have a PDB file for the app/driver, it makes life easier to synchronize between the three. The PDB gives names to functions so you can do a string search for a normal function or look up imports in the IDA import table. Once you have located a familiar name, of a function or import, at a certain address in IDA, you can check the code around it to see if it is the same as the code in memory. Or, you can at least find an offset to the desired code.

Some debuggers like Ollydebug for x86 and X64dbg for x86 and x64, allow extensive text search capabilities.  I am sure windbg has a search facility, I have never seen it. Be aware that plugins (extensions) exist for windbg and are located in the Debugging Tools for Windows directory under the winext sub-directory.  Someone may have written a search plugin, I don't know.

 

Page 415

#6211gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6209

.text:1004EE7E                 mov     edx, [ebp+arg_0]

edx=89be4358 as the Register view of Windbg shows at EIP=b937ae88 (the address, where Break happens)
edx+1FCh = 89be4554 if I calculate right.

This means, that at the address 89be4554 should be a value of 0Eh when the cmp gives "yes" ?
But the value at address 89be4554 is 0000, so the cmp gives "false" ?
Dietmar
⇗ @diderius6 ...where did you get the 1F for edx+1F? If you have windbg open, then open a memory window. Where it says @scope, or whatever, type in ebp+value, where value = the value given for it in the windbg code. I don't know why Ilfak decided to use arg_0 when he designed IDA. I think the values may be written above the function as a series of args.

When you read the memory window to get the value at ebp+value, be aware that the hex values are written in Endian format. For a common 4 byte double word like 0401000, they would be written as 00 00 01 04. You take the last two bytes and reverse them, putting them as the MSB bytes then reverse the first two bytes, putting them in the LSB position. It's similar for 64 bit notation except they use a qword like 000007fe 12345678.
#6212FireKillerGRHi,

been having acpi issues (A5 0x0000...3, 0x89CB67F8, 0XC0000034, 0X494E495F) even tho I have tried most of the modded acpi files & WinXP-IE Optional Patch Integrator tool/patcher.

Any thoughts?
#6213infuscomus⇗ @FireKillerGR

So for this error the microsoft documentation says this - ACPI could not find a mapping in the _PRT package for a device.

This is with the most recent outerspace acpi.sys

⇗ @diderius6

do you think you could patch this one?
#6214George KingHello everyone,

I created small tool, that alow distributing Windows XP syspreped image from install.wim / install.esd. [TOOL] XP2ESD - Create modern Windows XP installer

Why I writing right here? I see here a lot of you who can create patch. I need to suppress one message box from showing in setup.exe from Windows 10 installer.

Can anybody have a look on it please? Here are all needed information.

⇗ https://forums.mydigitallife.net/threads...nstaller.82935/

Many thanks

[TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6215diderius6⇗ @FireKillerGR

This is the only possible hack in acpi.sys from outerspace )
against the Bsod 0x000000A5 (0x00000003, xxx, 0xC0000034, zzz)
Dietmar

⇗ https://ufile.io/305aedg3
#6216diderius6⇗ @gordo999

Thanks a lot for help!
In this afternoon I make a new try for to find the value of variables direct in Ram,
have a nice day
Dietmar
#6217diderius6⇗ @FireKillerGR  ⇗ @George King

I noticed, that you have the normal XP SP3 acpi.sys version 5.1.2600.5512  in the folder Sources\install.wim for XP home and also for XP professional.
This acpi.sys you have to change against the acpi.sys from post 6223 each, even I think that
the normal acpi.sys from outerspace ) at this places is enough.
For unpack you can use 7zip, for to pack I dont know, which program works.
You can make a first try to install XP without repack of install.wim
Dietmar

EDIT: Also you have to change acpi.sys against acpi.sys from outerspace ) in the folder

sources\install\1\WINDOWS\Driver Cache\i386\sp3.cab
and in
sources\install\2\WINDOWS\Driver Cache\i386\sp3.cab
#6218infuscomus⇗ @George King  

Can you update your XP2ESD_Builder.cmd script so I can choose which architecture I want to use?

e.g - If I'm running Windows 10 x64 but I want to build an XP x86 installer.
#6219FireKillerGRActually the acpi.sys file you provided helped and allowed me to proceed with the installation.
Now issue is that after installation is completed (txt and gui) I still get the A5  bsod(0X00000003 0X89CAA7F8, 0XC0000034, 0X494E495F) when trying to enter the OS

Edit: I replaced the file again after the installation and it works fine so far. Thanks!
#6220George King
Zitat von ⇗ infuscomus im Beitrag ¶ #6218
@George King  

Can you update your XP2ESD_Builder.cmd script so I can choose which architecture I want to use?

e.g - If I'm running Windows 10 x64 but I want to build an XP x86 installer.


⇗ @infuscomus No update needed, just build it, architecture detection is used for host Windows to use proper tools.
I'm also on Windows x64 and building XP 32bit modern installer [TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6221diderius6⇗ @Mov AX, 0xDEAD

The missing (no entry) of the Magic Number 0Eh for the Baytrail videochip makes me think,
that may be all the time I look at the wrong place.
Imagine, that the modded igxpmp32.sys vers. 5449 already works for Baytrail.
I noticed, that when I change the Magic Number for the HD4000 on the Lenovo x230 laptop,
it shows EXACT the same symptoms as now for the Baytrail board.
So it can be, that hal.dll does not propagete the correct Magic Number to igxpmp32.sys.
And then even a working igxpmp32.sys has no chance
Dietmar

PS: So my question is, do you know how hal.dll gives the information from Bios about the videochip to igxpmp32.sys?
#6222gordo999
Zitat von ⇗ FireKillerGR im Beitrag ¶ #6219
Now issue is that after installation is completed (txt and gui) I still get the A5  bsod(0X00000003 0X89CAA7F8, 0XC0000034, 0X494E495F) when trying to enter the OS
⇗ @FireKillerGR ...may be a dumb suggestion but can you check the folder in which you inserted acpi.sys to make sure it is the same version as the modded version? Just check the size. I am thinking that Windows file checker may have replaced it, although it shouldn't because it doesn't know about acpi.sys.

BTW...which directory did you put acpi.sys into? It's supposed to be in %windir%/System32/Drivers. The size of mine is 234 KB and I had a previous version in there of 183 KB. Note that when Windows file checker changes files, it gets the file from %windir%/System32/dllcache. There should be no acpi.sys in that directory. If there is, replace it with the modded acpi.sys.

If the installation booted with the modded acpi.sys, with no A5 BSOD, it should boot in normal mode with it.
#6223gordo999
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #6207
WinHEX can work with all RAM, also RW_Everything has some RAM operations
⇗ @Mov AX, 0xDEAD ...sorry...did not see your recommendation for Winhex. Can it do a virtual memory search for hex bytes? I have been using Active@ Disk Editor but it can only search the hard disk. It's very good when working with partitions and sectors and I have used it to trace through the MFT. It has templates that can help read the MFT.
#6224FireKillerGRWill test. Thanks!
#6225Andalu
Zitat von ⇗ diderius6 im Beitrag ¶ #5986
The DSDT from Bios 1.0 I have
Dietmar

⇗ https://ufile.io/35robgkc

Compilation successful. 0 Errors, 32 Warnings, 70 Remarks, 245 Optimizations

Bios downgraded to the v1.00.
Dsdt.aml extracted from DSDT100.dsl you provided and loaded via easy2boot method.
I always got a bsod for each acpi.sys version tried until now:

1. "0xA5 (0x03,xxx,0xC0140004,0x494E495F)" for the following versions:
- original unmodded 5512 (SHA-1: FAF1AE66CC016DD7281A1FCA53BE841B6B611106),
- acpi2015 (SHA-1: CE14072D34DE5B9D9C796073CD1BC2DBF1E04C98),
- 5048 (SHA-1: 8EF48518B17DAAC4A90632A811FBFDC8183C325B) and
- 'from outer space' (SHA-1: B1CE1C07AFB0861BCCDEC17DAF04274A3DD80C8C).

2. "0x7E (0xC05,0xB9EE62B4,0XBA53FBE8,0xBA53F8E4)" for "acpi.sys - address B9EE62B4 base at B9ED4000, datestamp 480252b1"
for your latest acpi.sys version (SHA-1: 1C240A25E8D5C10CAE67C7C03F10715802C5950D).

I got almost the same BSODs for other dsdt.aml files extracted from the bios v2.50 and using them on the same bios version (even reparsing the ssdt tables and importing the ref.txt file for the reported warnings). With some of these versions the boot is completed without issues, the oddity is that this does not happen for every boot: in the other times only the bottom of the desktop is displayed at the top of the screen.

But even when the desktop is totally or partially displayed, the restart fails anyway.

What else can I try?


P.S.: without patching the dsdt table, my boards boots correctly with all patched acpi.sys for both bios versions. XP boots also with the bios v1.00 using the original un-modded acpi.sys v5512 even if the restart remains still not working.

 

Page 416

#6226diderius6⇗ @Andalu

It is a driver. Which one I do not know. Can you boot your compi in IDE mode?
I have on some compis this strange problem because of graphic
Dietmar
#6227JeveesHi. Does any XP drivers for modern videocards exist? Im searching for Nvidia RTX 3080 compatible driver.
#6228infuscomus⇗ @Jevees

for the 3080 the best you can get now is a universal 2D driver, no 3D.

If you want 3D in XP, get a 980ti or older.
#6229Jevees
Zitat von ⇗ infuscomus im Beitrag ¶ #6228
@Jevees

for the 3080 the best you can get now is a universal 2D driver, no 3D.

If you want 3D in XP, get a 980ti or older.


Thanks. Where can i get that universal 2D driver?  And are there any plans to implement 3080 support drivers?
#6230infuscomus⇗ @Jevees

Here is the 2D driver - ⇗ https://bearwindows.zcm.com.au/vbemp.htm

very unlikely to get the 3080 working on XP any time soon (years away if at all), so it would be best to get something like a 980ti or earlier if you need 3D in XP.
#6231Andalu⇗ @diderius6
IDE mode option not present in the bios.
Here all devices are disabled: onboard LAN and HD audio, serial and parallel ports. No other device is connected besides PS/2 keyboard and mouse (and onboard vga).
The same configuration in 'Uniprocessor ACPI' mode allows the normal restart.

I noticed a different behavior for the available 'mode pc' just during the XP installation, at end of the text and GUI modes when a reboot is requested:
the restart automatically works only for 'Uniprocessor ACPI' and 'Advanced Configuration and Power Interface (ACPI)' while fails for all other options (Standard PC, MPS Uniprocessor, MPS Multiprocessor and Compaq System PRO Multiprocessor or 100% compatible).

I have also tried to quit from an XP installation on a first step of the text mode setup, by pressing the F3 key just after the 'mode pc' is selected via F5 key (so just after the "setup is starting windows" screen). Even in this case, the restart behaves differently: it automatically works for Multiprocessor ACPI, Uniprocessor ACPI and Advanced Configuration and Power Interface (ACPI) while it hangs for all other modes (Standard PC, MPS Multi and Uni, Compaq, Standard PC with C-step) even by pressing the enter key.
#6232Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6221
@Mov AX, 0xDEAD
So it can be, that hal.dll does not propagete the correct Magic Number to igxpmp32.sys.
PS: So my question is, do you know how hal.dll gives the information from Bios about the videochip to igxpmp32.sys?

Hi Dietmar,
I didnt track your previous posts about igxpmp32.sys, so i dont know what is "magic number". If it is series of moving constants "mov [xxx+yyy], 0xZZ" after pci_devid detection inside igxpmp32.sys, this is intel' way to store "generation" of chip. We dont know what these number means.
There is no relation with hal.dl, as i wrote before, driver read hardware registers directly from chip (memory size/ etc...)

Driver don't read chip parameters from registry (HardwareInformation.*), instead it rewrite to registry at every reboot, every videodriver does same:
"Write hw information to registry, so that it's visible in windows property dialog" (remark from virtualbox' video driver sources)

EDIT:
little info after quick reverse-engineering Win7's igdkmd32.sys driver +  .pdb:
 
mov     dword ptr [eax+22Ch], 2
mov dword ptr [ecx+228h], 2
mov dword ptr [edx+224h], 3



+22C generation of chip:
2 - Gen3
3 - Gen4
5 - Gen5
4,6 - Gen5
7 - Gen5_7

+228 subgeneration of chip ?:
2 - Gen3

+224 subgeneration of chip ?:
3,4,7 - Napa Family
0a,0b, ... -  Gen6

#6233infuscomus⇗ @Andalu

I'm just guessing here, but maybe the problem is in the halmacpi.dll? try going back to unpatched version maybe?
#6234diderius6⇗ @Mov AX, 0xDEAD
Nice information, thanks a lot.
So it is really on the driver igxpmp32.sys to work with Baytrail or not.
About the Magic Numbers:
Yes, they are those, but one thing is other than you think:
The last Magic Number "+224h" is different, depending on OS:
On Win7 it it always increased +1 from XP to Win7 for ALL videodrivers from Intel for the same device
Dietmar

PS: Yes, the "+228h" is for a subsystem, it is on XP and Win7 always the same for the same VGA device.

EDIT: Can a for XP working VGA driver work in Win7? Or in Vista?
This would be interesting, especially for the "Win2003" 5048 version of Vista .
#6235diderius6⇗ @Andalu
"the restart automatically works only for 'Uniprocessor ACPI' and 'Advanced Configuration and Power Interface (ACPI)' "
This means, that the DSDT table is involved and so is a chance with modding DSDT.
I am not good with modding DSDT.
May be ⇗ @infuscomus or ⇗ @daniel_k can help you.
The idea for modding DSDT is:
Go back to the original DSDT from very first Bios.
And delete one (not needed for boot) driver after the other there,
so you will find the cause
Dietmar
#6236Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6234

EDIT: Can a for XP working VGA driver work in Win7? Or in Vista?
This would be interesting, especially for the "Win2003" 5048 version of Vista .

⇗ @diderius6
win7 ddk declare legacy compatibilty "win2000 model display driver" to work on Vista (without directx 10+ features)

i dont know how it works:
- in vista display driver load dxgkrnl.sys, then win32k.sys will connect with driver and dxgkrnl.sys
- in compatibility mode video driver will not load dxgkrnl.sys and probably win32k.sys will load it or maybe avoid using of dxgkrnl.sys
#6237Andalu⇗ @infuscomus
just tried the XP-IE2020.9.9 ISO with options 1,6,D (sata/ahci, acpi, remove driver packs) and only the original hal.dll v5687 in the system32 folder: nothing changed.
#6238Andalu⇗ @diderius6
previously I skipped to mention the behavior of the 'Multiprocessopr ACPI' mode during the XP installation:
the auto restart works at the end of the txt mode while fails at the end of the GUI setup, no other mode has this dual behavior on my board.

The only driver integrated into the XP-IE iso besides the acpi.sys is the sata/ahci.


EDIT: just installed the XP-IE2020.9.9 ISO on my sabrent NVMe drive (no other disks connected to the board) with integrated the samsung nvme driver only (and the patched acpi.sys): the restarts is still not working, so the driver sata/ahci can be excluded.
#6239diderius6⇗ @Andalu

"so the driver sata/ahci can be excluded"

For to exclude Sata, you have to disable it in registry (set Start=4 there in HKLM\System\currentcontrolset\services)
or rename the name of the Sata driver on \windows\system32\drivers
Dietmar
#6240Andalu⇗ @diderius6
that was the first check I did as soon as the installation was completed: no sata driver file present in the system32/drivers folder

 

Page 417

#6241diderius6⇗ @Andalu

Can you disable in Bios the Hpet timer?
Can you disable all sleeping states, only C1 not?
Can you disable the onboard graphikcard?
Make also try to disable "save to Ram"
Dietmar
#6242JeveesI'm searching for acpi.sys x64 for Z490 to instal windows XP x64. Are there any ?

Edit: nvm found it, works perfect
#6243juk777Hello, everyone! And why there are no statistics on configurations (Intel and AMD) "motherboard + cpu" with a successful installation of XP and with a specific version of acpi?
This would make life much easier for people who, for example, want to buy new hardware to install XP...
#6244Andalu⇗ @diderius6

I keep trying with the NVMe as system drive, no sata disks connected.

No success even disabling all the suggested settings one at a time or simultaneously. For the vga section the options are onboard, PCI express and PCI, so no "disabled" options available.
I have tried once again with a vga card but on restart the monitor turns off while the motherboard still remains on (CPU fan keeps spinning) and the OS frozen as always.

I have changed the setting of almost all bios options with no results. If it is a bios-related issue, shouldn't it also occur in uniprocessor acpi mode? (also reducing the number of cpu cores to 1 in the bios didn't help).
#6245diderius6⇗ @Andalu

"I have tried once again with a vga card but on restart the monitor turns off"
Try another VGA card.
I remember from Windows Embedded, that there was a program,
that force XP to shut down, but I dont remember the name, may be it was tool from XP itself
Dietmar
#6246diderius6⇗ @Mov AX, 0xDEAD

How can you see in running Vista or Win7, if you run a driver XDDM which was compiled with the Win7 DDK with
"legacy compatibilty "win2000 model display driver" settings,
or if the driver is compiled "normal" WDDM for 6.1 Win7 or higher
Dietmar
#6247JeveesI've successfully instaled XP x86 to my Z490 motherboard, but can't install XP x64, getting 0x000000CA BSOD during second phase of the installation. I've used acpi 5048 - 2019.10.19 (Intel&AMD Final) - daniel_k as it's the latest that have x64 acpi. Was able to bypass A5 error with it. And i've used x64 AHCI driver for Asmedia ASM106x controller integrated into ISO with Nlite to bypass 7B error. I've unpluged all external devices, turn off all onboard equipment in bios. No luck, 0X000000CA PnP bsod.
Any solution to this problem ?
#6248infuscomus⇗ @Jevees

Unless I'm not up to date with XP patches, there is still no solution for the CA BSOD on XP x64, it is the main reason we still recommend XP x86 over x64
#6249Jevees
Zitat von ⇗ infuscomus im Beitrag ¶ #6248
@Jevees

Unless I'm not up to date with XP patches, there is still no solution for the CA BSOD on XP x64, it is the main reason we still recommend XP x86 over x64

appreciate your help! May i also ask for Ethernet Driver for Windows 7 and XP x86 for Intel I225-V. Is it exist ? PCI\VEN_8086&DEV_15F3&SUBSYS_87D21043&REV_02\4&10ED824A&0&00E4
del-16YuriyCN

RTC bug fix - решение проблемы с уходом времени под WinXP

Причина:
В многопроцессорных ядрах Windows XP для генерации прерываний используется таймер, который находится в модуле RTC. Когда в Windows каким-то процессом меняется интервал системного таймера (1 -> 16 -> 1 -> 16 мс), то в модуле RTC переключается делитель тактовой частоты, от выхода которого идут прерывания для подсчета системных тиков. Делитель частоты находится в Status Register A CMOS RTC (offset - 0Ah). При каждом переключении возникает ошибка подсчёта импульсов. Чем чаще переключается делитель - тем чаще возникают ошибки, что приводит к неточному ходу времени. Проблема убрана начиная с Windows Vista.

Решение №1: Программа Timer_Fix + Source Code

Программа Timer_Fix с исходным кодом, написанная на Visual Studio 6.0. Программа не имеет интерфейса, после запуска она переведет системный таймер на период 1 мс и оставит его неизменным, программа постоянно висит в процессах до перезагрузки ОС. Для завершения работы (в случае необходимости) нужно просто прибить процесс Timer_Fix.exe через "Диспетчер задач". Каких-либо косяков от использования данного метода не обнаружено.

Скачать - ⇗ https://yadi.sk/d/KpTGDPITsNWn7w

Решение №2: Патч файла ntoskrnl.exe (предложил rmn). ---- Способ оказался НЕ РАБОТАЮЩИМ.

1. Переходим в c:\windows\system32
2. Создаем копию файла ntoskrnl.exe (оригинал мы патчить не можем, потому что система блокирует доступ к своему ядру).
3. Переименовываем оригинальный файл в ntoskrnl.bak, а копию - в ntoskrnl.exe и открываем последний в CFF Explorer.
4. В Export Directory находим функцию KeQueryTimeIncrement и копируем ее Function RVA.
5. Переходим по данному rva в Address Converter и патчим байты на EB FE (инкремент времени не будет таким образом зависеть от делителя частоты таймера).
6. Сохраняем изменения и перезагружаемся.

Готовые файлы - УДАЛЕН. Способ оказался НЕ РАБОТАЮЩИМ.

==========================================================================

Windows XP mod 2021 - сборка системы для современного ПК (редакция 08.01.2021)

Вся информация в TXT файле (75кБ) - ⇗ https://yadi.sk/d/pUsunDIheystaw

#6250Jevees
Zitat von ⇗ Jevees im Beitrag ¶ #6249
May i also ask for Ethernet Driver for Windows 7 and XP x86 for Intel I225-V. Is it exist ? PCI\VEN_8086&DEV_15F3&SUBSYS_87D21043&REV_02\4&10ED824A&0&00E4


Made the driver for Win7 by editing ini file from Windows10 driver. Works great. Now just needs driver for XP x86 please
#6251daniel_k⇗ @diderius6

I think you're taking the wrong approach to patch the driver.

You didn't even patch the device ID check.

What is the exact device ID of your Baytrail graphics? Is it similar to HD 2500?
#6252daniel_k
Zitat von ⇗ Jevees im Beitrag ¶ #6250
Made the driver for Win7 by editing ini file from Windows10 driver. Works great. Now just needs driver for XP x86 please

No x86 driver exists, it's a lost cause.
#6253daniel_k⇗ @Mov AX, 0xDEAD

Zitat
Решение №2: Патч файла ntoskrnl.exe (предложил rmn)

1. Переходим в c:\windows\system32
2. Создаем копию файла ntoskrnl.exe (оригинал мы патчить не можем, потому что система блокирует доступ к своему ядру).
3. Переименовываем оригинальный файл в ntoskrnl.bak, а копию - в ntoskrnl.exe и открываем последний в CFF Explorer.
4. В Export Directory находим функцию KeQueryTimeIncrement и копируем ее Function RVA.
5. Переходим по данному rva в Address Converter и патчим байты на EB FE (инкремент времени не будет таким образом зависеть от делителя частоты таймера).
6. Сохраняем изменения и перезагружаемся.

Готовые файлы - ⇗ https://www.upload.ee/files/12747026/RTC...oskrnl.zip.html


What do you think of this patch?

#6254diderius6⇗ @daniel_k

The problem seems to be the Magic Numbers.
Oh, I tried a lot but never has been a correct entry for maxmem in registry
for the Baytrail board. This means, that the Baytrail VGA is not correct recogniced by the driver.
The driver 5449 has already (!) DEV entry for 0F31h, but for some crazy reasons does not work.
But there is no text in hardware description for Baytrail in this 5449 driver, so it may be uncomplete for Baytrail.
In Win7, you can mix device ID for HD2500 or HD4000 with Baytrail as you wish,
driver works always. The hardware is nearly identic to HD2500 but with less lines (6 on HD2500, 16 on HD4000, 4 for Baytrail)
The driver ID for this Baytrail device  is VEN_8086&DEV_0F31
Dietmar

EDIT: The magic numbers for HD2500 and HD4000 are 9, 9, Ch on XP
and for Baytrail 9, 7, (5?), Eh.
I check the mod of ⇗ @canonkong for win7. He does not change the Magic Numbers in the driver.

Here I upload the 2 interesting drivers for Baytrail (XP and Win7 (compiled for win2000?))

⇗ https://ufile.io/0dc2gsls
#6255Andalu⇗ @diderius6
even using other two different ati video cards the behavior remains the same:
- on the ati drivers (tried two versions) the monitor goes to sleep but motherboard and vga card are still on;
- without the ati drivers the system hangs on the "windows is shutting down" screen (so the monitor also remains on) as happens for the onboard vga.

I don't know that program, would it also work for the restart?

Another question: do the tables extracted (dsdt, ssdt, facs, facs, rsdt etc.) from a live system using the acpidump.exe command from the iasl compiler package remain identical even if extracted from an operating system other than XP?


⇗ @infuscomus
have you ever used easy2boot without a PCIEx video card? I'm afraid that even to load a modded dsdt table you need to use an external vga card, otherwise you can see graphic artifacts: full screen of horizontal lines or only part of the desktop being displayed as happened several times in my attempts.

 

Page 418

#6256diderius6⇗ @Andalu

"Another question: do the tables extracted (dsdt, ssdt, facs, facs, rsdt etc.) from a live system using the acpidump.exe command from the iasl compiler package remain identical even if extracted from an operating system other than XP?"

I test this a year ago. Those tables are very similar but not identic.
So you cant change them from other OS to XP, only get ideas from them
Dietmar
#6257infuscomus
Zitat von ⇗ Andalu im Beitrag ¶ #6255
have you ever used easy2boot without a PCIEx video card?


The systems I used Easy2boot on always use a dedicated PCI-E video card, I did not test on a system with an iGPU because I did not have any with drivers for XP.

Zitat von ⇗ Andalu im Beitrag ¶ #6255
Another question: do the tables extracted (dsdt, ssdt, facs, facs, rsdt etc.) from a live system using the acpidump.exe command from the iasl compiler package remain identical even if extracted from an operating system other than XP?


I would assume they would be the same, but I don't know for sure.
#6258daniel_k
Zitat von ⇗ diderius6 im Beitrag ¶ #6254
The problem seems to be the Magic Numbers.

No, the driver is not loaded because device ID check fails.

Zitat
Oh, I tried a lot but never has been a correct entry for maxmem in registry
for the Baytrail board. This means, that the Baytrail VGA is not correct recogniced by the driver.


Because of the above, the driver gets unloaded before writing registry info.

Zitat
The driver 5449 has already (!) DEV entry for 0F31h, but for some crazy reasons does not work.


No, it doesn't. the 0F31h you see in the code is just a coincidence. It's used for another purpose.

Zitat
The driver ID for this Baytrail device  is VEN_8086&DEV_0F31


You need to use the same codes for 0152/0156/015A

Zitat
EDIT: The magic numbers for HD2500 and HD4000 are 9, 9, Ch on XP


Correct, but it varies and they are just presets so the driver knows the device it is being in use.

Actual device checks are in at least 2 places (maybe more checks).


First check:

Maybe you can JMP directly to 10021B74, not sure. (note the JG, jmp if greater, opcodes).

 
.text:10020ECB                 cmp     [ebp+var_5C4], 0C06h
.text:10020ED5 jg loc_10021106
.text:10020EDB cmp [ebp+var_5C4], 0C06h
.text:10020EE5 jz loc_10021CAE ; jumptable 10021046 case 1046
.text:10020EE5 ; ...
.text:10020EEB cmp [ebp+var_5C4], 406h
.text:10020EF5 jg loc_10020FDE
.text:10020EFB cmp [ebp+var_5C4], 406h
.text:10020F05 jz loc_10021CAE ; jumptable 10021046 case 1046
.text:10020F05 ; ...
.text:10020F0B cmp [ebp+var_5C4], 122h
.text:10020F15 jg short loc_10020F5A
.text:10020F17 cmp [ebp+var_5C4], 122h
.text:10020F21 jz loc_10021B0A ; jumptable 10020F53 cases 258,262,266,267,274,278
.text:10020F21 ; jumptable 10020FA2 case 294
.text:10020F27 mov ecx, [ebp+var_5C4]
.text:10020F2D sub ecx, 42h ; 'B' ; switch 213 cases
.text:10020F30 mov [ebp+var_5C4], ecx
.text:10020F36 cmp [ebp+var_5C4], 0D4h
.text:10020F40 ja def_10020F53 ; jumptable 10020F53 default case, cases 67-69,71-143,147-257,259-261,263-265,268-273,275-277
.text:10020F40 ; ...
.text:10020F46 mov edx, [ebp+var_5C4]
.text:10020F4C movzx eax, ds:byte_100230F8[edx]
.text:10020F53 jmp ds:jpt_10020F53[eax*4] ; switch jump
.text:10020F5A cmp [ebp+var_5C4], 162h
.text:10020F64 jg short loc_10020FA9
.text:10020F66 cmp [ebp+var_5C4], 162h
.text:10020F70 jz loc_10021BDE
.text:10020F76 mov ecx, [ebp+var_5C4]
.text:10020F7C sub ecx, 126h ; switch 53 cases
.text:10020F82 mov [ebp+var_5C4], ecx
.text:10020F88 cmp [ebp+var_5C4], 34h
.text:10020F8F ja def_10020F53 ; jumptable 10020F53 default case, cases 67-69,71-143,147-257,259-261,263-265,268-273,275-277
.text:10020F8F ; ...
.text:10020F95 mov edx, [ebp+var_5C4]
.text:10020F9B movzx eax, ds:byte_100231D9[edx]
.text:10020FA2 jmp ds:jpt_10020FA2[eax*4] ; switch jump



which should jmp to:

 
.text:10021B74                 mov     eax, [ebp+arg_0] ; jumptable 10020FA2 cases 338,342,346
.text:10021B77 mov dword ptr [eax+208h], 9
.text:10021B81 mov ecx, [ebp+arg_0]
.text:10021B84 mov dword ptr [ecx+204h], 9
.text:10021B8E mov edx, [ebp+arg_0]
.text:10021B91 mov dword ptr [edx+1FCh], 0Ch
.text:10021B9B mov eax, [ebp+arg_0]
.text:10021B9E mov ecx, [eax+0DCh]
.text:10021BA4 or ecx, 80000000h
.text:10021BAA mov edx, [ebp+arg_0]
.text:10021BAD mov [edx+0DCh], ecx
.text:10021BB3 push offset aIntelRHdGraphi_2 ; "Intel(R) HD Graphics Family"
.text:10021BB8 lea eax, [ebp+var_208]
.text:10021BBE push eax
.text:10021BBF mov ecx, [ebp+arg_0]
.text:10021BC2 push ecx
.text:10021BC3 call sub_1002F2D0
.text:10021BC8 mov [ebp+var_478], 38h ; '8'
.text:10021BD2 mov [ebp+var_469], 0
.text:10021BD9 jmp loc_10021D24



Second check:

 
.text:10023FA7                 cmp     dword ptr [ecx+1Ch], 152h
.text:10023FAE jz short loc_10023FC8
.text:10023FB0 mov edx, [ebp+arg_0]
.text:10023FB3 cmp dword ptr [edx+1Ch], 156h
.text:10023FBA jz short loc_10023FC8
.text:10023FBC mov eax, [ebp+arg_0]
.text:10023FBF cmp dword ptr [eax+1Ch], 15Ah
.text:10023FC6 jnz short loc_10024017
.text:10023FC8
.text:10023FC8 loc_10023FC8: ; CODE XREF: sub_10023A60+54E\u2191j
.text:10023FC8 ; sub_10023A60+55A\u2191j
.text:10023FC8 cmp [ebp+var_4], 0Ah
.text:10023FCC jz short loc_10023FDA
.text:10023FCE cmp [ebp+var_4], 0Bh
.text:10023FD2 jz short loc_10023FDA
.text:10023FD4 cmp [ebp+var_4], 0Dh
.text:10023FD8 jnz short loc_10023FF7
.text:10023FDA
.text:10023FDA loc_10023FDA: ; CODE XREF: sub_10023A60+56C\u2191j
.text:10023FDA ; sub_10023A60+572\u2191j
.text:10023FDA push offset aIntelRHdGraphi_15 ; "Intel(R) HD Graphics 2500"
.text:10023FDF mov ecx, [ebp+arg_4]
.text:10023FE2 push ecx
.text:10023FE3 mov edx, [ebp+arg_0]
.text:10023FE6 push edx
.text:10023FE7 call sub_1002F2D0
.text:10023FEC mov eax, [ebp+arg_C]
.text:10023FEF mov dword ptr [eax], 34h ; '4'
.text:10023FF5 jmp short loc_10024012
#6259diderius6⇗ @daniel_k
Thanks for help!
At the 2 places you show above,
I tried a lot of time to jmp with DEV_0F31, but it does not work.
When I change the Magic Number for the DEV_0166 device to 9, 5, Eh on the Lenovo x230 board,
exact the same symptoms are shown as for the 0F31, the device is not reconiced any longer.
So, the Magic Numbers are important and the correct numbers seem to be needed for the next steps
When you change them from 9, 9, 0Ch => 9, 5, 0E as seen on the win7 settings for the Baytrail device,
it does not work either
Dietmar
#6260daniel_k⇗ @diderius6

Do you understand the code flow?

First check, at
.text:10020ECB                 cmp     [ebp+var_5C4], 0C06h
change to
.text:10020ECB                 jmp     loc_10021B74
Second check, at
.text:10023FAE                 jz      short loc_10023FC8
change to
.text:10023FAE                 jmp     short loc_10023FDA
#6261Andalu⇗ @diderius6  ⇗ @infuscomus

I asked about the tables and the different OSes because I noticed a strange (for my limited knowledge) behavior:
the tables extracted from Win10 x64 via iasl20210105 (*.dat files) are identical (same SHA-1) to the ones extracted in XP Multiprocessor ACPI via RWeverything (*.raw files) except only one, the ssdt4 table. Instead, using the same iasl version in Win10 x32, the different tables are eight

In a very simplistic way, I tried to load the ssdt4.aml (obtained via 'iasl -d ssdt4.dat' and 'iasl -f ssdt4.dsl' commands) from Win10 x64 in XP with the easy2boot method and on restart I got the "new hardware recognized" screen about a "ACPI\INT0E0C\2&DABA3FF&0" device for which the system has automatically found the related driver.
But also this time the restart failed.

Edit: I forgot to mention the description for the new device: 'Software Guard Extensions' which is disabled in the bios.
#6262diderius6⇗ @daniel_k

I did the changes from you,
but still the same behavior, the VGA device is not recogniced.
I am quite sure, that it is because of wrong Magic Numbers.

Now they are 9, 9, 0Ch
but for Baytrail they should be
9, 5(7?), 0Eh

Dietmar

⇗ https://ufile.io/3zxif4z7

PS: Entries in registry Service ialm for example for maxmem are still missing.
#6263Mov AX, 0xDEAD
Zitat von ⇗ daniel_k im Beitrag ¶ #6253
@Mov AX, 0xDEAD
Zitat

5. Переходим по данному rva в Address Converter и патчим байты на EB FE (инкремент времени не будет таким образом зависеть от делителя частоты таймера)

What do you think of this patch?


⇗ @daniel_k
I dont loaded these files yet, but EB FE is hard joke, probably mistake in post

EDIT: this is real joke:
1) infinite loop
2) return in eax random trash
3) opcode inserted in relocation offset, after loading kernel to 0x8xxxxx adress, "jmp" offset will be overrided

#6264diderius6⇗ @daniel_k

I change in *.inf
the 0F31 entry back to its original one

%iIVBGD0GT1%    = iIVBD0, PCI\VEN_8086&DEV_0152

Now I get BSOD 0x7E (C00000005, xxx, yyy, zzz)

exact as in the beginning of my tries for the Baytrail driver
Dietmar

EDIT: I find with Ida pro the place in igxpmp32.sys where this Bsod happens

.text:10188080 ; =============== S U B R O U T I N E =======================================
.text:10188080
.text:10188080 ; Attributes: bp-based frame
.text:10188080
.text:10188080 sub_10188080 proc near ; DATA XREF: sub_10187750+183↑o
.text:10188080
.text:10188080 var_1 = byte ptr -1
.text:10188080 arg_0 = dword ptr 8
.text:10188080 arg_4 = byte ptr 0Ch
.text:10188080
.text:10188080 push ebp
.text:10188081 mov ebp, esp
.text:10188083 push ecx
.text:10188084 mov [ebp+var_1], 0
.text:10188088 mov al, [ebp+arg_4]
.text:1018808B push eax
.text:1018808C mov ecx, [ebp+arg_0]
.text:1018808F mov edx, [ecx+0F6Ch]
.text:10188095 push edx
.text:10188096 mov eax, [ebp+arg_0]
.text:10188099 mov ecx, [eax+0F6Ch]
.text:1018809F call dword ptr [ecx+54h]
.text:101880A2 mov al, [ebp+var_1]
.text:101880A5 mov esp, ebp
.text:101880A7 pop ebp
.text:101880A8 retn 8
.text:101880A8 sub_10188080 endp
.text:101880A8



Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Opened \\.\com1
Waiting to reconnect...
Connected to Windows XP 2600 x86 compatible target at (Sun Jan 10 23:03:54.015 2021 (UTC + 1:00)), ptr64 FALSE
Kernel Debugger connection established.
Symbol search path is: C:\WINDOWS\symbols
Executable search path is: C:\WINDOWS\symbols
Windows XP Kernel Version 2600 MP (1 procs) Checked x86 compatible
Built by: 2600.xpsp.080413-2133
Machine Name:
Kernel base = 0x80a02000 PsLoadedModuleList = 0x80b019e8
System Uptime: not available
Break instruction exception - code 80000003 (first chance)
nt!DbgBreakPoint:
80ac37e0 cc int 3
kd> g
MM: Loader/HAL memory block indicates large pages cannot be used for 80100000->8012777F
MM: Loader/HAL memory block indicates large pages cannot be used for 80F86000->81CDEFFF
MM: Disabling large pages for all ranges due to overlap
PS: Unhandled Kernel Mode Exception Pointers = 0xB9D16E5C
Code c0000005 Addr 00000000 Info0 00000008 Info1 00000000 Info2 00000000 Info3 00000000

*** Fatal System Error: 0x0000007e
(0xC0000005,0x00000000,0xB9D17310,0xB9D1700C)

Break instruction exception - code 80000003 (first chance)

A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.

A fatal system error has occurred.

Connected to Windows XP 2600 x86 compatible target at (Sun Jan 10 23:04:25.812 2021 (UTC + 1:00)), ptr64 FALSE
Loading Kernel Symbols
...............................................
Loading User Symbols

*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 7E, {c0000005, 0, b9d17310, b9d1700c}

*** ERROR: Module load completed but symbols could not be loaded for mssmbios.sys
*** ERROR: Symbol file could not be found. Defaulted to export symbols for VIDEOPRT.SYS -
*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640
Probably caused by : igxpmp32.sys ( igxpmp32+1880a2 )

Followup: MachineOwner
---------

nt!RtlpBreakWithStatusInstruction:
80ac37ec cc int 3
0: kd> !analyze -v
*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e)
This is a very common bugcheck. Usually the exception address pinpoints
the driver/function that caused the problem. Always note this address
as well as the link date of the driver/image that contains this address.
Arguments:
Arg1: c0000005, The exception code that was not handled
Arg2: 00000000, The address that the exception occurred at
Arg3: b9d17310, Exception Record Address
Arg4: b9d1700c, Context Record Address

Debugging Details:
------------------

*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640
*** No owner thread found for resource 80afd640

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - Die Anweisung in "0x%08lx" verweist auf Speicher in "0x%08lx". Der Vorgang "%s" konnte nicht auf dem Speicher durchgef hrt werden.

FAULTING_IP:
+1562faf009bdfc0
00000000 ?? ???

EXCEPTION_RECORD: b9d17310 -- (.exr 0xffffffffb9d17310)
ExceptionAddress: 00000000
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000008
Parameter[1]: 00000000
Attempt to execute non-executable address 00000000

CONTEXT: b9d1700c -- (.cxr 0xffffffffb9d1700c)
eax=89be7000 ebx=e12731c0 ecx=89be8da0 edx=89be8da0 esi=89b260f8 edi=b9d17664
eip=00000000 esp=b9d173d8 ebp=b9d173e8 iopl=0 nv up ei ng nz na pe nc
cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010286
00000000 ?? ???
Resetting default scope

DEFAULT_BUCKET_ID: DRIVER_FAULT

PROCESS_NAME: System

ERROR_CODE: (NTSTATUS) 0xc0000005 - Die Anweisung in "0x%08lx" verweist auf Speicher in "0x%08lx". Der Vorgang "%s" konnte nicht auf dem Speicher durchgef hrt werden.

EXCEPTION_PARAMETER1: 00000008

EXCEPTION_PARAMETER2: 00000000

WRITE_ADDRESS: 00000000

FOLLOWUP_IP:
igxpmp32+1880a2
b94b40a2 8a45ff mov al,byte ptr [ebp-1]

FAILED_INSTRUCTION_ADDRESS:
+1562faf009bdfc0
00000000 ?? ???

BUGCHECK_STR: 0x7E

LOCK_ADDRESS: 80afd6c0 -- (!locks 80afd6c0)

Resource @ nt!IopDeviceTreeLock (0x80afd6c0) Shared 1 owning threads
Threads: 89c80b30-01<*>
1 total locks, 1 locks currently held

PNP_TRIAGE:
Lock address : 0x80afd6c0
Thread Count : 1
Thread address: 0x89c80b30
Thread wait : 0x141

LAST_CONTROL_TRANSFER: from 80a30d7b to 80ac37ec

STACK_TEXT:
WARNING: Frame IP not in any known module. Following frames may be wrong.
b9d173d4 b94b40a2 89be8da0 89be7000 00be7000 0x0
b9d173e8 b94a3bca 89be7000 00000000 00000003 igxpmp32+0x1880a2
b9d17408 b94cb7a2 89be5008 00be5008 b9d17430 igxpmp32+0x177bca
b9d17418 b9476c55 89be5008 89bf8a88 89bf8960 igxpmp32+0x19f7a2
b9d17430 b9440d9c 89bf44fc 00000007 b9d17454 igxpmp32+0x14ac55
b9d17440 b93e753c 89bf0000 00000004 89bf0000 igxpmp32+0x114d9c
b9d17454 b93be40e 89bf8a88 89bf8960 43544e49 igxpmp32+0xbb53c
b9d17510 b93c4d44 89bf8720 89bf8960 00000057 igxpmp32+0x9240e
b9d17524 b932ddde 89b26358 89b26358 e12731c0 igxpmp32+0x98d44
b9d1753c b9593fbd 89b26358 00000000 89c6d500 igxpmp32+0x1dde
b9d17664 b932f9cd 89b26358 00000000 00000000 igxpmp32+0x267fbd
b9d17684 b9327318 89b26358 00000000 00000000 igxpmp32+0x39cd
b9d17888 b9327c9a 89ba3308 89ba33e0 89ba33e8 VIDEOPRT!VideoPortQueryServices+0x76a
b9d178b4 b9321c41 89ba3308 89ba33e0 89ba33e8 VIDEOPRT!VideoPortCreateSecondaryDisplay+0x3cc
b9d17a20 80a21c8d 89b26040 89b69e70 89b26040 VIDEOPRT!VideoPortGetVgaStatus+0x883
b9d17a38 80b5e526 b9d17aa8 89c8fa48 89c6d448 nt!IopfCallDriver+0x51
b9d17a64 80b5e66e 89b26040 b9d17a84 00000000 nt!IopSynchronousCall+0xf0
b9d17aac 80a2c123 89c6d448 00000001 00000000 nt!IopStartDevice+0x82
b9d17ac8 80b5d2e8 89c6d448 89c19801 00000000 nt!PipProcessStartPhase1+0x9f
b9d17d24 80b5dbe4 89c9cb90 00000001 00000000 nt!PipProcessDevNodeTree+0x238
b9d17d58 80a2d0b3 89c198d8 89c80b30 80b1365c nt!PiProcessStartSystemDevices+0x70
b9d17d80 80ad51a9 00000000 00000000 89c80b30 nt!PipDeviceActionWorker+0x187
b9d17dac 80bd81ac 00000000 00000000 00000000 nt!ExpWorkerThread+0x10f
b9d17ddc 80ae4212 80ad509a 00000001 00000000 nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16


SYMBOL_STACK_INDEX: 1

SYMBOL_NAME: igxpmp32+1880a2

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: igxpmp32

IMAGE_NAME: igxpmp32.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 52eae6bc

STACK_COMMAND: .cxr 0xffffffffb9d1700c ; kb

FAILURE_BUCKET_ID: 0x7E_NULL_IP_igxpmp32+1880a2

BUCKET_ID: 0x7E_NULL_IP_igxpmp32+1880a2

Followup: MachineOwner
---------

0: kd> !DEVNODE 0 1
Dumping IopRootDeviceNode (= 0x89c9cb90)
DevNode 0x89c9cb90 for PDO 0x89c9ccd8
InstancePath is "HTREE\ROOT\0"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x89c9c760 for PDO 0x89c9c8c0
InstancePath is "Root\ACPI_HAL\0000"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x89c6ced8 for PDO 0x89c98de0
InstancePath is "ACPI_HAL\PNP0C08\0"
ServiceName is "ACPI"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x89c86438 for PDO 0x89c33108
InstancePath is "ACPI\PNP0B00\2&daba3ff&0"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x89c86308 for PDO 0x89c8a1f8
InstancePath is "ACPI\PNP0103\0"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
DevNode 0x89c861d8 for PDO 0x89c22c48
InstancePath is "ACPI\PNP0A08\0"
ServiceName is "pci"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x89c8fb78 for PDO 0x89c72408
InstancePath is "PCI\VEN_8086&DEV_0F00&SUBSYS_00000000&REV_0E\3&11583659&0&00"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x89c8fa48 for PDO 0x89c6d448
InstancePath is "PCI\VEN_8086&DEV_0F31&SUBSYS_0F311849&REV_0E\3&11583659&0&10"
ServiceName is "ialm"
State = DeviceNodeResourcesAssigned (0x304)
Previous State = DeviceNodeDriversAdded (0x303)
#6265pappyN4Success for Win8 generic USB3 driver for XP x64.  Full credit to Mov AX, 0xDEAD for showing the way.

¶ 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

WDF 1.11 is same. Some minor differences for x64 USB compared to x86.

KeInitializeSpinLock exists for x86 ntoskrnl.exe but for x64 function needs to be added in emu_extender.  Also, usbd.sys also needs to be changed to use ntoskrn8. For anyone trying this, you can use a hex editor like hexplorer to change and Dependency Walker to make sure everything links together.   PEChecksum.exe when finished with changes.

x86
wpprecorde8 - no change - KeInitSpinLock from ntoskrnl.exe
usb8 - no change  - KeInitSpinLock from ntoskrnl.exe
ucx01000 - change to wpprecorde8 and ntoskrn8.sys - KeInitSpinLock from ntoskrn8->ntoskrnl.exe
usbxhci- change to wpprecorde8 and ntoskrn8.sys - KeInitSpinlock from ntoskrn8->ntoskrnl.exe
usbhub3 - change to wpprecorde8 and ntoskrn8.sys ksecd8 usb8 - KeInitSpinlock from ntoskrn8->ntoskrnl.exe

x64
wpprecorde8 - no change - does not use KeInitSpinLock
usb8 - change to ntoskrn8.sys - KeInitSpinLock from ntoskrn8:function
ucx01000 - change to wpprecorde8 and ntoskrn8.sys - KeInitSpinLock from ntoskrn8:function
usbxhci - change to wpprecorde8 and ntoskrn8.sys - KeInitSpinLock from ntoskrn8:function
usbhub3 - change to wpprecorde8 and ntoskrn8.sys ksecd8 usb8 - KeInitSpinlock from ntoskrn8:function


ksecd8 same as x86 instructions

__security_cookie does need to be changed.  If you skip it, driver will BSOD on you.  I used IDA free to lookup the hex position value of where the cookie is then changed to a random value
x86
usb8 6.2.9200.20761
hexposition: 1600
value: 4E E6 40 BB

ucx01000 6.2.9200.22453
hexposition: 14E00
value: 4E E6 40 BB

usbhub3 6.2.9200.21180
hexposition: 27C00
value: 4E E6 40 BB

usbxhci 6.2.9200.22099
hexposition: 2A800
value: 4E E6 40 BB

wpprecorde8 6.2.9200.16384
hexposition: 1E00
value: 4E E6 40 BB

x64
usbxhci 6.2.9200.22099
hexposition: 39100
value: 32 A2 DF 2D 99 2B

ucx01000 6.2.9200.22453
hexposition: 1AD00
value: 32 A2 DF 2D 99 2B

usb8 6.2.9200.20761
hexposition: 2100
value: 32 A2 DF 2D 99 2B

wpprecorde8 6.2.9200.16384
hexposition: 2500
value: 32 A2 DF 2D 99 2B

usbhub3 6.2.9200.21180
hexposition: 32D00
value: 32 A2 DF 2D 99 2B



For emu_extender, the following changes.  Add KeInitializeSpinLock_k8 function, thanks Mov AX, 0xDEAD.  Then modify one existing function.   Changes in bold.

void FASTCALL
KeInitializeSpinLock_k8(
KSPIN_LOCK* SpinLock)
{
*SpinLock = 0;
}


void
Initialize (PUNICODE_STRING RegistryPath)
{
KLOCK_QUEUE_HANDLE LockHandle;

g_GuardedRegionCounter = 0;

KeInitializeSpinLock_k8(&g_SpinWorkerRoutineArray);
KeAcquireInStackQueuedSpinLock(&g_SpinWorkerRoutineArray, &LockHandle);
{
g_LastUsedWorkerRoutineArray_Entry = 0;
RtlZeroMemory(WorkerRoutineArray, sizeof(WorkerRoutineArray));
}
KeReleaseInStackQueuedSpinLock(&LockHandle);

KeInitializeSpinLock_k8(&g_SpinCreateProcessNotifyExArray);
KeAcquireInStackQueuedSpinLock(&g_SpinCreateProcessNotifyExArray, &LockHandle);
{
g_LastUsedCreateProcessNotifyExArray_Entry = 0;
RtlZeroMemory(CreateProcessNotifyExArray, sizeof(CreateProcessNotifyExArray));
}
KeReleaseInStackQueuedSpinLock(&LockHandle);

}


ADD
#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:_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: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:IoIs32bitProcess=ntoskrnl.IoIs32bitProcess")
#pragma comment (linker, "/export:IoWMIDeviceObjectToProviderId=ntoskrnl.IoWMIDeviceObjectToProviderId")
#pragma comment (linker, "/export:KeAcquireSpinLockRaiseToDpc=ntoskrnl.KeAcquireSpinLockRaiseToDpc")
#pragma comment (linker, "/export:KeLowerIrql=ntoskrnl.KeLowerIrql")
#pragma comment (linker, "/export:KeReleaseSpinLock=ntoskrnl.KeReleaseSpinLock")
#pragma comment (linker, "/export:KfRaiseIrql=ntoskrnl.KfRaiseIrql")

CHANGED FROM
#pragma comment (linker, "/export:KeInitializeSpinLock=ntoskrnl.KeInitializeSpinLock")

TO
#pragma comment (linker, "/export:KeInitializeSpinLock=KeInitializeSpinLock_k8")



Using the x86 as guide I think i found the correct spot to make the change for x64 version for USB3.0 speed reporting fix.  USBTreeView shows as (0x03 (Super-Speed))

 
x86
usbhub3 6.2.9200.21180
hexposition: 9058
change: 75 09 -> EB 09 (jnz -> jmp)

x64
usbhub3 6.2.9200.21180
hexposition: A44B
change: 75 0A -> EB 0A (jnz -> jmp)




change inf NTamd64 -> NTx86 if using for x86

;
; usbhub3.inf
;
; Copyright (c) Microsoft Corporation. All rights reserved.
;

[Version]
signature="$Windows NT$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
Provider=%Msft%
DriverVer=05/01/2018,6.2.9200.16384

[SourceDisksNames]
1="Generic USB 3.0 Hub Driver"

[SourceDisksFiles]
usbhub3.sys = 1
usb8.sys = 1
ksecd8.sys = 1

[ControlFlags]
BasicDriverOk = *
ExcludeFromSelect = *

[DestinationDirs]
DefaultDestDir = 12

[Manufacturer]
%GenericHub.Mfg%=GenericHub, NTamd64

;
; ---------------------- HUB3 Controllers ----------------------
;

[GenericHub.NTamd64]
%UsbHub3.RootHubDeviceDesc%=GenericHub.Install, USB\ROOT_HUB30
%UsbHub3.Usb30HubDesc%=GenericHub.Install, USB\USB30_HUB
%UsbHub3.Usb20HubDesc%=GenericHub.Install, USB\USB20_HUB

[GenericHub.Install.NT]
CopyFiles=GenericHub.CopyFiles

[GenericHub.Install.NT.Services]
AddService=USBHUB3, 2, GenericHub.AddService

[GenericHub.AddService]
DisplayName = %UsbHub3.SVCDESC%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\UsbHub3.sys
LoadOrderGroup = Base
AddReg = ServiceHub_AddReg

[GenericHub.Install.NT.WMI]
; Set access permissions for UI WMI GUIDs
WMIInterface = {4E623B20-CB14-11D1-B331-00A0C959BBD2},,WMIGuidSecurity_AllRights

[ServiceHub_AddReg]
HKR, , BootFlags, 0x00010001, 16 ; CM_SERVICE_USB3_DISK_BOOT_LOAD
HKR, Parameters\Wdf, LogPages, 0x00010001, 3 ; KMDF IFR size
HKR, Parameters, LogPages, 0x00010001, 3 ; Driver IFR size
;
; Create a dummy usbhub services key because UxD relies on it.
;
HKLM, SYSTEM\CurrentControlSet\Services\usbhub,,0x00000010
;
; Fixes the power off when a safely remove hardware command was send.
;
HKLM, "SYSTEM\CurrentControlSet\Services\usbhub\hubg", "DisableOnSoftRemove", 0x00010001, "1"

[GenericHub.CopyFiles]
usbhub3.sys
usb8.sys
ksecd8.sys

;
; --------------------------- Strings --------------------------
;

[Strings]
;Non-Localizable
Msft = "Microsoft"

;Localizable
GenericHub.Mfg = "(Standard USB HUBs)"
UsbHub3.RootHubDeviceDesc = "USB Root Hub (xHCI)"
UsbHub3.Usb30HubDesc = "Generic SuperSpeed USB Hub"
UsbHub3.Usb20HubDesc = "Generic USB Hub"
UsbHub3.SVCDESC = "SuperSpeed Hub"



;
; usbxhci.inf
;
; Copyright (c) Microsoft Corporation. All rights reserved.
;

[Version]
signature="$Windows NT$"
Class=USB
ClassGUID={36FC9E60-C465-11CF-8056-444553540000}
Provider=%Msft%
DriverVer=05/01/2018,6.2.9200.16384

[SourceDisksNames]
1="Generic USB xHCI Host Controller"

[SourceDisksFiles]
usbxhci.sys = 1
ucx01000.sys = 1
WppRecorde8.sys = 1

[ControlFlags]
BasicDriverOk = *
ExcludeFromSelect = *

[DestinationDirs]
DefaultDestDir = 12

[Manufacturer]
%Generic.Mfg%=Generic, NTamd64

;
; ---------------------- xHCI Controllers ----------------------
;

[Generic.NTamd64]
%PCI\CC_0C0330.DeviceDesc%=Generic.Install,PCI\CC_0C0330
%ACPI\PNP0D10.DeviceDesc%=Generic.Install,ACPI\PNP0D10

[Generic.Install.NT]
CopyFiles=Generic.CopyFiles
ExcludeID=PCI\VEN_1B73&DEV_1000&CC_0C0330
ExcludeID=PCI\VEN_1B73&DEV_1400&CC_0C0330
ExcludeID=PCI\VEN_1B73&DEV_1009&REV_00
ExcludeID=PCI\VEN_1022&DEV_43D5

[Generic.Install.NT.HW]
AddReg=PciD3ColdSupported.RegHW

[PciD3ColdSupported.RegHW]
HKR,e5b3b5ac-9725-4f78-963f-03dfb1d828c7,D3ColdSupported,0x10001,1

[Generic.Install.NT.Services]
AddService=USBXHCI, 2, Generic.AddService
AddService=UCX01000,, UCX.AddService

[Generic.AddService]
DisplayName = %PCI\CC_0C0330.DeviceDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\USBXHCI.SYS
LoadOrderGroup = Base
AddReg = USBXHCI.AddReg

[USBXHCI.AddReg]
HKR,, BootFlags, 0x00010001, 16 ; CM_SERVICE_USB3_DISK_BOOT_LOAD

[Generic.CopyFiles]
usbxhci.sys
ucx01000.sys
WppRecorde8.sys

[UCX.AddService]
DisplayName = "USB Controller Extension"
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\ucx01000.sys
LoadOrderGroup = Base
AddReg = UCX.AddService.AddReg

[UCX.AddService.AddReg]
HKLM,System\CurrentControlSet\Control\Wdf\Kmdf\Ucx\Versions\1\1,Service,,ucx01000
HKR,, BootFlags, 0x00010001, 16 ;CM_SERVICE_USB3_DISK_BOOT_LOAD

;
; --------------------------- Strings --------------------------
;

[Strings]
;Non-Localizable
Msft = "Microsoft"

;Localizable
Generic.Mfg = "Generic USB xHCI Host Controller"
PCI\CC_0C0330.DeviceDesc="USB xHCI Compliant Host Controller"
ACPI\PNP0D10.DeviceDesc="USB xHCI Compliant Host Controller"

Note "ExcludeID=PCI\VEN_1022&DEV_43D5" in usbxhci.inf, to avoid using driver for USB port that I already have existing vendor drivers.



Attached unmodified original sys files for x64,x86 for anyone who wants to try

pappyN4 has attached files to this post
#6266daniel_k⇗ @diderius6

Just tried it here on my 8700K (UHD Graphics 630) using Haswell Desktop Controller preset.

During install, screen flashed, driver tried to initialize.

When restarting, doesn't crash, but hangs. The approach is correct, just doesn't work.
#6267Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6262

Now they are 9, 9, 0Ch
but for Baytrail they should be
9, 5(7?), 0Eh


win7/8 drivers ( igdkmd32.sys 10.18.10.5100) set  9, 5, 0F
05 setted for 2E02, 2A42, 2A42,2E22, ...
0F is unique and setted only for 0f30/0f31/0f33, this mean driver has special logic for baytrail, try to search "cmp dword ptr [eax+234h], 0Fh" and you'll see it
#6268Mov AX, 0xDEAD
Zitat von ⇗ pappyN4 im Beitrag ¶ #6265
Success for Win8 generic USB3 driver for XP x64.  Full credit to Mov AX, 0xDEAD for showing the way.
WDF 1.11 is same. Some minor differences for x64 USB compared to x86.


Hi pappyN4

Glad to see successful run win8 usb3 driver on x64, you are first man who did it with emu_extemder !
Your success inspire me to review extender code to be fully compatible with x64 XP/2003
del-17YuriyCN

Пояснения по RTC bug

Решение №1 (программа Timer_Fix.exe + source code) - пока единственный рабочий вариант, убирающий RTC bug.

Решение №2 (с патчем ntoskrnl.exe by "rmn") оказалось не рабочим. Форумчанин "rmn" настолько уверенно его предложил, как альтернативу Timer_Fix.exe, что я, даже не проверив работоспособность, выложил его в паблик.

В итоге мы имеем проблемы:
1) бесконечный цикл
2) возврат в случайный мусор регистра EAX
3) код операции вставлен в смещение перемещения, после загрузки ядра по адресу 0x8xxxxx смещение "jmp" будет отменено

Вывод: патч ntoskrnl.exe - не работает, а пользователь "rmn" больше не заслуживает доверия.

#6269pappyN4Anyone using backported win7 stornvme/storport drivers able to read SMART using CrystalDiskInfo? I managed to get NVME working with OFA driver backported for server 2003 from sourceforge, but it does not show SMART.

AMD AHCI 1.2.1.402, storport 5.2.3790.4485, YES SMART
schtrom NVMe for Windows 2003 Server, storport 5.2.3790.4485, NO SMART
schtrom StorAhci for Windows 2003 Server, storport 5.2.3790.4485, NO SMART

stornvme,storport 6.1.7601.23403, ??
storahci 6.2.9200.16384, storport 6.1.7601.23403, ??

I was playing with backporting of win7 x64 driver with emu_extender to see if it would have SMART data, but have not gotten it working yet.   The x86 instructions say to force legacy mode since MSI interrupts is not compatible with XP.  I could not find anything online stating if XP/2003 x64 also needs to force legacy.  

Flow wise it feels like sub_15B40 for x64 storport is comparable to x86 sub_1598D.  But it looks different enough that I can not tell if it needs to be changed and if it does, where.
#6270Andalu⇗ @pappyN4

¶ here some screenshots about it.

 

Page 419

#6271Andalu
Zitat von ⇗ diderius6 im Beitrag ¶ #6245
I remember from Windows Embedded, that there was a program,
that force XP to shut down, but I dont remember the name, may be it was tool from XP itself
Dietmar


I could not find in XP Embedded any alternative application for shutdown. I have however tried both tsshutdn and psshutdown (and their parameters set) but the restart always gets stuck in the same way.

I take this opportunity to ask you: can a dsdt table extracted from a live system, simply decompiled and recompiled without making any changes and then loaded at boot on the same system give a bsod? Could it be that the compiler (iasl) is not appropriate? If so and the restart problem was dependent on the dsdt table, I would have no hope to find a way to fix it.
#6272infuscomus⇗ @Andalu

Zitat von ⇗ Andalu im Beitrag ¶ #6271
can a dsdt table extracted from a live system, simply decompiled and recompiled without making any changes and then loaded at boot on the same system give a bsod?


If you're not making any changes it should not be giving a BSOD.
#6273Andalu⇗ @infuscomus
unfortunately it is not so, at least for what I have noticed in my attempts.
I got always the A5 bsod (0x00010007,xxx,xxx,0x00) with an unmodified dsdt.aml loaded via easy2boot method.

Edit: even more weird, using an unmodded dsdt table sourced from the same board with Win10 x64, extracted and decompiled with iasl20210105 but recompiled with iasl20161222 (the only newer version that allows recompilation for that dsdt.dat), my system doesn't give bsod on the XP boot.
#6274infuscomus⇗ @Andalu

Zitat von ⇗ Andalu im Beitrag ¶ #6273
Win10 x64, extracted and decompiled with iasl20210105 but recompiled with iasl20161222 (the only newer version that allows recompilation for that dsdt.dat), my system doesn't give bsod on the XP boot.


Does this work consistently?
#6275Mov AX, 0xDEAD
Zitat von ⇗ pappyN4 im Beitrag ¶ #6269

I was playing with backporting of win7 x64 driver with emu_extender to see if it would have SMART data, but have not gotten it working yet.   The x86 instructions say to force legacy mode since MSI interrupts is not compatible with XP.  I could not find anything online stating if XP/2003 x64 also needs to force legacy.  

Flow wise it feels like sub_15B40 for x64 storport is comparable to x86 sub_1598D.  But it looks different enough that I can not tell if it needs to be changed and if it does, where.


Hi PappyN4
- dont be "blind", download *.pdb from MS repository with C:\Program Files\Windows Kits\XXX\Debuggers\x86\symchk.exe and load to IDA project, no more sub_xxxx
- x86 hex patch 8B 8E 3C 01 00 00 ->  B9 00 00 00 00 90 mean forcing InterruptSynchronizationMode = 0 :
      
InterruptSynchronizationMode = DevExt->Miniport.PortConfiguration.InterruptSynchronizationMode;
DevExt->Flags.InterruptsEnabled = 0;
DevExt->MsiMode = InterruptSynchronizationMode;
if ( InterruptSynchronizationMode )
{
DevExt->MSISupported = 0;
if ( SynchronizationModel == StorSynchronizeHalfDuplex )
DevExt->MsiMode = 1;
}
result = RaidAdapterConnectInterrupt(DevExt);


- PDB Ripper can extract structure offsets from *.pdb and you can see
struct _RAID_ADAPTER_EXTENSION:
enum _INTERRUPT_SYNCHRONIZATION_MODE MsiMode;// Offset=0x504 Size=0x4
unsigned char MSISupported;// Offset=0x514 Size=0x1

#6276Andalu
Zitat von ⇗ infuscomus im Beitrag ¶ #6274
Does this work consistently?

XP boots correctly and seems to work without problems, but I didn't spend much time going into details. After loading the dsdt.aml coming from Win10 x64 via easy2boot (so this method works), on the XP boot the "Found new hardware wizard" is shown and in the device manager there are three unknown devices as from the image below:




I confirm that the dsdt table extracted, decompiled and recompiled in XP with iasl20161222 without any modification gives the A5 bsod (0x00010007,xxx,xxx,0x00).
So, if XP boots with the extracted dsdt table from Win10 x64 with the latest iasl20210105 and fails with iasl20161222 I think this latter version is no longer appropriate for use in XP.

In my case, the worst thing is that even the latest iasl version is not able to recompile the dsdt.dsl previously obtained with the same application, a contradiction....
#6277infuscomus⇗ @Andalu

ACPI\INT33A2 is a wifi device and ACPI\INT344B is a GPIO controller - If there are any options in your BIOS to disable these devices can you try disabling them and see if doing that fixes the restart issue?
#6278Andalu⇗ @infuscomus

No entries in the bios for both of them.
#6279infuscomus⇗ @Andalu

I'm out of ideas on how to fix this restart issue
#6280infuscomus⇗ @Gelip has managed to get XP x64 working in UEFI mode without CSM - ⇗ https://www.betaarchive.com/forum/viewto...f7eeb8f#p456492

So if we can solve the most common A5, CA and 50 BSODs it would be possible to run XP x64 in UEFI on real hardware too.
#6281Gelip
Zitat von ⇗ infuscomus im Beitrag ¶ #6280
@Gelip has managed to get XP x64 working in UEFI mode without CSM - ⇗ https://www.betaarchive.com/forum/viewto...f7eeb8f#p456492

So if we can solve the most common A5, CA and 50 BSODs it would be possible to run XP x64 in UEFI on real hardware too.

I did it on real hardware: ASUS P8H61-M LE R2 (Sandy Bridge) + AMD HD7450 with GOP firmware

but I have all the official device drivers for WinXP 64-bit
#6282Andalu
Zitat von ⇗ infuscomus im Beitrag ¶ #6279
I'm out of ideas on how to fix this restart issue

Me too

Maybe the problem is not related to the dsdt table... but if not here, where is the bug?

The iasl20190329 allowed to decompile and recompile the dsdt table even in XP: no error detected in both steps.
I was hoping to use the dsdt.aml coming from the ACPI Uniprocessor system (where the restart works) for the ACPI Multiprocessor (where the restart fails) but even if XP boots correctly via easy2boot, the restart issue is always there. The dsdt tables obtained from the two pc modes are identical as are the facp and rdst tables. The only different table is facs but nothing changed even switching it between the two modes.

I also extracted the dsdt table with UEFITool NE A58, decompiling and recompiling it with the same iasl20190329 but at startup always the usual A5 bsod (0x00010007,xxx,xxx,0x00). It seems better to extract a table from a live system than from a raw file.
#6283pappyN4Thanks for the advice Mov AX, 0xDEAD.  Definitely easier to see with PDB files loaded.

820h = 0
JMP to avoid 840h set 1, 820h set 1

 
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
#6284YuriyCN[ENGLISH] Updated set of solutions for installing Windows XP on a modern PC from 17-jan-2021 (detailed descriptions, mod drivers, programs, ready-builds OS)

[RUSSIAN] Обновленный комплект решений по установке Windows ХР на современные ПК от 17-янв-2021г., включающий подробные описания, модернизированные драйвера, программы, готовые сборки ОС

TXT (85KB) - ⇗ https://yadi.sk/d/HcmGtGL7IJdczw
#6285gordo999
Zitat von ⇗ YuriyCN im Beitrag ¶ #6284
[ENGLISH] Updated set of solutions for installing Windows XP...
⇗ @YuriyCN ...thanks for your solutions. Good work.

⇗ @YuriyCN ... спасибо за ваши решения. Хорошая работа.

 

Page 420

#6286diderius6Hi,
does somebody know, if for the filterdriver EWF.sys exists
a 64 bit version, that can work together with XP 64 bit?
I know, that there has been ewf.sys for vista 64 bit,
but I have never seen those files.
The last version for EWF.sys from Win7 64 bit Embedded  may work also,
but I also dont know from where to get those 64 bit EWF files.
Intersting is also, if there is a size limit for ram.
For XP SP3 and ewf.sys is even with hacked files a limit of 650 Mbyte ram free
Dietmar
#6287infuscomus⇗ @diderius6

I suppose it depends on whether or not there was ever an x64 version of Embedded XP.
#6288diderius6⇗ @infuscomus
I found this website
⇗ https://www.chiphell.com/thread-322102-1-1.html
Quick check with Dependency Walker shows some unresolved dependencies
using the win7 64 bit ewf.sys for XP 64 bit
Dietmar

PS: May be this can be solved. But I read, that there exists a Vista 64 bit ewf.sys
#6289infuscomus⇗ @diderius6

can you check if the missing dependencies are covered by ntoskrnl extender?
#6290diderius6There are 6 functions in ewf.sys from win7 Embedded 64 Bit,
that are missed in ntoskrnl.exe from XP SP3.
None of them is listed until now in implemented Func List v6 for XP SP3.
But maybe, that they are already implemented in XP 64 bit

ExQueryDepthSList
ExpInterlockedPopEntrySList
ExpInterlockedPushEntrySList
KeAcquireSpinLockRaiseToDpc
KeReleaseSpinLock
__C_specific_handler

I upload this ewf.sys from win7 embedded
Dietmar

⇗ https://ufile.io/zx0ar8ee

EDIT: Waaoh, I just make a check with real ntoskrnl.exe version 5.2.3790.3959 (srv03_sp2_rtm.070216-1710)
from XP 64 SP2. NO unmatched functions, so this ewf.sys from November 2009 may work from scratch at once with XP 64 !!!
#6291diderius6For to test the ewf.sys from the very first win7 Embedded  64 bit on XP 64
I just set up a new XP 64 bit SP1 corporate version.
First I get acpi BSOD A5 (0x11, 0x08, yyy, zzz).
Ok, first hack on original acpi.sys.
After this I get Bsod A5 (0x02, xxx, yyy, zzz).
This is, because a device mentioned in DSDT does not like to work.
Ok, next hack.
Then I noticed, that the Firadisk USB install gives always BSOD 0x7B.
So I use normal CD install, I use the nice storahci driver from Kai Schtrom, correct storport is already in XP 64 SP1
⇗ https://sourceforge.net/projects/storahc...ows-2003/files/
now install works
Dietmar

PS: I use the (modded) original acpi.sys because I hope, that the crazy instability of XP 64 on newer hardware is gone with it.

Modded from original acpi.sys for XP 64 bit SP1

⇗ https://ufile.io/r4p0i2i8
#6292diderius6I just modded the acpi.sys and hal.dll from original XP 64 SP2.
Now the timerproblem is gone and also all Acpi Bsods on my Asrock Fatalty gaming k6 board with i8700k cpu
Dietmar

⇗ https://ufile.io/8qn0smia
#6293diderius6For the ewf.sys 64 bit from Win7 Embedded,
Dependency Walker shows, that all dependencies in XP64 SP2 are fulfilled.
A look with Windbg shows, that ewf.sys is loaded and started in XP64 SP2.

But in ewfmgr.exe from Win7 Embedded Dependency Walker shows under XP64 SP2
missing functions in msvcrt.dll from XP64 SP2. I tried the msvcrt version from Vista64 5048, but compi crashes with this Vista version.

swprintf_s
memcpy_s
strncpy_s
wcscpy_s

I would add this missing functions by myself to msvcrt.dll from XP64 SP2 , but I dont know how,
so help is welcome
Dietmar

This is the original msvcrt.dll from XP64 SP2, with the missing functions

⇗ https://ufile.io/2vkouypg
#6294daniel_k⇗ @diderius6

If Windows crashes, probably the issue is in ewf.sys.
msvcrt.dll is a user mode dll, wouldn't crash your system.

By the way, wouldn't be better to create a new thread for XP x64?
#6295diderius6⇗ @daniel_k

XP64 SP2 does not crash with ewf.sys (!).
It starts normal and I check with windbg, all is ok.

DevNode 0xfffffadce0aa7c30 for PDO 0xfffffadce0aa7e50
InstancePath is "Root\LEGACY_EWF\0000"
ServiceName is "EWF"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)

But the Volume (here harddisk) is not protected.
Maybe even without ewfmgr this should be possible to get ewf to work, I think something is missed in registry for ewf.
Dependency Walker shows also, that msjava.dll is missed for ewfmgr.exe .
I dont know, which version of msjava.dll can work with XP64 SP2
Dietmar

PS: The problem with new thread is, that nobody looks there.
#6296diderius6Yessssssaaa,
I get ewf ram to work on XP64 SP2

Now I test, HOW much ram can be used for it, I have 32 Gbyte on this compi

Dietmar

This is the content of my ewf.reg file, this is a little bit other than in XP SP3
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
"UpperFilters"="Ewf"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf]
"ErrorControl"=dword:00000001
"Start"=dword:00000000
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf\Parameters]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf\Parameters\Protected]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf\Parameters\Protected\Volume0]
"Type"=dword:00000001
"Enabled"=dword:00000001
"CompareBeforeAlloc"=dword:00000000
"DiskSignature"=dword:9f38d7fa
"PartitionOffset"=dword:00100000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf\Enum]
"0"="Root\\LEGACY_EWF\\0000"
"Count"=dword:00000003
"NextInstance"=dword:00000003
"1"="STORAGE\\Volume\\1&30a96598&0&Signature9F38D7FAOffset100000Length1D1C05C0000"
#6297diderius6Ok, ram limit for EWF is around 705 Mbyte, not very impressive.
This should be 64 Bit?
May be the reason is in ntldr from XP64 SP2
Dietmar

PS: Anyway this is impressive, this XP64 SP2 running on a Western Digital hardisk with 2 Tbyte.
From feeling with EWF ram enabled, it is the fastest OS ever;))..

#6298diderius6What is the limiting factor for ewf ram size of about 705 MB in XP64?
A try with the bootloader from Vista64 would be interesting
Dietmar

"the system page table memory is usually the limiting factor???"
How to enlarge that?

Specifically 64-bit has a maximum memory size of 128GBs for PTEs while 32-bit Windows has a 660MB maximum for PTEs.
#6299daniel_k
Zitat von ⇗ diderius6 im Beitrag ¶ #6298
What is the limiting factor for ewf ram size of about 705 MB in XP64?

Test the EWF RAM limits on Embedded 7 just to be sure.
#6300diderius6⇗ @daniel_k

I look about EWF RAM limits on Embedded 7, found only
"the system page table memory is usually the limiting factor" ;))
Dietmar

 

Page 421

#6301diderius6I found the tool

EWFAdmin_1.0.0.108_Installer.exe

I can install it on XP64 SP2
but then comes message when I start it

"The procedure entry point memcpy_s  could not be located in the dynamic link library msvcrt.dll ."

So, at least this function needs to be integrated in msvcrt.dll from XP64 SP2.
Just now I cant do this, but I want to learn how
Dietmar

PS: May be just a setting in registry can enlarge the usable ram for EWF ram reg .

⇗ https://rsonline.cn/webdocs/126e/0900766b8126ede9.pdf

EWFAdmin_1.0.0.108_Installer.exe

⇗ https://ufile.io/1353y6eq
#6302diderius6May be it is this key

No, does also not help for to enlarge ram for EWF ram reg
Dietmar
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"ClearPageFileAtShutdown"=dword:00000000
"DisablePagingExecutive"=dword:00000000
"LargeSystemCache"=dword:00000000
"NonPagedPoolQuota"=dword:00000000
"NonPagedPoolSize"=dword:00000000
"PagedPoolQuota"=dword:00000000
"PagedPoolSize"=dword:00000000
"SecondLevelDataCache"=dword:00000000
"SystemPages"=dword:ffffffff
"PagingFiles"=hex(7):00,00,00,00
"PhysicalAddressExtension"=dword:00000001
#6303diderius6It hangs, even the limit is about full 32 Gbyte?
Dietmar

#6304gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6293
I would add this missing functions by myself to msvcrt.dll from XP64 SP2 , but I dont know how, so help is welcome Dietmar
⇗ @diderius6 ...Dietmar...I have re-built IAT tables in the past but too long ago to be of help to you now. It's not that complicated. You can add functions directly to the IAT table or you can create a dll with the functions in it and insert the address of the dll in the IAT table.

Here's a good overall article on it. This is part I, look at the bottom of the article to find links to Part II, etc.

⇗ https://relearex.wordpress.com/2017/12/2...s-table-hooking
#6305gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6301
"The procedure entry point memcpy_s  could not be located in the dynamic link library msvcrt.dll ."
⇗ @diderius6 ...Dietmar...I just posted a link to an article that explains how to do it. The entry point cannot be found because it is not present in the IAT table.
#6306diderius6⇗ @gordo999

Thanks a lot. I try today!
Today in the afternoon I will try the same ewf.sys files on a brandnew Win7 Sp1 64 bit installation.
Interesting, if there can be used more than 705 MB for the EWF ram overlay.
Has somebody here in the forum tested this already?
There has been a discussion in a microsoft blog about the max size of the EWF ram overlay in 64 bit, but now it is deleted so there is no information about it at all. Max EWF Ram overlay with 64 bit ewf.sys should be about 128 Gbyte(!)
Dietmar

PS: If the EWF overlay in win7 64 bit also is below 1 Gbyte,
I will make a test with the ewf.sys from win8, win8.1 .. etc. under XP64 SP2.
#6307kukonosau⇗ @diderius6
Thanks for work! But new acpi.sys get BSOD on WinXPx64 on Ryzen. I used files from post #6302. I haven't Intel motherboard.
#6308diderius6⇗ @kukonosau
In the evening I try to mod for Ryzen also
Dietmar
#6309kukonosau⇗ @diderius6
I will enjoyed if you can modding! Thanks if modding! Maybe, this is very fast system in the world!!! Probably, it is working fast than XPSP3x86. Do you testing mod acpi.sys now or after?
#6310kukonosau⇗ @diderius6
How to modding? I must be programmer C++? How to change system drivers? Can I learning C++ and modify Windows XP? This is probably or no?
#6311kukonosau⇗ @diderius6
This theme is interesting me. I want to be specialist, but I nothing know almost. But Windows XP is my hobby. It is my love, my soul!!!
#6312infuscomus⇗ @kukonosau

To modify existing drivers you'll need to learn assembly language as well as how to use a disassembler and a debugger, and to write new drivers you'll need to learn C (not C++)
#6313kukonosau⇗ @infuscomus
Existence Russian literature about assembler, disassembler and debugger? Why C++ restricted for write new drivers? Why C, but not C++? Syntax almost equal? And how long I must to learn? Diderius6 professional into assembler?
#6314diderius6⇗ @kukonosau

Until now we dont have a modded original acpi.sys for XP64 SP2 version
5.2.3790.3959 (srv03_sp2_rtm.070216-1710),
that works also on Ryzen.
I remember very good, that we gave up more than a year ago for this and choose the 5048 one.
But I am getting better and here is new try
Dietmar

PS: When this acpi.sys not works, please write me the exact Bsod for the Ryzen Pc.

⇗ https://ufile.io/cf67npye
#6315kukonosau⇗ @diderius6
Now, wait, please! Do you online now? I check and write for you. I be write to flash another XPx64, but with your new acpi.sys. I use YUMI program. After if doesn't work I error code write. Probably, this is error A5, how usually.

 

Page 422

#6316kukonosau⇗ @diderius6
I checked new acpi.sys. Unfortunately, also BSOD with error A5. 0x000000A5 (0x0000000000002001, 0x0000000000000001, 0xFFFFFFFFC0000034, 0xFFFFFADE859DB038). The BIOS in this system is not fully ACPI compliant. And so on. But your well done that working all. Like.
#6317diderius6⇗ @kukonosau

Now it is exact as a year ago.
This Bsod 2001 is gone for sure with this new acpi.sys
question is, what comes then
Dietmar

⇗ https://ufile.io/d55nguzq
#6318kukonosau⇗ @diderius6
Okay, I will checking acpi.sys from #6327. I makecab ACPI.SY_ and put to folder AMD64 in distributive XPx64. After write to flash with YUMI. Wait, please...
#6319kukonosau⇗ @diderius6
I checking without compressed SP2.CAB archive and without put to him new acpi.sys. Chekcking in text mode, before 3rd restart, in our 1st start.
#6320diderius6⇗ @kukonosau
Does it mean it works?
Dietmar
#6321kukonosau⇗ @diderius6
Unfortunately, no. Also error A5. But I see that every start appearance brackets new figures. 0x000000000000002 and so on...
#6322diderius6⇗ @kukonosau
Now sadly it is a dejavue from last last year.
I have no idea, HOW this Bsod 0xA5 (0x02,xxx,yyy,zzz) can survive
Dietmar
#6323kukonosau⇗ @diderius6
By the way, acpi.sys from post #2202 sometimes started!!! Maybe, this acpi started also with several try, I don't know. Also now I haven't file *tib, created with Acronis. Comfortable will be checking.
#6324kukonosau⇗ @diderius6
Yes, yes, yes!!! After 0x02 appearance different values after every restarting!!! Your rename their xxx, yyy, zzz.
#6325diderius6⇗ @kukonosau

Please write to me the exact full Bsod code
Dietmar
#6326kukonosau⇗ @diderius6
My action:
1) save your new acpi.sys on Local Disk;
2) makecab acpi.sys in command line;
3) put get acpi.SY_ in extracted distribute WinXP64 (AMD64 for x64; if acpi for WinXPSP3x86 then put to folder I386);
4) with nlite create ISO file without driver (I integrated SATA AHCI early);
5) with YUMI create load flash drive WinXP64;
6) checking acpi.sys after restarting computer.

This is correctly action? I don't change acpi.sys in SP2.CAB and I don't compressed this archive and put AMD64 again.
#6327kukonosau⇗ @diderius6
I don't know how to send screenshots with full code ACPI(((
#6328kukonosau⇗ @diderius6
Last error ACPI:

***STOP: 0x000000A5 (0x000000000000002, 0xFFFFADE85B34840, 0x0000000000000001, 0xFFFFFADE85ADAC30)
#6329kukonosau⇗ @diderius6

A problem has been detected and windows has been shut down to prevent damage to your computer.

If this is the first time you've seen this stor error screen,
restart your computer. If this screen appears again, follow these steps:

The BIOS in this system is not fully ACPI compliant. Please contact your
system vendor for an updated BIOS. If you are unable to obtain an
updated BIOS or the latest BIOS supplied by your vendor is not ACPI
compliant, you can turn off ACPI mode during textmode setup. To do this,
press the F7 key when you are prompted to install storage drivers. The
system will not notify you that the F7 key was pressed  it will stiently
disable ACPI and allow you to continue your installation.

Technical information:

***STOP: 0x000000A5 (0x000000000000002, 0xFFFFADE85B34840, 0x0000000000000001, 0xFFFFFADE85ADAC30)
#6330diderius6⇗ @kukonosau

Interesting,
what this new acpi.sys will show
Dietmar

⇗ https://ufile.io/meeg1fjj

 

Page 423

#6331ruthan
Zitat
I don't know how to send screenshots with full code ACPI(((


 Just use Phone camera.

#6332bright_lightHi everyone,
I'm new to this forum and this is my first post.
First, I must say thank you very, very much for your amazing work, making Windows XP possible on new computers.
I've done some testing on Ryzen and Intel computers.

For Windows XP Professional x64 Edition, there is something I like to do with Nlite which seems to improve stability for me. It may or may not work for you. It's complicated process. You may need Virtual box to install windows xp there first before you transfer it to use on a real PC.

Use Nlite to modify original XP 64-bit as described below:
1. remove Multi-Processor support (you will use uniprocessor. You will install multi-processor later after you get other things working.)
2. remove support for Intel and AMD processors
3. disable System File Protection (SFC)
4. Save ISO

In Virtual box under settings you first use IDE as disk drive, install windows completely. close virtualbox, open VHD, copy all drivers USB SATA etc. and don't forget to copy modded acpi.sys. Then again start virtualbox program, go to settings, attach secondary vhd which must be SATA, enable usb3.x and set processor to at least 2 cores. Start windows machine on virtualbox once again and install multiprocessor manually from acpi.inf pointing to modded acpi.sys via device manager and all drivers USB3.0, SATA etc. Then close virtaulbox.

After that, you need to find a way of booting your VHD on real PC from your USB flash drive or HDD using something like Yummy, Grub4DOS loader or Easy2Boot with FiraDisk (or SVBus). Svbus is like FiraDisk but newer.
You don't like booting from VHD? You can try copying WINDOWS folder Program files etc. from VHD to your PC where you plan using XP but it may not work if your XP expects to be on a different drive/partition or some registry entries are pointing to a wrong location or something else is wrong.

With processor support removed you get trully portable windows-to-go-XP (without needing any registry modifications) that will boot on any PC by swapping your disk drive. If you choose to install ACPI processor functions (intelppm.sys, amdppm.sys) you have to modify registry to get windows-to-go feature.

Make Windows XP  to go (with processor support) by adding this to registry:
-----------------------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\intelppm]
"Start"=dword:00000003

-----------------------------------------------------------------------------

Anyway you may skip virtualbox installation process and go directly with installing on real PC. In that case you must integrate all necessary drivers USB, SATA etc. I hope it works for you.
#6333daniel_k⇗ @diderius6

acpi.sys 6666 supports all ACPI 2.0 opcodes.

Unless someone does the same for x64, it won't work.
#6334infuscomus⇗ @daniel_k

Hopefully ⇗ @Mov AX, 0xDEAD can share how he did it?
#6335infuscomus⇗ @bright_light

we already have XP via live USB support up and running - ⇗ @diderius6 got it working and ⇗ @Outbreaker made a script to replicate it.
#6336diderius6⇗ @daniel_k

Do you think, that the Bsod 0xA5 (0x02, xxx, 0x01, yyy)
happens because of unknown words from Acpi2.0 in DSDT table?

For me it is soso strange, that we cant jmp over this Bsod. I did it for all places with 0x02, not enough?

I thought, that this Bsod happens, because acpi.sys cant work together with some devices from DSDT.


What do those 2 lines tell

cmp     cs:PciInterfacesInstantiated, 0
jz...

? Can you force this with jmp (EB) even cmp     cs:PciInterfacesInstantiated, 0 is not true (is it then 1?).


May be, that we do not know the reason until now, why the acpi.sys from XP64 fell on Ryzen,
because on Intel with hack against Bsod 0xA5 (0x02, xxx, 0x01, yyy) it works.
Is there a chance via the numbers for xxx and yyy to find in memory, which device belongs to this
Dietmar

From Microsoft Bsod 0xA5 (0x02, xxx, 0x01, yyy)

xxx: The ACPI extension for the PCI bus


0x01


yyy: A pointer to the QUERY_RESOURCE_REQUIREMENTS IRP


ACPI cannot convert the BIOS' resource list into the proper format.
This probably represents an error in the BIOS' list encoding procedure.
#6337bright_lightdiderius6

The ACPI you made back in 2019 seems to work fine on XP x64 on Ryzen PC. 415kb in size. not one 315kb.
415kb is the only one that is working.
#6338diderius6⇗ @kukonosau ⇗ @daniel_k

Crazy, after intensive compare with the 32 bit acpi.sys
I found 2(!) new places for Bsod A5 (0x02,xxx,0x01,yyy) in the 64bit acpi.sys .
Crazy hard job to "correct" them all.
But now, this is the best modded from original XP64 SP2 acpi.sys
Dietmar

⇗ https://ufile.io/8fqhmws2
#6339diderius6Hm, with the acpi.sys above compi hangs.
So, new one for XP64 SP2, compi hangs not and works at least in Safe Mode F8
Dietmar

⇗ https://ufile.io/g9h11z3a
#6340kukonosau⇗ @diderius6
ACPI from post #6349 freeze on setup in starting Windows, but not BSOD. I haven't installed Windows XP SP2 x64 with Acronis and I haven't opportunities check acpi in safe mode.
#6341kukonosau⇗ @diderius6
Sometime appeared BSOD error 0x01E. But often ACPI freeze in setup is starting Windows.
#6342gordo999
Zitat von ⇗ kukonosau im Beitrag ¶ #6313
Existence Russian literature about assembler, disassembler and debugger? Why C++ restricted for write new drivers? Why C, but not C++?
⇗ @kukonosau ...C is an easier, lower-level language than C++, which is object-oriented and needed for more complex programming of larger systems. There is no need for C++ when C will do a job perfectly well.

If you reverse engineer code you will soon see the difference. A C++ app is full of unrelated code you need to recognize but it's not nearly as bad as some of the bloatware you'd find in apps written in Delphi or MFC C++. In my day, there were no PDB files for MFC dlls and the code appeared to be a massive jungle.

Many of the answers you need are in this blog thread. Start reading at the beginning to see the original problems, then see how they were overcome. Some of the modders, like ⇗ @daniel_k have done it by code analysis using IDA, and studying the Intel manuals to see how the hardware devices work.

How long? My specialty is in reverse engineering and I have contributed nothing to this blog. I learned reverse engineering by 'doing it'. There are no shortcuts, you start at the beginning with simple assembly code problems and by doing the jobs you learn more and more each time. You learn how to use debuggers (windbg, Ollydbg, x64dbg), disassemblers (IDA), and other tools that help you analyze the assembly code (LordPE, etc.).

You read a lot. When I started there was no Internet. All we had were 1200 bps modems and BBSs (Bulletin Board Services). The state of the art communication protocol was eventually Z-modem which was like standing still compared to the Internet speeds of today. Even at that, if you wanted information you searched for it and you found it through tutorials. You found tools as well but you took chances because you did not know if it contained a virus. I will say this about hackers and crackers, most I have encountered were honest people who had no interest in harming anyone's system. I have never had a virus from any hacker/cracker site.

Or you do it with a lot of hard work as daniel_k, diderius, and infuscomus, have done. Mov Ax Dead is in another class. He has a very good understanding of programming and reversing techniques, as well as a good understanding of how Windows works.

If you have a strong desire to learn, use your desire to motivate you. I started decades ago because software I had purchased had a very simple form of protection to prevent you copying a floppy disk. I needed a copy so I started researching how to defeat the protection. I had very limited experience with assembly language from my work as an electronics/computer technician. That helped, but what really helps is being able to persevere through frustration when you know nothing about a problem and why it is happening.
#6343kukonosau⇗ @gordo999
Thanks. I continue learning C++. My level is beginning, or started. Maybe, junior. While I learning C++ assembler is restricted for me. Correctly? May I go learning C++, but not Python, Pascal and simple/usually C? My C++ level is junior. I know arithmetical operations only and arrays. Cycles and input/output little.
#6344diderius6⇗ @kukonosau
get a working copy of Winhex and Ida pro.
Ida 6.1 64 bit is very good for XP.
And Winhex I have version 11.9 from 2003 I think, but works for nearly everything.
Then take a look with Ida Pro at the original acpi.sys and a modded one.
At once you will understand what changes and how
Dietmar
#6345kukonosau⇗ @diderius6
Thanks. Sometime I save IDA 7 Freeware and see many figures. I don't understand. Many changes was. May I seeing Ida without learning C++?! It is have semantics?

 

Page 424

#6346kukonosau⇗ @diderius6
I want wish you good luck in modify acpi.sys for XPx64. This is hardest work, I think. Your old acpi.sys from post #2202 working in our installations, but not always working and crash randomally with different BSOD's.
#6347kukonosau⇗ @diderius6
Influence acpi.sys on perfomance? For example gaming perfomance?
#6348diderius6⇗ @kukonosau

Under XP64 there is no possiblility to install without acpi.
On XP SP3 there is and on Ryzen it helps a lot, because you can use Multiprocessor only via acpi
Dietmar

PS: You have post.
#6349kukonosau⇗ @diderius6
What am I doing?
#6350kukonosau⇗ @diderius6
Incorrect password.
#6351diderius6⇗ @kukonosau
You need 7zip for to unpack
Dietmar
#6352kukonosau⇗ @diderius6
I have 7-zip. Incorrect password.
#6353diderius6⇗ @kukonosau
The file is damaged,
I upload it new
Dietmar
#6354kukonosau⇗ @diderius6
Okay, I understand. File is damaged, file include errors.
#6355kukonosau⇗ @diderius6
But, probably, I can't modify acpi.sys XPx64 for Ryzen if I will be equal standard acpi XPx86 and modify your acpi XPx86.
#6356Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #6334

Hopefully @Mov AX, 0xDEAD can share how he did it?

Hi infuscomus,

"old way" - assembler implants from acpi.sys w7 to acpi.sys, i dont recommend repeat it again if you dont have enough time, too complex.

what about longhorn v5048 acpi.sys x64 ? does it totaly fails on xp x64 ?
#6357diderius6I just make a test with the EWF filter from win7 embedded Standard under win7 64 bit.
Behavior is a little bit strange:
EFW filter works normal up to an occupied memory of about 2.3 Gbyte.
Then, the cache is grown up, but very slow. So I succeed with 6 Gbyte but this not nice for use,
so only 2.3 Gbte.
Dont know, why XP 64 only allows about 705 MByte with this EWF filter from Win7.
Dietmar

PS: May be ewf.sys from win8 or above is better.
#6358infuscomus⇗ @Mov AX, 0xDEAD

can we do an acpi2.0 implementation properly using the source code instead? or manual assembly edit is the only way?
#6359diderius6⇗ @Mov AX, 0xDEAD ⇗ @infuscomus

I just take a look at the acpi.sys from outerspace ) for the acpi2.0 word "Tointeger" implementation.
At once you get a feeling how much work this is.

The modded 5048 Vista 64 acpi.sys works so lala on newer Intel boards, network is unstable on Intel controllers
and is maximal unstable (unusable) on Ryzen platform.

The advantage in a transforming of a XP64 acpi.sys to full Acpi2.0 would be, that now all variables are 64 bit also.
Not so easy to answer the question, if it is worth.
I succeed with small mod on the acpi.sys from XP64 but only on Intel boards it works good
Dietmar
#6360kukonosau⇗ @diderius6
At the way, Vista x64 also instable working on Ryzen motherboard!!! Maybe, this is for me only?! But Vista x64 get BSOD/crash randomally!!! Windows 7 stable working, exception GTA IV. Vista sometimes get BSOD in our installation!!! Sometimes it is BSOD after select load flash drive!!! Updates integrate don't solve problem! However, I don't check Vistax86 in have BSOD. But I sure that Vista x86 crash randomally also. This is correctly?

 

Page 425

#6361kukonosau⇗ @diderius6
But Windows XP x64 SP2 has more BSOD's on Ryzen than Vista x64 SP2, but no much.
#6362Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #6358
@Mov AX, 0xDEAD
can we do an acpi2.0 implementation properly using the source code instead? or manual assembly edit is the only way?

of couse you can do in C but ida decompiler often show code with many crossed GOTOs, sometimes very hard to understand what code do

pros of asm implants - they already done, need sometime change field offsets inside of one important structure (struct _ObjData) because win7 has different format, also need kill 64-bit integer math because this structure in XP dont have space to store high dword, this is why integers in xp acpi.sys always 32bit
#6363AndaluFinally the restart works correctly on my asrock B250M Pro4 also in acpi multiprocessor mode.
I had already tried changing all the components on the board except the one that turned out to be the culprit: the ps/2 keyboard that I always used to avoid usb problems during XP installation. It was the last of the things I would have thought of. The same with a usb mouse and its ps/2 adapter. Without connecting the ps/2 peripherals the restart issue disappears.
Enabling the ps/2 emulation in the bios doesn't help either: XP hangs on the boot when the logo screen appears.

I'm still wondering why the same problem doesn't occur in uniprocessor acpi mode.

Anyway, I would like to find a way to get the PS/2 ports working. Can anyone suggest where to start looking?
#6364daniel_k⇗ @Andalu

Glad you have finally found the culprit.

Here my input devices are all USB.

USB drivers are mature and stable, if properly integrated, they work right from start during XP setup.
#6365Andalu⇗ @daniel_k
there are some exceptions: on the same crazy asrock B250M board the XP-IE2020.9.9 iso (including the xHCI USB3 driver) installation from a pendrive plugged into a usb2 port gives the '0xDEADBEEF' bsod on the first step of text mode. No problem with the same pendrive plugged into a usb3 port or using the XP-IE iso without the usb3 driver even if plugged into a usb2 port.
#6366Mov AX, 0xDEAD⇗ @Andalu

Zitat von ⇗ Andalu im Beitrag ¶ #6365

'0xDEADBEEF' bsod


Hi Andalu
this is debug bsod of emu_extender, some check was failed and reported to user this way, numbers after '0xDEADBEEF' is hint to failed check
#6367Andalu⇗ @Mov AX, 0xDEAD

here the complete code: 0xDEADBEEF (0x02, 0x8A158B20, 0x8A20D1F8,0x00).
But I don't know what they mean.
#6368diderius6Hi,
can somebody help me with the new ewf.sys files in

Windows6.1-KB2573449-x64.msu

They cant be found now in Internet
Dietmar
#6369pappyN4Andalu's post inspired me to check again and it was the PS2 keyboard that was causing my reboots to fail (both XP32 and XP64).  I had tested it before by just unplugging it and doing a restart which failed.  This time, I started the computer with no PS2 at all and restart works...  Restarts were working fine with Win7 and with a parted magic bootable linux ISO from 2012.

Totally would not have expected that.  I would have said that a "dumber" interface like PS2 would be more compatible...

So Shutdown proceeds normally.
Restart, which sets the "Reset Register" must hang somewhere right before the soft reset... (something related with ACPI?)

Numlock turn off, "Windows is shutting down", monitor(GPU output) turns off and then nothing when a PS2 keyboard is attached...

Are the PDBs for 5048 available? x86 and x64  I had no luck trying to download from ms symbols server
#6370daniel_k
Zitat von ⇗ diderius6 im Beitrag ¶ #6368
Hi,
can somebody help me with the new ewf.sys files in

Windows6.1-KB2573449-x64.msu

They cant be found now in Internet
Dietmar


You didn't look hard enough!

⇗ http://web.archive.org/web/2020080320522...2573449-x64.msu
⇗ http://web.archive.org/web/2020080321005...2573449-x86.msu
#6371diderius6⇗ @daniel_k

Really crazy,
I look in web.archive also,
but I only find a list, how often this file has been downloaded..
Thanks a lot!
Dietmar

Here is the link from the translation of ⇗ @dencorso for the installation instruction of XP from ⇗ @YuriyCN

⇗ https://msfn.org/board/topic/182311-wind...comment-1194610
#6372pappyN4⇗ @diderius6 windows6.1-kb3125574-v4-x64 has ewf.sys 1.0.1533.0
#6373Andalu⇗ @pappyN4

you can find some x86 versions here:
⇗ https://archive.org/download/somewinxpdownloads/


Edit: only now I realized that you were looking for the symbols for Vista, sorry.
#6374diderius6⇗ @daniel_k ⇗ @pappyN4

Do you know, how to extract  Windows6.1-KB2573449-x64.msu ?
On Win7 SP1 64 bit I was told,
that this package is not for this compi
Dietmar
#6375pappyN4I use sereby Hotfix Extr4ct0r.  Works nice.  Then search extracted folders for *.sys or whatever

 

Page 426

#6376daniel_k⇗ @diderius6

Open Command Prompt:
expand -f:* Windows6.1-KB2573449-x64.msu .
expand -f:* Windows6.1-KB2573449-x64.cab .
#6377diderius6⇗ @daniel_k

I try this command but does not work. Gives message, that no file
Dietmar

PS: Very strange, I cant put them in a folder

expand -f:* Windows6.1-KB2573449-x64.msu C:
expand -f:* Windows6.1-KB2573449-x64.cab C:
works
#6378diderius6The behavior of the new ewf.sys under win7 SP1 64 bit is similar as before:
Up to 2.3 Gigabyte transfer speed is ultrafast (I use copy from harddisk to protected harddisk) via Sata.
Then, transferspeed goes down between 70...7 MByte/s,
cache grows with the same speed,
but there seems no limit in ram
Dietmar
#6379diderius6This seems to be the limiting factor, how to change?

See pic, "Zugesichert 3/15 GB"

Strange enough, win7 64 bit SP1 home professional allows you only 16 Gbyte at all from your ram.
Dietmar

#6380pappyN4Depending on which version of Windows 7 x64, RAM limits

Windows 7 Home Basic 8 GB
Windows 7 Home Premium 16 GB
Windows 7 Professional 192 GB
Windows 7 Enterprise 192 GB
Windows 7 Ultimate 192 GB

⇗ @diderius6 do you have PDB for 5048 acpi x86 and x64?
#6381diderius6⇗ @pappyN4
I dont have this PDB.
Crazy flight in night during editing this acpi 5048 files
Dietmar
#6382diderius6It seems,
that also with the very laast ewf.sys vers.1533 64Bit the maximal ram overlay is limited to about 2.3 Gbyte,
in win7 SP1 64bit and the same limit for XP64.
Under XP64 can be used from this about 715 Mbyte with the newest ewf.sys 64 Bit,
under win7 SP1 64 bit the full 2.3 Gbyte
Dietmar
#6383usa1ec
Zitat von ⇗ diderius6 im Beitrag ¶ #6371
@daniel_k

Here is the link from the translation of @dencorso for the installation instruction of XP from @YuriyCN

⇗ https://msfn.org/board/topic/182311-wind...comment-1194610



Registration is required.
Please, upload the file to this forum.
#6384diderius6Here it is,
hope that ⇗ @dencorso agrees
Dietmar

⇗ https://ufile.io/dunj39qa
#6385diderius6I make also a try with the very last version of ewf.sys from Win7 32bit Embedded Standard for in use XP SP3,
because this ewf.sys fulfills all dependencies under XP SP3.
But very late in the bootprocess comes

Bsod CONFIG_LIST_FAILED
0x00000073 (0x00000001, 0xC000017D, 0x00000001, 0xB271CBB8)

I have never seen before.
Compi boots from an also mechanical write protected Kangaroo USB stick with single Fat32 partition.
Safe Boot (F8) shows the same. May be, that this new ewf.sys driver tries to write to disk, which is here impossible
because of write protect
Dietmar

EDIT: Yeppp, this is the reason. When I open the write protect switch on the USB stick, it boots to full XP SP3.
Nice, now I test and then I close on running XP the write protect switch;))

#6386infuscomus⇗ @diderius6 ⇗ @Mov AX, 0xDEAD

I did an experiment adding CreateQWordField to acpi.sys using the source code.

I would like to get this up to outerspace acpi.sys in terms of compatibility - anyone willing to help with it?

infuscomus has attached files to this post
#6387kukonosau⇗ @infuscomus
Hello. Post #6396 include acpi.sys for XPx64? Can I testing in my machine with Ryzen 5 2600 or no? It is have semantics?
#6388infuscomus⇗ @kukonosau

No sorry, this is not ready yet, it was just to show that new ACPI words could be implemented using source code.
#6389kukonosau⇗ @infuscomus
Thanks. I checked now. ACPI is not compatible with x64. Probably, this is very hard work, modify acpi.sys for XPx64. I never will can modify. Diderius6 is professional, but not I.
#6390diderius6⇗ @infuscomus  ⇗ @kukonosau

I am not professional.
I did all by myself, just try an error, nice hobby.
I am interested to build a new acpi.sys for XP64 with all the needed(!) words from acpi2.0.
Until now, I have no idea how to do this, I am just not good enough
Dietmar

PS: ⇗ @infuscomus use the 64 bit acpi.sys 5.2.3790.4099 (srv03_sp2_qfe.070612-2335) from the very last package for XP64 from 2016
5er_UpdatePack_XPx64SP2_2017-06_2.7z

 

Page 427

#6391infuscomus⇗ @diderius6

Zitat von ⇗ diderius6 im Beitrag ¶ #6390

PS: @infuscomus use the 64 bit acpi.sys 5.2.3790.4099 (srv03_sp2_qfe.070612-2335) from the very last package for XP64 from 2016


I meant updating the actual C source code and compiling to match outerspace acpi.sys not editing painstakingly in assembly.
#6392diderius6⇗ @infuscomus

Oh, I think this is much more difficult using Source Code from XP64.
⇗ @Mov AX, 0xDEAD tells us in principle, how to do it in assembler.
But I see another problem.
Just as in case of acpi.sys from outerspace ),
there is no garantie, that such a new build acpi.sys from XP64 will work with Ryzen.
Before that, first we need to find out, why Ryzen does not work with the actual acpi.sys from XP64.
And this means hack like usual, solving one BSOD after the other on a Ryzen platform with the very new acpi.sys 5.2.3790.4099
Dietmar
#6393diderius6Just now I try new ewf.sys on a fresh XP SP3.
May be, that the limit of 715 MByte comes from ntldr.
Is there an already ready *.iso from XP SP3, which uses for boot winload.efi and bootia32.efi version 6.0.5219.0 from Longhorn
with boot.ini content

[boot loader]
timeout=30
NOBCD
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usenewloader

or it is enough to copy those files on a working XP SP3 on a Fat32 partition. Do I need to mod the MBR for this to get rid of ntldr at all
Dietmar
#6394kukonosau⇗ @diderius6
How you testing acpi.sys on Ryzen without Ryzen motherboard? You have helper? Why you are not professional if you experiment sucessfully? You have knowledge assembler and disassembler drivers, but I understand nothing.You are not programmer, but you disassembler drivers? Talent!!! It's very hard for me. I see Hex yesterday. Many figures and nothing understand. What is offset...
#6395diderius6⇗ @kukonosau
Most information you can get here in this forum. I just do the same for to boot XP SP3 without any ntldr.
Hard job but only via this way you get better
Dietmar
#6396kukonosau⇗ @infuscomus
Where is last package 2016 for XPx64? And you use acpi on Ryzen or Intel motherboard? This is official package? Only I Doing Vista also, and I get BSOD!!! Updates from last version doesn't help me.
#6397kukonosau⇗ @diderius6
I nothing understand. You want to Windows XP has loader equal Windows 10? Load writer PBR if I don't mistake? Correctly I understand?
#6398diderius6Bootloader is from Vista 32 bit.
I have done boot XP SP3 and delete ntldr for this, but I dont remember all steps.
The idea is from ⇗ @Gelip and ⇗ @skullteria
Dietmar
#6399kukonosau⇗ @diderius6
Good idea. I missed Windows Vista early, I move from Windows XP to Windows 7 sometime. I don't mark her perfomance equal Windows 7. And I don't check stable acpi in Vista 32-bit. Randomally BSOD Vista x64 on Ryzen causes ACPI, yes? But Vista often was quickly than Windows 7 on Ryzen in desktop.
#6400diderius6⇗ @daniel_k

I think, the Bsod 0xA5 (0x02, xxx, 0x01, yyy)
on Ryzen for the debug version of acpi.sys from XP64 SP2 5.2.3790.3959 (srv03_sp2_rtm.070216-1710)
happens at

ACPIBusIrpQueryResourceRequirements+446

and then, when reach this line, the Bsod happens

PAGE:0000000000080EDF         lea     edx, [r9+1]     ; BugCheckParameter1

Dietmar

PS: May be you see a possibility to hack this Bsod.
#6401diderius6⇗ @kukonosau

Here is a new acpi.sys from XP64 also for Ryzen,
make try
Dietmar

⇗ https://ufile.io/20q6t748
#6402kukonosau⇗ @diderius6
Okay, thanks, I trying. After send message for you, okay? May I will be tester your acpi?
#6403pappyN4So I installed Windows 7 ps2 driver for keyboard.  6.1.7601.23403 i8042prt.sys, kbdclass.sys. Runs fine but does not fix restart issue.  I did not think it would but why not try...   Played with Legacy and 60/64 port USB port settings in BIOS.  No luck.  Does acpi have something with PNP0303 during shutdown? I cant think of anything else at the moment.


⇗ @diderius6 #6411 5.2.3790.3959 BSOD A5 (....0000002, ....AD9C16E9950,....0000001,....AD9C1FE23B0)
#6404kukonosau⇗ @diderius6
Unfortunately, BSOD A5(0x01,xxx,0x02,yyy) again.
#6405diderius6⇗ @kukonosau ⇗ @pappyN4

I think, for any device acpi.sys is used.
And I know the places, where this Bsod 0xA5 (0x02, xxx, 0x01, yyy) can happen,
at least there are 4 places in acpi.sys for this Bsod 0x02
but I do not succeed to solve them. The most most crazy is, that the idea for to solve this Bsod works in acpi.sys 5048 64 bit.
And it is special for Ryzen.
Really crazy. At the moment I am out of ideas
Dietmar

 

Page 428

#6406kukonosau⇗ @diderius6
Any device? Bad. But thanks that not the all writing drivers, working! Maybe, you can modify your acpi from post #2202, but not original acpi? Acpi from #2202 sometimes started and crash randomally, but new acpi never started. I haven't idea also, because while I have enough knowledge about programming.
#6407diderius6⇗ @kukonosau ⇗ @pappyN4

I make a strange mistake.
So, this is new acpi.sys for XP64
Dietmar

⇗ https://ufile.io/4rhoz1f4
#6408Mov AX, 0xDEAD
Zitat von ⇗ pappyN4 im Beitrag ¶ #6380

@diderius6 do you have PDB for 5048 acpi x86 and x64?

PDBs for longhhorn betas available on MS Symbol server since v5342
#6409kukonosau⇗ @diderius6
BSOD A5 again, sorry. (0x02,xxx,0x01,yyy)
#6410kukonosau⇗ @diderius6
Very hard work. But you are tolerant! I was been resigned.
#6411dencorso
Zitat von ⇗ diderius6 im Beitrag ¶ #6371
Here is the link from the translation of @dencorso for the installation instruction of XP from @YuriyCN

⇗ https://msfn.org/board/topic/182311-wind...comment-1194610



Thanks to DeepL, I was able to create that translation, and MSFN member gerwin has fully reformatted it and made it much more readable. If anyone here finds errors in it, please do PM me on MSFN, and I'll be glad to fix/improve it.

BTW, can one of the Russian speakers here enlighten me on a small detail? What does a "танцы с бубном" mean? Is it a "hard time"? Thanks in advance!
#6412diderius6Hi,
I tried to boot XP SP3 with the boot files from Vista, meaning without any ntldr.
But then comes message

\Windows\system32\ntkrnlpa.exe
0xc0000428
Windows cannot verify the digital signature for this file.

I tried bootice for to disable driver signature testing.
All does not help, also not F8 Disable Driver Signature Enforcement.
This is strange, because with the help from ⇗ @skullteria and ⇗ @Gelip I succeed with this in September 2019
Dietmar

PS: The version of the files is winload.exe 6.0.6002.18005 (lh_sp2rtm.090410-1830)
from post ⇗ @skullteria 31 August 2019

¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (144)
#6413diderius6This help file is from ⇗ @skullteria

Step 1:
- From my boot files or any Windows VIsta CD, copy boot folder and place on C:\
Step 2:
- From my boot files or any Windows Vista CD, copy bootmgr and place on C:\
Step 3:
- From my boot files, copy winload to your Windows XP installation, on Windows\System32
Step 4:
- Install EasyBCD, preferly version 1.7.2. I can upload to you. This program require .Net Framework 2.0.
Step 5:
- After install easyBCD, open the program, You will get some erros, only click "ok" and wait program start. The default entry presents on BCD are wrong for now, you need delete on "Add/Remove Entries" and add a new entry, on same page on "Add and entry" your choose on type combobox: "Windows Vista/longhorn", edit Name and choose drive. Next, click in "Add entry"
Step 6:
- In "Manage bootloader section (a button named, like Other what i talked), you see "Bootloader Installtion options", you choose "Reinstall The Vista bootloader", and click in "Write MBR". You can verify if it is ok on "Viwe Settings", if you added entry is ok.
Step 7:
- I recommend add a Ntldr based entry for fallback. For it, you back to Step 5 and instead choose "Windows Vista/Longhorn", you choose "Windows NT/2000/XP/2003", click em "Add Entry". For default, the entry has wrong partition. You need edit in "change Settings" section. There, you will see "Entry based settings", and select the entry what you already add (XP based). And after, choose "Drive" where is windows XP is installed (need ntldr and ntdetect.com placed there too) (for default, C:). Click em "Save Settings".
Final Step:
- If all ok, you will restart and on Windows Vista based entry you press "F8" and choose "Disable driver integrity checks" (or similar"). You will get BSOD A5 0x0000002. For debug it. you need back to easybcd, and edit settings on "Advanced Settings", choose Windows Vista based entry and mark "Debug boot process" and click and "Apply Settings"
#6414diderius6May be this strange behavior is typical for Vista. Or the whole procedure works only on Intel board z170
Dietmar

bootmgr and BCD

In Windows 2K, XP and 2K3 the three boot manager-loader files are ntldr, Ntdetect.com and boot.ini and all three are in the root of the active primary partition of the boot hard drive (the System partition). With Vista these three files have been replaced with bootmgr, BCD and winload.exe, but only bootmgr and BCD stay in the root of the system partition and winload.exe now resides in the Windows/system32 folder of the Boot partition. (Of course the system and boot partitions can be the same partition if there is no Windows dual or multiboot configured). The BCD (Boot Configuration Data) file has replaced the boot.ini file. The bootmanager function that was a part of ntldr is now carried out by bootmgr. The other functions of ntldr and those of Ntdetect.com of setting up the correct environment for Windows are now both carried out by winload.exe. The rest of the boot process remains the same, ntldr and winload are the bootloaders that start the operating system by loading ntoskrnl.exe, hal.dll and the System registry hive.


Method of Operation
In old WinNT the ntldr uses the boot.ini file to locate hard drives and partitions and a typical line for a PC/AT BIOS computer with IDE or SATA hard drives may look like this - multi(0)disk(0)rdisk(0)partition(1)\WINDOWS........ The ntldr knows from the information here that it has to go to partition number one on hard drive zero. It consults the computer's firmware (BIOS) to find out which hard drive is considered to be drive zero, then looks at the partition table on that drive to find out which partition is number one. Once it knows the location of the partition it can then find the Windows/system32 folder of the OS it has been asked to start.

In Vista the bootmgr consults the BCD file for the information it needs to find the correct drive and partition, but it does not use the firmware to find the hard drive, or the partition table to find the partition. Instead it uses the unique Disk Signature in the MBR of a hard drive and the partition offset (starting sector) of a partition.

Inside the BCD store each boot item is in its own little container (Object) and many of these Objects hold details of the disk signature of the hard drive and the starting sector of the partition where the item to be started is located. Each Object is labeled with a 32 digit alpha/numeric number called a GUID number. When bootmgr is asked to start a boot item it identifies the item's Object by its GUID number and then reads the disk signature and partition offset information that is contained in that Object. Bootmgr then scans the connected hard drives until it finds the drive with that disk signature and then jumps straight to the desired sector on that hard drive by using the partition offset information. The BIOS no longer has to be consulted to find the hard drive because bootmgr is not looking for a specific number of drive but just scanning all drives for a disk signature. The partition table on the drive does not have to be consulted because bootmgr does not need to know the number of the partition or be told where that partition is.

In some respects this new method could be seen as an improvement on how ntldr locates a drive and partition. It means that Vista is not wholly dependent on the configuration of drives and partitions remaining completely static. A change to the partition's number (by changing other partitions on the drive), or moving the position of a hard drive in the computer, will have no affect on bootmgr's ability to start any Vista OS that a BCD Object holds valid signature and offset information for. Of course bootmgr will still have to be on the boot hard drive, or even a boot floppy, but the OS itself can have its partition number changed or its hard drive moved in the machine. As long as the disk signature on a hard drive and the starting offset of the Vista partition still matches the ones in the Object, then bootmgr will find the OS. (If you are using the Vista bootmanager to dual or multiboot with an earlier WinNT OS then you will still need to update its boot.ini after configuration changes.)


Moving Vista
There is a definite downside to this new arrangement for anyone who wants to move an install of Vista to another partition or hard drive. If either the signature or offset on the drive no longer match those that were written into an Object, then bootmgr will not be able to find the bootloader and so will give the error message that "winload.exe.....is missing or corrupt". (For Windows 7 see winload.exe....is no longer missing). Of course winload.exe is in perfect working order and located where it should be within the OS, it is just that bootmgr is getting the wrong numbers from the Object on where to look for it. The information in the Object will need to be updated to correctly reflect new signature and offset details. If you are using the Microsoft bootmanager and just have a simple set up of no more than a dual or maybe triple boot then the auto-repair from the Vista DVD might do this for you, that is if you have a full Vista DVD. For the slightly more able computer user the bootrec.exe tool can be used, and for the real experts there is the command line BCDEdit.exe tool. If you are using a third-party bootmanager and your Windows installs are all independent then the DVD Auto Repair would be best avoided as it will try to configure the Windows bootmanager. (If you don't know what I mean by 'Independent' then try the guide here). How to use BCDEdit.exe to update the BCD is explained on the cloning page.
You can also find an updated article on this topic here.
#6415Gelip⇗ @diderius6

Zitat von ⇗ diderius6 im Beitrag ¶ #6412
Hi,
I tried to boot XP SP3 with the boot files from Vista, meaning without any ntldr.
But then comes message

\Windows\system32\ntkrnlpa.exe
0xc0000428
Windows cannot verify the digital signature for this file.

I tried bootice for to disable driver signature testing.
All does not help, also not F8 Disable Driver Signature Enforcement.
This is strange, because with the help from @skullteria and @Gelip I succeed with this in September 2019
Dietmar

PS: The version of the files is winload.exe 6.0.6002.18005 (lh_sp2rtm.090410-1830)
from post @skullteria 31 August 2019

¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (144)

Digital signature checking is only available on 64-bit systems. To boot WinXP 32-bit you need 32-bit Windows Boot Manager - bootmgr, Windows Boot Loader winload.exe from Vista Beta Longhorn 5219 32-bit and boot.ini with /usenewloader option - no BCD needed.
If the partitions on the disk were created using the WinXP installer, run WinPE from DVD/ISO Win7 and execute the CMD command (Shift+F10), which will add an entry in the PBR partition to load the bootmgr file:

bootrec /fixboot
   

Of course you have to delete or rename the ntldr file to e.g. ntldr.bak
If we do not copy the winload.exe file to \WINDOWS\system32 it will be an error:


Files from Vista Beta 5219: Gelip has attached files to this post
#6416infuscomusDoes anyone want to help update with the acpi.sys source code? or should I go it alone?
#6417diderius6⇗ @Gelip
Thanks a lot for help.
I am just trying. The aim of this is to test,
if the very last version of ewf.sys can give about 2.3 Gbyte ram for overlay free also on XP SP3
Dietmar
#6418diderius6⇗ @Gelip

I do all the steps you write,
use only your files and add entry /usenewloader to boot.ini .
With Win7 CD I wrote from its commandline X:\Sources\bootrec /FixBoot
I rename ntldr to ntldrrr.
Now I get message

BlInitializelibrary failed 0xc0000017

So, help is welcome
Dietmar
#6419Gelip⇗ @diderius6
Do you have WinXP on one NTFS partition? Show me what your boot.ini looks like. Temporarily rename the files and restart WinXP:

  • ntldr -> ntldr_old
  • bootmgr -> bootmgr.old
  • winload.exe -> winload.old

If you get an error: BOOTMGR is missing. Press Ctrl+Alt+Del to restart - it means you have successfully executed the bootrec /fixboot command
#6420Gelip⇗ @diderius6
Delete Boot folder with BCD file from partition or add to boot.ini NOBCD parameter:

 
[boot loader]
timeout=30
NOBCD
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usenewloader

 

Page 429

#6421diderius6⇗ @Gelip
I set up everything new.
Exact the same message appears
BlInitializelibrary failed 0xc0000017

When I rename the files to

   ntldr -> ntldr_old
   bootmgr -> bootmgr.old
   winload.exe -> winload.old

I get message
BOOTMGR is missing. Press Ctrl+Alt+Del to restart

Dietmar

PS: I have done this before on the Gigabyte board h110m, XP SP3 and XP64 I can boot there without any ntldr.
This is a Skylake board.

But on the Coffeelake board Fatal1ty Z370 Gaming K6 it fails with the message above.
#6422Gelip⇗ @diderius6
Are there original files in the WinXP system or are you modified acpi.sys, modded-USB, modded-AHCI etc. ???
#6423Gelip@diderius
I had the same error as I tried to boot WinXP 64-bit with winload.efi from Vista Beta2 5384 when I added the /maxmem switch in boot.ini:
⇗ https://www.betaarchive.com/forum/viewto...=433688#p433688
I also found this: ⇗ https://www.betaarchive.com/forum/viewto...=389728#p389728
Samuka wrote:

Zitat
Unfortunatly, the problem resides on Bootmgr and winload from 5048-5270 Vista builds.
#6424George King
Zitat von ⇗ diderius6 im Beitrag ¶ #6412
Hi,
I tried to boot XP SP3 with the boot files from Vista, meaning without any ntldr.
But then comes message

\Windows\system32\ntkrnlpa.exe
0xc0000428
Windows cannot verify the digital signature for this file.

I tried bootice for to disable driver signature testing.
All does not help, also not F8 Disable Driver Signature Enforcement.
This is strange, because with the help from @skullteria and @Gelip I succeed with this in September 2019
Dietmar

PS: The version of the files is winload.exe 6.0.6002.18005 (lh_sp2rtm.090410-1830)
from post @skullteria 31 August 2019

¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (144)


I would like to see this working too. I found this interesting notes about patching winload.exe. Maybe you can patch it too. This can be very nice addition to XP2ESD

 
//Disable PatchGuard - the easy/lazy way.
//for Vista SP2 & Windows 7 (X64)
//
//by Fyyre (thank you Roxaz for helping me to test)
//http://fyyre.l2-fashion.de/
//http://twitter.com/Fyyre

last update: 19/03/2011

This txt file provides a general overview/outline for bypassing signature validation of critical system files (ntoskrnl, mainly) during the Vista/Win 7 boot phase. It is documentation of the steps taken from start to finish, to reach the desired goal of removing kernel patch protection "PatchGuard" without use of a driver. We will call this the 'lazy/easy' way to kill PatchGuard.

We cannot modify ntoskrnl without winload taking up issue...

winload.exe is the Windows loader for Vista & Windows 7. Along with this, he makes some verification of digital signatures and
checking to make sure the files have not been modified. If modification of ntoskrnl is detected, the result is winload *refusing*
to boot Windows and launching a WinPE looking "Recovery Mode".

PART I { additional }: new way for patch of winload.exe

Function ImgpValidateImageHash - signature we locate: 8B C3 49 8B 5B 20 49 8B 73 28 49 8B 7B 30 4D 8B -- you may play with this one to make him smaller. as for this patching, use of dUP2... size of not a concern. First bytes replaced with xor eax, eax (STATUS_SUCCESS) .. all validations successful.

PART I: disassembly and modification of winload.exe

Starting from OslpMain, after loading the System registry hives(registry)... occurs a call to OslInitializeCodeIntegrity:

.text:00000000004016C3 call OslpLoadSystemHive
.text:00000000004016C3
.text:00000000004016C8 cmp eax, ebx
.text:00000000004016CA mov edi, eax
.text:00000000004016CC jl loc_401A08
.text:00000000004016CC
.text:00000000004016D2 mov ecx, ebp
.text:00000000004016D4 call OslInitializeCodeIntegrity <<-- =(


.text:00000000004057E8 OslInitializeCodeIntegrity proc near

original code -->>

We will replace four bytes here:

48 8B C4 53
.text:00000000004057E8 mov rax, rsp
.text:00000000004057EB push rbx
.text:00000000004057EC push rbp


with: 0B0h, 01h, 0C3h, 090h ... which produce:

mov al, 1
ret
nop

Save as winload.exe as osloader.exe (or whatever..) & correct PE checksum (LordPE and/or CFF_Explorer will do). Copy osloader.exe to \Windows\System32

PART II - new BCD entry:

bcdedit /copy {current} /d "PatchGuard Disabled"

"The entry was successfully copied to {01234567-89ab-cdef-00ff-fff000ffffff}" <<-- GUID of new entry. each is different!

bcdedit /timeout 10 <<-- number of seconds to show boot menu.

bcdedit /set {01234567-89ab-cdef-00ff-fff000ffffff} nointegritychecks 1 <<-- no validation of winload

bcdedit /set {01234567-89ab-cdef-00ff-fff000ffffff} recoveryenabled 0 <<-- optional... i dislike this feature, therefore disable.

bcdedit /set {01234567-89ab-cdef-00ff-fff000ffffff} path \Windows\system32\osloader.exe

bcdedit /set {01234567-89ab-cdef-00ff-fff000ffffff} kernel ntkrnlmp.exe (name of modified ntos... =))

Part III: Skip Initialization of PatchGuard - - (driver not required)

As for this .txt, and PatchGuard... we are concerned with one function KiInitializePatchGuard(*1) which is called by KiFilterFiberContext.
KiInitializePatchGuard is a very large function located in the INIT section of ntoskrnl, you can easily locate him via two calls from KiFilterFiberContext, by examination xrefs to exported dword InitSafeBootMode, searching for db 20h dup(90h) + db 044h ... or 48 81 EC 58 0F 00 00 to
name a few...

PatchGuard does not initialize if we boot into safe mode. So to disable we just patch one conditional jxx

KiInitializePatchGuard:

original code -->>
INIT:000000014055D359 sub rsp, 0F58h
INIT:000000014055D360 xor edi, edi
INIT:000000014055D362 cmp cs:InitSafeBootMode, edi
INIT:000000014055D368 jz short loc_14055D371
INIT:000000014055D368
INIT:000000014055D36A mov al, 1
INIT:000000014055D36C jmp loc_1405600D9

modified code -->>
INIT:000000014055D359 sub rsp, 0F58h
INIT:000000014055D360 xor edi, edi
INIT:000000014055D362 cmp cs:InitSafeBootMode, edi
INIT:000000014055D368 nop
INIT:000000014055D369 nop
INIT:000000014055D36A mov al, 1
INIT:000000014055D36C jmp loc_1405600D9 <<-- to end of KiInitializePatchGuard

and back to KiFilterFiberContext... and important detail:

The first jxx in KiInitializePatchGuard must not be taken & al == 1. When we return to KiFilterFiberContext, the jxx must be taken, and EBX must not be xor'd ... (unless enjoy BSOD).

INIT:0000000140567110 loc_140567110:
INIT:0000000140567110 test al, al
INIT:0000000140567112 jnz short loc_140567116
INIT:0000000140567112
INIT:0000000140567114
INIT:0000000140567114 loc_140567114:
INIT:0000000140567114 xor ebx, ebx <<-- bad
INIT:0000000140567114

Anyways... nop the first jxx in KiInitializePatchGuard... save modified ntoskrnl.exe with a different name (i.e. ntkrnlmp.exe) ... fix checksum (PE header).
Then copy your modified kernel to \Windows\system32 -- with bcdedit -->>

bcdedit /set {guid-of-new-entry} kernel ntkrnlmp.exe

When you reboot the system, loading your modified kernel should be a success... He will load without PatchGuard initializing, which will allow you to
once again play in kernel mode without receiving BSOD as result...

This could be worked into mbr bootkit code as well... this is beyond the scope of our intention.

-Fyyre

references:
*1: Bypassing PatchGuard on Windows x64, by Skywing 12/1/2005
[TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6425Gelip⇗ @George King
Yes, I did it:
⇗ https://www.betaarchive.com/forum/viewto...=445111#p445111
⇗ https://www.betaarchive.com/forum/viewto...=445204#p445204
#6426George King⇗ @Gelip

Cool, I'm downloading 6.0.6001.16497/6.0.6001.16497.longhorn_beta3.070330-1720_x86fre_server-multisku_retail_en-us ISO right now to grab needed files.
I want to get rid of boot.ini. Is it possible to boot inly with bootmgr + bcd + patched winload? Are there any needed steps?

[TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6427diderius6⇗ @skullteria ⇗ @Gelip ⇗ @George King

In 3. attempt I get it to work again on the Gigabyte H110M board.
XP SP3 booted with original winload.exe 6.0.6002.18005 (lh_sp2rtm.090410-1830) from Vista SP2 32 bit
as you can see on the photos. Later I rename ntldr --> ntldrrr .
I use for this only naked XP SP3 install via original CD(!) ONLY with acpi.sys from outerspace )
and the Sata driver 1006 from fernando on it.

Dietmar

PS:You need to keep the signature of the harddisk for Vista bootloader.
For this you can delete key Mounted Devices in registry HKLM\System\MountedDevices.
And then boot XP normal again before any changes.
XP searches then alone for the correct signature of its harddsik and find it and rebuild key MountedDevices.
This important step is needed and works also for ewf.sys .

In easyBCD is always a wrong letter U: for the Vista boot entry listed.

You have to store it again and again until the letter C: appears also for the vista boot entry.
Also I rewrite MBR 5 times with easyBCD. Boottime to full desktop via Western Digital black 2TB is 3 sec.





#6428George King
Zitat von ⇗ Gelip im Beitrag ¶ #6425
@George King
Yes, I did it:
⇗ https://www.betaarchive.com/forum/viewto...=445111#p445111
⇗ https://www.betaarchive.com/forum/viewto...=445204#p445204


I opened winload.exe 6.0.6001.16497 (longhorn_beta3.070330-1720) using HxD and searched for 48 8B C4 53 as you mentioned to replace it with B0 01 C3 90. I can't find it. Can please share patched files? [TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6429diderius6I do not succeed to transfer this xp from
H110M ---> Asrock Fatalty gaming k6.
After fight with the Iastor driver I can use the bootmenue from Vista
and choosing XP via ntldr starts normal, recognicing a lot of new drivers.
But when I choose the Vista entry in the bootmenue,
it starts also normal but then hangs with black screen.
I also rebuild with easyBCD the old ntldr MBR, works.
But when I then install again the MBR for Vista,
exact the same happens as before, XP via ntldr starts
but via winload.exe hangs
Dietmar
#6430Gelip⇗ @George King

Zitat von ⇗ George King im Beitrag ¶ #6426

Is it possible to boot inly with bootmgr + bcd + patched winload?

Yes, but what for? Signature checking is only available on 64-bit Windows.

My patched files are from 64-bit beta Longhorn 2008 6.0.6001.16497, not 32-bit. In 32-bit files, nothing needs to be patched because there is no signature checking there.

⇗ @diderius6
Zitat von ⇗ diderius6 im Beitrag ¶ #6427

XP SP3 booted with original winload.exe 6.0.6002.18005 (lh_sp2rtm.090410-1830) from Vista SP2 32 bit

Checking signature in Windows 32-bit - WTF ???

⇗ Test Signing
#6431skullteria
Zitat von ⇗ Gelip im Beitrag ¶ #6430
@George King
Zitat von ⇗ George King im Beitrag ¶ #6426

Is it possible to boot inly with bootmgr + bcd + patched winload?

Yes, but what for? Signature checking is only available on 64-bit Windows.

My patched files are from 64-bit beta Longhorn 2008 6.0.6001.16497, not 32-bit. In 32-bit files, nothing needs to be patched because there is no signature checking there.

@diderius6
Zitat von ⇗ diderius6 im Beitrag ¶ #6427

XP SP3 booted with original winload.exe 6.0.6002.18005 (lh_sp2rtm.090410-1830) from Vista SP2 32 bit

Checking signature in Windows 32-bit - WTF ???

⇗ Test Signing


No, Digital Certificate Signature for kernel files is required on x86 too. winload must be patched on if you use a original kernel, i have a method to work without patch winload
#6432diderius6⇗ @skullteria

"i have a method to work without patch winload"

Please tell how.
And can you boot via this methode also brandnew motherboards, with the files from Vista SP2
Dietmar
#6433George King
Zitat von ⇗ diderius6 im Beitrag ¶ #6432
@skullteria

"i have a method to work without patch winload"

Please tell how.
And can you boot via this methode also brandnew motherboards, with the files from Vista SP2
Dietmar




I think we still need to patch winload if we want to patch kernel to support more RAM.
I see there is function _ImgpValidateImageHash like in mentioned document I posted on previous page. I'm not able to patch it..

Also I have modded BCD to have 2 options - Legacy using ntldr + boot.ini and new option for winload. Here is whole set of files - Vista SP2. All other 23 languages should be added too.
Can you patch winload?

Btw, this cannot solve kernel and hal detection... For this purpose is still needed Longhor NTLDR + boot.ini with /detectHAL and dtecthal.inf inside Windows\inf


EDIT: Here are some useful informations, patching winload seems like only one perfect solution
 
https://www.iasj.net/iasj/download/40eb00455c0a5a1f



EDIT2: DetectHAL can be set by BCD

 
https://www.geoffchappell.com/notes/windows/boot/bcd/osloader/detecthal.htm
George King has attached files to this post [TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6434diderius6I take a look,
why this bootmethode not works until now on Coffeelake board Asrock z370 Fatalty k6.
I identify

PFN_LIST_CORRUPT

Bsod 0x0000004E (0x0000008F, 0x00000FB1, 0x0008E6B1, 0x00000000)

Never seen before
Dietmar

PS: It depends not on memory size. I change the 32 Gbyte against the 4 Gbyte stick form the H110M board, same Bsod.

⇗ https://docs.microsoft.com/en-us/windows...fn-list-corrupt

It is in zeropage.c
PageFrame = MmFreePageListHead.Flink;
ASSERT (PageFrame != MM_EMPTY_LIST);

Pfn1 = MI_PFN_ELEMENT(PageFrame);

NewPage = MiRemoveAnyPage(MI_GET_COLOR_FROM_LIST_ENTRY(PageFrame, Pfn1));
if (NewPage != PageFrame) {

//
// Someone has removed a page from the colored lists
// chain without updating the freelist chain.
//

KeBugCheckEx (PFN_LIST_CORRUPT,
0x8F,
NewPage,
PageFrame,
0);
}
#6435diderius6I succeed to enable the very last ewf.sys from win 7.1 bit32 Version 1.0.1533.0 (win7sp1_ldr.160325-0600)
with XP SP3.
No matter, if you use Vista boot with winload.exe or classic ntldr,
the limit of ram overlay is always about 719 MByte.
But this new ewf.sys seems to be more stable than the ewf.sys from XP embedded.
And this ewf.sys from win7 Bit32 still works together with ewfmgr.exe from XP Embedded.

For to make it work under XP SP3, you have to build a new ewf.reg
and you need to put in your correct "DiskSignature" and "PartitionOffset".
The old ewf.reg from XP Embedded does not work any longer. Because now the disksignature and the partitionsoffset
have to be given. I have no idea how this can work any longer with floppy or other changeable media without those values.
The old ewf.sys from XP Embedded can(!) work with changeable medium.

For to start, you have to change "Enabled"=dword:00000000 ---> "Enabled"=dword:00000001

Dietmar

⇗ https://ufile.io/jx84ajtd
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F}]
"UpperFilters"="Ewf"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf]
"ErrorControl"=dword:00000001
"Group"="System Bus Extender"
"Start"=dword:00000000
"Type"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf\Parameters]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf\Parameters\Protected]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ewf\Parameters\Protected\Volume0]
"Type"=dword:00000001
"ArcName"="multi(0)disk(0)rdisk(0)partition(1)"
"Enabled"=dword:00000000
"CompareBeforeAlloc"=dword:00000000
"DiskSignature"=dword:db4c1922
"PartitionOffset"=dword:00100000

 

Page 430

#6436Mov AX, 0xDEAD
Zitat von ⇗ dencorso im Beitrag ¶ #6411
What does a "танцы с бубном" mean? Is it a "hard time"?

"танцы с бубном" = "shaman dance"  - making something unfinished/untrivial/bugged/incompatible to work well
#6437gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6434
I take a look,
why this bootmethode not works until now on Coffeelake board Asrock z370 Fatalty k6.
I identify

PFN_LIST_CORRUPT
⇗ @diderius6 ...could this have something to do with PAE? Don't know if this helps, some of it is on Chinese. However, it references some windbg commands related to memory.

⇗ https://www.programmersought.com/article/44473588910/

Another link with references to windbg usage for memory.

⇗ http://www.cs.umd.edu/~waa/412-F10/Lab3.pdf
#6438diderius6⇗ @gordo999

This Bsod PFN_LIST_CORRUPT is a really strange error.
The place is in C-Code, where I write above.
It seems to happen on nearly all newer motherboards,
but not always on all.
It happens only with the use of the Vista SP2 bootloader.
I read, that somebody thinks it can be because of corrupt ram.
This is not true, XP SP3 booted via ntldr never shows this behavior
Dietmar
#6439gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6438
I read, that somebody thinks it can be because of corrupt ram.
This is not true, XP SP3 booted via ntldr never shows this behaviorDietmar
⇗ @diderius6 ...corrupt RAM is unlikely if it only happens during certain procedures. If you have multiple memory cards you can swap them around. If their is corruption the symptoms will change. If the corruption is in the first board into which the OS is loaded, you will likely see boot errors, or no boot at all.

I should have spent more time learning the Windows memory system but it can become quite complex. The problem is the difference between virtual memory and physical memory. The fact that you have pages of memory at all shows you how much memory is paged out to disk. While tracing through memory, I have encountered pages missing, meaning they have been swapped to disk. You must reload them before proceeding or the OS doesn't like it.

That's why I asked if it might be related to a PAE mod.
#6440gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6438
It happens only with the use of the Vista SP2 bootloader.
⇗ @diderius6 ...an idea. During boot, some firmware is read and moved to RAM. At that point, I'd think the memory address where it is loaded is static, that is, hard coded into the firmware code. During the boot process, before the OS loads, or even the loader, the RAM is initialized. I think it is initiliazed to all zeros.

There may be a difference between the Vista loading addresses and procedure than with other OSes. Maybe the address it needs to load it's firmware code is not available for some reason. It could be damaged memory but it could be something else as well. Your paging system is working, however, which means to me that you're past the boot stage and into the OS loading by ntoskrnl. That would suggest there is a problem with ntoskrnl or a related module since it controls the memory manager.

Do you see any evidence of Windows loading, like the 'Windows is loading..." message? How far into the boot process do you get before receiving the error? Also, are you running a pagefile and is there a pointer to it in your system configuration files? Is the pagefile large enough? The system may be trying to write to a pagefile that isn't there.
#6441gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6434
PFN_LIST_CORRUPT
@diderius6... something else worth a try. I was trying to install Hiren's Boot Disk on W7 and it normally won't work on  a newer mobo/chipset due to the same issues we have encountered. The error I got was 0xC0000017, which is related to PFNs but it is caused by memory blocks being marked by Windows as bad.

To check this, open a command window as admin and type 'bcdedit /enum all' (no quotes). If Windows has marked certain blocks as bad, you should see sections like {badmemory} with the memory addresses listed. A solution offered for my BCD file is to use:

bcdedit /deletevalue {badmemory} badmemorylist

Don't know if this is related to your problem but it might be. The problem I am having is related to Hiren's using a ramdisk. The ramdisk needs contiguous memory, meaning it cannot tolerate missing blocks of memory. This version of Hiren's is updated so it will run on mini Win7 or XP. The older versions only ran on mini XP. When I tried the XP version I got an acpi 0xA5 error, and I said, "I know how to fix that"...acpi from outer space!!!  . I may have to fix their XP version so it will run. Don't know why I'm having problems with the W7 version that is memory related and producing an 0xC0000017 boot error. Tells me I don't have enough memory and I have 8 gigs.

⇗ https://borncity.com/win/2017/10/06/wind...ramdisk-memory/
#6442Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6438
@gordo999
It happens only with the use of the Vista SP2 bootloader.
I read, that somebody thinks it can be because of corrupt ram.


Hi All,

i think this is logical corruption due miscompatible bootloader structs
best way is inject little code for change format from vista to xp/2003 before starting ntoskrnl.exe
#6443infuscomus⇗ @Mov AX, 0xDEAD

Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #6442
best way is inject little code for change format from vista to xp/2003


what do you need to inject?
#6444George KingIf anybody interested in winload.exe patching. I can provide ISO created by XP2ESD for testing that automatically have 2 boot options in BCD. Legacy ntldr and winload that causing BSOD.

Winload will be very good adition, because writing correct boot.ini is always pain.

P.S. PM me for ISO

[TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6445Mov AX, 0xDEAD
Zitat von ⇗ infuscomus im Beitrag ¶ #6443
@Mov AX, 0xDEAD
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #6442
best way is inject little code for change format from vista to xp/2003

what do you need to inject?

Hi infuscomus,

ntldr/winload fill _LOADER_PARAMETER_BLOCK and start ntoskrnl.exe with this structure as first argument
after checking Vista vs XP i've changed mind - there is no significal difference, struct almost same, BSOD has other unknow source

_LOADER_PARAMETER_BLOCK Vista has more fields at end
struct _LOADER_PARAMETER_BLOCK// Size=0x7c
{
struct _LIST_ENTRY LoadOrderListHead;// Offset=0x0 Size=0x8
struct _LIST_ENTRY MemoryDescriptorListHead;// Offset=0x8 Size=0x8
struct _LIST_ENTRY BootDriverListHead;// Offset=0x10 Size=0x8
unsigned long KernelStack;// Offset=0x18 Size=0x4
unsigned long Prcb;// Offset=0x1c Size=0x4
unsigned long Process;// Offset=0x20 Size=0x4
unsigned long Thread;// Offset=0x24 Size=0x4
unsigned long RegistryLength;// Offset=0x28 Size=0x4
void *RegistryBase;// Offset=0x2c Size=0x4
struct _CONFIGURATION_COMPONENT_DATA *ConfigurationRoot;// Offset=0x30 Size=0x4
char *ArcBootDeviceName;// Offset=0x34 Size=0x4
char *ArcHalDeviceName;// Offset=0x38 Size=0x4
char *NtBootPathName;// Offset=0x3c Size=0x4
char *NtHalPathName;// Offset=0x40 Size=0x4
char *LoadOptions;// Offset=0x44 Size=0x4
struct _NLS_DATA_BLOCK *NlsData;// Offset=0x48 Size=0x4
struct _ARC_DISK_INFORMATION *ArcDiskInformation;// Offset=0x4c Size=0x4
void *OemFontFile;// Offset=0x50 Size=0x4
struct _SETUP_LOADER_BLOCK *SetupLoaderBlock;// Offset=0x54 Size=0x4
struct _LOADER_PARAMETER_EXTENSION *Extension;// Offset=0x58 Size=0x4
union <unnamed-tag> u;// Offset=0x5c Size=0xc
struct _FIRMWARE_INFORMATION_LOADER_BLOCK FirmwareInformation;// Offset=0x68 Size=0x14
};

struct _LOADER_PARAMETER_BLOCK// Size=0x68
{
struct _LIST_ENTRY LoadOrderListHead;// Offset=0x0 Size=0x8
struct _LIST_ENTRY MemoryDescriptorListHead;// Offset=0x8 Size=0x8
struct _LIST_ENTRY BootDriverListHead;// Offset=0x10 Size=0x8
unsigned long KernelStack;// Offset=0x18 Size=0x4
unsigned long Prcb;// Offset=0x1c Size=0x4
unsigned long Process;// Offset=0x20 Size=0x4
unsigned long Thread;// Offset=0x24 Size=0x4
unsigned long RegistryLength;// Offset=0x28 Size=0x4
void *RegistryBase;// Offset=0x2c Size=0x4
struct _CONFIGURATION_COMPONENT_DATA *ConfigurationRoot;// Offset=0x30 Size=0x4
char *ArcBootDeviceName;// Offset=0x34 Size=0x4
char *ArcHalDeviceName;// Offset=0x38 Size=0x4
char *NtBootPathName;// Offset=0x3c Size=0x4
char *NtHalPathName;// Offset=0x40 Size=0x4
char *LoadOptions;// Offset=0x44 Size=0x4
struct _NLS_DATA_BLOCK *NlsData;// Offset=0x48 Size=0x4
struct _ARC_DISK_INFORMATION *ArcDiskInformation;// Offset=0x4c Size=0x4
void *OemFontFile;// Offset=0x50 Size=0x4
struct _SETUP_LOADER_BLOCK *SetupLoaderBlock;// Offset=0x54 Size=0x4
struct _LOADER_PARAMETER_EXTENSION *Extension;// Offset=0x58 Size=0x4
union __unnamed u;// Offset=0x5c Size=0xc
};

union <unnamed-tag>// Size=0xc
{
union // Size=0xc
{
struct _I386_LOADER_BLOCK I386;// Offset=0x0 Size=0xc
struct _ALPHA_LOADER_BLOCK Alpha;// Offset=0x0 Size=0x4
struct _IA64_LOADER_BLOCK Ia64;// Offset=0x0 Size=0x4
};
};

LoadOrderListHead = KLDR_DATA_TABLE_ENTRY
MemoryDescriptorListHead = MEMORY_ALLOCATION_DESCRIPTOR
BootDriverListHead = BOOT_DRIVER_LIST_ENTRY


_CONFIGURATION_COMPONENT_DATA full match
struct _CONFIGURATION_COMPONENT_DATA// Size=0x34
{
struct _CONFIGURATION_COMPONENT_DATA *Parent;// Offset=0x0 Size=0x4
struct _CONFIGURATION_COMPONENT_DATA *Child;// Offset=0x4 Size=0x4
struct _CONFIGURATION_COMPONENT_DATA *Sibling;// Offset=0x8 Size=0x4
struct _CONFIGURATION_COMPONENT ComponentEntry;// Offset=0xc Size=0x24
void *ConfigurationData;// Offset=0x30 Size=0x4
};

struct _CONFIGURATION_COMPONENT_DATA// Size=0x34
{
struct _CONFIGURATION_COMPONENT_DATA *Parent;// Offset=0x0 Size=0x4
struct _CONFIGURATION_COMPONENT_DATA *Child;// Offset=0x4 Size=0x4
struct _CONFIGURATION_COMPONENT_DATA *Sibling;// Offset=0x8 Size=0x4
struct _CONFIGURATION_COMPONENT ComponentEntry;// Offset=0xc Size=0x24
void *ConfigurationData;// Offset=0x30 Size=0x4
};


_CONFIGURATION_COMPONENT full match
struct _CONFIGURATION_COMPONENT// Size=0x24
{
enum _CONFIGURATION_CLASS Class;// Offset=0x0 Size=0x4
enum _CONFIGURATION_TYPE Type;// Offset=0x4 Size=0x4
struct _DEVICE_FLAGS Flags;// Offset=0x8 Size=0x4
unsigned short Version;// Offset=0xc Size=0x2
unsigned short Revision;// Offset=0xe Size=0x2
unsigned long Key;// Offset=0x10 Size=0x4
unsigned long AffinityMask;// Offset=0x14 Size=0x4
unsigned long ConfigurationDataLength;// Offset=0x18 Size=0x4
unsigned long IdentifierLength;// Offset=0x1c Size=0x4
char *Identifier;// Offset=0x20 Size=0x4
};

struct _CONFIGURATION_COMPONENT// Size=0x24
{
enum _CONFIGURATION_CLASS Class;// Offset=0x0 Size=0x4
enum _CONFIGURATION_TYPE Type;// Offset=0x4 Size=0x4
struct _DEVICE_FLAGS Flags;// Offset=0x8 Size=0x4
unsigned short Version;// Offset=0xc Size=0x2
unsigned short Revision;// Offset=0xe Size=0x2
unsigned long Key;// Offset=0x10 Size=0x4
unsigned long AffinityMask;// Offset=0x14 Size=0x4
unsigned long ConfigurationDataLength;// Offset=0x18 Size=0x4
unsigned long IdentifierLength;// Offset=0x1c Size=0x4
char *Identifier;// Offset=0x20 Size=0x4
};


_NLS_DATA_BLOCK full match
struct _NLS_DATA_BLOCK// Size=0xc
{
void *AnsiCodePageData;// Offset=0x0 Size=0x4
void *OemCodePageData;// Offset=0x4 Size=0x4
void *UnicodeCaseTableData;// Offset=0x8 Size=0x4
};

struct _NLS_DATA_BLOCK// Size=0xc
{
void *AnsiCodePageData;// Offset=0x0 Size=0x4
void *OemCodePageData;// Offset=0x4 Size=0x4
void *UnicodeCaseTableData;// Offset=0x8 Size=0x4
};


_ARC_DISK_INFORMATION full match

_SETUP_LOADER_BLOCK - probably match (used only at installation stage ???)

_LOADER_PARAMETER_EXTENSION - Vista has more fields at end
struct _LOADER_PARAMETER_EXTENSION// Size=0x84
{
unsigned long Size;// Offset=0x0 Size=0x4
struct _PROFILE_PARAMETER_BLOCK Profile;// Offset=0x4 Size=0x10
unsigned long MajorVersion;// Offset=0x14 Size=0x4
unsigned long MinorVersion;// Offset=0x18 Size=0x4
void *EmInfFileImage;// Offset=0x1c Size=0x4
unsigned long EmInfFileSize;// Offset=0x20 Size=0x4
void *TriageDumpBlock;// Offset=0x24 Size=0x4
unsigned long LoaderPagesSpanned;// Offset=0x28 Size=0x4
struct _HEADLESS_LOADER_BLOCK *HeadlessLoaderBlock;// Offset=0x2c Size=0x4
struct _SMBIOS_TABLE_HEADER *SMBiosEPSHeader;// Offset=0x30 Size=0x4
void *DrvDBImage;// Offset=0x34 Size=0x4
unsigned long DrvDBSize;// Offset=0x38 Size=0x4
struct _NETWORK_LOADER_BLOCK *NetworkLoaderBlock;// Offset=0x3c Size=0x4
unsigned char *HalpIRQLToTPR;// Offset=0x40 Size=0x4
unsigned char *HalpVectorToIRQL;// Offset=0x44 Size=0x4
struct _LIST_ENTRY FirmwareDescriptorListHead;// Offset=0x48 Size=0x8
void *AcpiTable;// Offset=0x50 Size=0x4
unsigned long AcpiTableSize;// Offset=0x54 Size=0x4
unsigned long BootViaWinload:1;// Offset=0x58 Size=0x4 BitOffset=0x0 BitSize=0x1
unsigned long Reserved:31;// Offset=0x58 Size=0x4 BitOffset=0x1 BitSize=0x1f
struct _LOADER_PERFORMANCE_DATA *LoaderPerformanceData;// Offset=0x5c Size=0x4
struct _LIST_ENTRY BootApplicationPersistentData;// Offset=0x60 Size=0x8
void *WmdTestResult;// Offset=0x68 Size=0x4
struct _GUID BootIdentifier;// Offset=0x6c Size=0x10
unsigned long ResumePages;// Offset=0x7c Size=0x4
void *DumpHeader;// Offset=0x80 Size=0x4

};

struct _LOADER_PARAMETER_EXTENSION// Size=0x40
{
unsigned long Size;// Offset=0x0 Size=0x4
struct _PROFILE_PARAMETER_BLOCK Profile;// Offset=0x4 Size=0x10
unsigned long MajorVersion;// Offset=0x14 Size=0x4
unsigned long MinorVersion;// Offset=0x18 Size=0x4
void *InfFileImage;// Offset=0x1c Size=0x4
unsigned long InfFileSize;// Offset=0x20 Size=0x4
void *TriageDumpBlock;// Offset=0x24 Size=0x4
unsigned long LoaderPagesSpanned;// Offset=0x28 Size=0x4
struct _HEADLESS_LOADER_BLOCK *HeadlessLoaderBlock;// Offset=0x2c Size=0x4
struct _SMBIOS_TABLE_HEADER *SMBiosEPSHeader;// Offset=0x30 Size=0x4
void *DrvDBImage;// Offset=0x34 Size=0x4
unsigned long DrvDBSize;// Offset=0x38 Size=0x4
struct _NETWORK_LOADER_BLOCK *NetworkLoaderBlock;// Offset=0x3c Size=0x4
};


_I386_LOADER_BLOCK full match
struct _I386_LOADER_BLOCK// Size=0xc
{
void *CommonDataArea;// Offset=0x0 Size=0x4
unsigned long MachineType;// Offset=0x4 Size=0x4
unsigned long VirtualBias;// Offset=0x8 Size=0x4
};

struct _I386_LOADER_BLOCK// Size=0xc
{
void *CommonDataArea;// Offset=0x0 Size=0x4
unsigned long MachineType;// Offset=0x4 Size=0x4
unsigned long VirtualBias;// Offset=0x8 Size=0x4
};


_KLDR_DATA_TABLE_ENTRY mismatch, LoadedImports shifted
struct _KLDR_DATA_TABLE_ENTRY// Size=0x54
{
struct _LIST_ENTRY InLoadOrderLinks;// Offset=0x0 Size=0x8
void *ExceptionTable;// Offset=0x8 Size=0x4
unsigned long ExceptionTableSize;// Offset=0xc Size=0x4
void *GpValue;// Offset=0x10 Size=0x4
struct _NON_PAGED_DEBUG_INFO *NonPagedDebugInfo;// Offset=0x14 Size=0x4
void *DllBase;// Offset=0x18 Size=0x4
void *EntryPoint;// Offset=0x1c Size=0x4
unsigned long SizeOfImage;// Offset=0x20 Size=0x4
struct _UNICODE_STRING FullDllName;// Offset=0x24 Size=0x8
struct _UNICODE_STRING BaseDllName;// Offset=0x2c Size=0x8
unsigned long Flags;// Offset=0x34 Size=0x4
unsigned short LoadCount;// Offset=0x38 Size=0x2
unsigned short __Unused5;// Offset=0x3a Size=0x2
void *SectionPointer;// Offset=0x3c Size=0x4
unsigned long CheckSum;// Offset=0x40 Size=0x4
unsigned long CoverageSectionSize;// Offset=0x44 Size=0x4
void *CoverageSection;// Offset=0x48 Size=0x4
void *LoadedImports;// Offset=0x4c Size=0x4
void *PatchInformation;// Offset=0x50 Size=0x4
};

struct _KLDR_DATA_TABLE_ENTRY// Size=0x4c
{
struct _LIST_ENTRY InLoadOrderLinks;// Offset=0x0 Size=0x8
void *__Unused1;// Offset=0x8 Size=0x4
void *__Unused2;// Offset=0xc Size=0x4
void *__Unused3;// Offset=0x10 Size=0x4
struct _NON_PAGED_DEBUG_INFO *NonPagedDebugInfo;// Offset=0x14 Size=0x4
void *DllBase;// Offset=0x18 Size=0x4
void *EntryPoint;// Offset=0x1c Size=0x4
unsigned long SizeOfImage;// Offset=0x20 Size=0x4
struct _UNICODE_STRING FullDllName;// Offset=0x24 Size=0x8
struct _UNICODE_STRING BaseDllName;// Offset=0x2c Size=0x8
unsigned long Flags;// Offset=0x34 Size=0x4
unsigned short LoadCount;// Offset=0x38 Size=0x2
unsigned short __Unused5;// Offset=0x3a Size=0x2
void *SectionPointer;// Offset=0x3c Size=0x4
unsigned long CheckSum;// Offset=0x40 Size=0x4
void *LoadedImports;// Offset=0x44 Size=0x4
void *__Unused6;// Offset=0x48 Size=0x4
};


MEMORY_ALLOCATION_DESCRIPTOR full match
struct _MEMORY_ALLOCATION_DESCRIPTOR// Size=0x14
{
struct _LIST_ENTRY ListEntry;// Offset=0x0 Size=0x8
enum _TYPE_OF_MEMORY MemoryType;// Offset=0x8 Size=0x4
unsigned long BasePage;// Offset=0xc Size=0x4
unsigned long PageCount;// Offset=0x10 Size=0x4
};

struct _MEMORY_ALLOCATION_DESCRIPTOR// Size=0x14
{
struct _LIST_ENTRY ListEntry;// Offset=0x0 Size=0x8
enum _TYPE_OF_MEMORY MemoryType;// Offset=0x8 Size=0x4
unsigned long BasePage;// Offset=0xc Size=0x4
unsigned long PageCount;// Offset=0x10 Size=0x4
};


BOOT_DRIVER_LIST_ENTRY Vista has more fields at end
struct _BOOT_DRIVER_LIST_ENTRY// Size=0x24
{
struct _LIST_ENTRY Link;// Offset=0x0 Size=0x8
struct _UNICODE_STRING FilePath;// Offset=0x8 Size=0x8
struct _UNICODE_STRING RegistryPath;// Offset=0x10 Size=0x8
struct _KLDR_DATA_TABLE_ENTRY *LdrEntry;// Offset=0x18 Size=0x4
long LoadStatus;// Offset=0x1c Size=0x4
unsigned long LoadInformation;// Offset=0x20 Size=0x4

};

struct _BOOT_DRIVER_LIST_ENTRY// Size=0x1c
{
struct _LIST_ENTRY Link;// Offset=0x0 Size=0x8
struct _UNICODE_STRING FilePath;// Offset=0x8 Size=0x8
struct _UNICODE_STRING RegistryPath;// Offset=0x10 Size=0x8
struct _KLDR_DATA_TABLE_ENTRY *LdrEntry;// Offset=0x18 Size=0x4
};
#6446George KingThis is BSOD that I encounter when booting using Windows 7 bootmgr + BCD + Vista winload.exe.

This what happends. Bootmenu and first option is for winload and detectHAL and integrityservices disabled in BCD.
Boot menu

Then booting

Then BSOD


Tested in VirtualBox

[TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6447diderius6⇗ @Mov AX, 0xDEAD

The Bsod "PFN_LIST_CORRUPT"
happens very late in boot process.
I know this for sure, because I have seen all the Bsods with acpi.sys,
no bootdevice found etc. Until now I cant debug Vista,
because always this crazy "enable signature unforce" I have to hit in the beginning.
Because this bootloader from Vista SP2 would be really nice,
I can only debug it when I get over this "unforce signature" step
Dietmar
#6448kukonosau⇗ @diderius6
Hi. ACPI for WinXPx64 working on RYzen if download 5eraph's post-SP2 Update Pack v2017-06_2? Infuscomus use him on Ryzen? Where is download, at the way?
#6449George King
Zitat von ⇗ diderius6 im Beitrag ¶ #6447
@Mov AX, 0xDEAD

The Bsod "PFN_LIST_CORRUPT"
happens very late in boot process.
I know this for sure, because I have seen all the Bsods with acpi.sys,
no bootdevice found etc. Until now I cant debug Vista,
because always this crazy "enable signature unforce" I have to hit in the beginning.
Because this bootloader from Vista SP2 would be really nice,
I can only debug it when I get over this "unforce signature" step
Dietmar


ISO in PM on the way! [TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6450diderius6I succeed to set up a windbg session for the Vista SP2 bootloader winload.exe using boot.ice.
But this gives no information?
How to set up here a good windbg session
Dietmar

The Bsod PFN_LIST_CORRUPT

happens,
but is not(?!) shown in debugger
Dietmar


Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Opened \\.\com1
Waiting to reconnect...
BD: Boot Debugger Initialized
Connected to Windows Boot Debugger 6002 x86 compatible target at (Wed Jan 27 21:32:26.156 2021 (UTC + 1:00)), ptr64 FALSE
Kernel Debugger connection established.
Symbol search path is: C:\WINDOWS\symbols
Executable search path is: C:\WINDOWS\symbols
*** ERROR: Module load completed but symbols could not be loaded for winload.exe
Windows Boot Debugger Kernel Version 6002 UP Free x86 compatible
Machine Name:
Primary image base = 0x00236000 Loaded module list = 0x00336e98
System Uptime: not available
Console video mode set to 0x118
Console video mode set to 0x3
*** Windows is unable to verify the signature of
the file \Windows\system32\ntkrnlpa.exe. It will be allowed to load
because the boot debugger is enabled.
Use g to continue!!
Break instruction exception - code 80000003 (first chance)
*** ERROR: Module load completed but symbols could not be loaded for winload.exe
winload+0x2caa6:
00262aa6 cc int 3
kd> g
*** Windows is unable to verify the signature of
the file \Windows\system32\hal.dll. It will be allowed to load
because the boot debugger is enabled.
Use g to continue!!
Break instruction exception - code 80000003 (first chance)
winload+0x2caa6:
00262aa6 cc int 3
kd> g
*** Windows is unable to verify the signature of
the file \Windows\system32\kdcom.dll. It will be allowed to load
because the boot debugger is enabled.
Use g to continue!!
Break instruction exception - code 80000003 (first chance)
winload+0x2caa6:
00262aa6 cc int 3
kd> g
*** Windows is unable to verify the signature of
the file \Windows\system32\BOOTVID.dll. It will be allowed to load
because the boot debugger is enabled.
Use g to continue!!
Break instruction exception - code 80000003 (first chance)
winload+0x2caa6:
00262aa6 cc int 3
kd> g
*** Windows is unable to verify the signature of
the file \Windows\System32\Drivers\KSecDD.sys. It will be allowed to load
because the boot debugger is enabled.
Use g to continue!!
Break instruction exception - code 80000003 (first chance)
winload+0x2caa6:
00262aa6 cc int 3
kd> g
Shutdown occurred at (Wed Jan 27 21:33:08.609 2021 (UTC + 1:00))...unloading all symbol tables.
Waiting to reconnect...
Connected to Windows XP 2600 x86 compatible target at (Wed Jan 27 21:33:09.343 2021 (UTC + 1:00)), ptr64 FALSE
Kernel Debugger connection established.
Symbol search path is: C:\WINDOWS\symbols
Executable search path is: C:\WINDOWS\symbols
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ntkrpamp.exe -
Windows XP Kernel Version 2600 MP (1 procs) Free x86 compatible
Built by: 2600.xpsp.080413-2111
Machine Name:
Kernel base = 0x8102d000 PsLoadedModuleList = 0x810b3720
System Uptime: not available


Intel Storage Driver Ver: 11.2.0.1006

ERROR: DavReadRegistryValues/RegQueryValueExW(4). WStatus = 5
ERROR: DavReadRegistryValues/RegQueryValueExW(5). WStatus = 5
ERROR: DavReadRegistryValues/RegQueryValueExW(6). WStatus = 5
Break instruction exception - code 80000003 (first chance)
*******************************************************************************
* *
* You are seeing this message because you pressed either *
* CTRL+C (if you run kd.exe) or, *
* CTRL+BREAK (if you run WinDBG), *
* on your debugger machine's keyboard. *
* *
* THIS IS NOT A BUG OR A SYSTEM CRASH *
* *
* If you did not intend to break into the debugger, press the "g" key, then *
* press the "Enter" key now. This message might immediately reappear. If it *
* does, press "g" and "Enter" again. *
* *
*******************************************************************************
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ntkrpamp.exe -
nt!DbgBreakPointWithStatus+0x4:
810815dc cc int 3
0: kd> lm
start end module name
7c910000 7c9c6000 ntdll M (pdb symbols) c:\windows\symbols\dll\ntdll.pdb
8100c000 8102cd00 hal (deferred)
8102d000 8123b000 nt (export symbols) ntkrpamp.exe
ba747000 ba787a80 HTTP (deferred)
baa80000 baad1c00 srv (deferred)
baafa000 bab26180 mrxdav (deferred)
bad9f000 bada2900 ndisuio (deferred)
bae97000 baed7000 dump_storport (deferred)
baed7000 baee8000 dump_storahci (deferred)
baf10000 baf7f780 mrxsmb (deferred)
baf80000 bafaae80 rdbss (deferred)
bafab000 bafccb80 afd (deferred)
bafcd000 baff4c00 netbt (deferred)
baff5000 bb01a500 ipnat (deferred)
bb01b000 bb073380 tcpip (deferred)
bb074000 bb086600 ipsec (deferred)
bb087000 bb09af00 VIDEOPRT (deferred)
bb0e7000 bb0e9900 Dxapi (deferred)
bb0eb000 bb148f00 update (deferred)
bb149000 bb16b700 ks (deferred)
bb16c000 bb19be80 rdpdr (deferred)
bb19c000 bb1ace00 psched (deferred)
bb1d5000 bb1eb580 ndiswan (deferred)
bb203000 bb22b000 HDAudBus (deferred)
bb233000 bb235280 rasacd (deferred)
bb2b1000 bb2b4c80 mssmbios (deferred)
bb2ed000 bb306b80 Mup (deferred)
bb307000 bb333980 NDIS (deferred)
bb334000 bb3c0600 Ntfs (deferred)
bb3c1000 bb3d7880 KSecDD (deferred)
bb3d8000 bb3e9f00 sr (deferred)
bb3ea000 bb409b00 fltMgr (deferred)
bb40a000 bb44a000 storport (deferred)
bb44a000 bb45b000 storahci (deferred)
bb45b000 bb710000 iaStor (deferred)
bb710000 bb721000 ewf (deferred)
bb721000 bb746a00 dmio (deferred)
bb747000 bb765d80 ftdisk (deferred)
bb766000 bb776a80 pci (deferred)
bb777000 bb7a6d80 ACPI (deferred)
bb8a8000 bb8b1300 isapnp (deferred)
bb8b8000 bb8c2580 MountMgr (deferred)
bb8c8000 bb8d5200 VolSnap (deferred)
bb8d8000 bb8e0e00 disk (deferred)
bb8e8000 bb8f4180 CLASSPNP (deferred)
bb928000 bb934f00 i8042prt (deferred)
bb938000 bb941e00 intelppm (no symbols)
bb948000 bb954880 rasl2tp (deferred)
bb958000 bb962200 raspppoe (deferred)
bb968000 bb973d00 raspptp (deferred)
bb978000 bb980900 msgpc (deferred)
bb988000 bb991f00 termdd (deferred)
bb998000 bb9a1e80 NDProxy (deferred)
bb9b8000 bb9c0700 wanarp (deferred)
bb9c8000 bb9d0780 netbios (deferred)
bba08000 bba12e80 Fips (deferred)
bbb28000 bbb2cd00 PartMgr (deferred)
bbbb0000 bbbb6280 kbdclass (deferred)
bbbb8000 bbbbdc00 mouclass (deferred)
bbbc0000 bbbc4a80 TDI (deferred)
bbbc8000 bbbcc580 ptilink (deferred)
bbbd0000 bbbd4080 raspti (deferred)
bbbf8000 bbbfca80 Msfs (deferred)
bbc00000 bbc07880 Npfs (deferred)
bbc08000 bbc0c500 watchdog (deferred)
bbcb8000 bbcbb000 BOOTVID (deferred)
bbda0000 bbda2280 wmiacpi (deferred)
bbda4000 bbda6780 ndistapi (deferred)
bbda8000 bbda9b80 kdcom (deferred)
bbdaa000 bbdab100 WMILIB (deferred)
bbdac000 bbdad700 dmload (deferred)
bbdb8000 bbdb9100 swenum (deferred)
bbdc2000 bbdc3f00 Fs_Rec (deferred)
bbdc4000 bbdc5080 Beep (deferred)
bbe92000 bbe92b80 Null (deferred)
bbeba000 bbebad00 dxgthk (deferred)
bbf27000 bbf27c00 audstub (deferred)
bf800000 bf9c2a00 win32k (deferred)
bf9c3000 bf9d4600 dxg (deferred)
bff50000 bff52f00 TSDDD (deferred)

Unloaded modules:
baae6000 baafa000 Parport.SYS
bb9f8000 bba03000 imapi.sys
bb9e8000 bb9f7000 redbook.sys
bb9d8000 bb9e8000 serial.sys
bbdc8000 bbdca000 RDPCDD.sys
bbdc6000 bbdc8000 mnmdd.SYS
bbbf0000 bbbf6000 vga.sys
bbbe8000 bbbed000 Cdaudio.SYS
bb9a8000 bb9b8000 cdrom.sys
bb237000 bb23a000 Sfloppy.SYS
bbbe0000 bbbe5000 Flpydisk.SYS
bbbd8000 bbbdf000 Fdc.SYS
0: kd> g
Break instruction exception - code 80000003 (first chance)
*******************************************************************************
* *
* You are seeing this message because you pressed either *
* CTRL+C (if you run kd.exe) or, *
* CTRL+BREAK (if you run WinDBG), *
* on your debugger machine's keyboard. *
* *
* THIS IS NOT A BUG OR A SYSTEM CRASH *
* *
* If you did not intend to break into the debugger, press the "g" key, then *
* press the "Enter" key now. This message might immediately reappear. If it *
* does, press "g" and "Enter" again. *
* *
*******************************************************************************
nt!DbgBreakPointWithStatus+0x4:
810815dc cc int 3
0: kd> g
BD: Boot Debugger Initialized
Console video mode set to 0x118
Console video mode set to 0x3
*** Windows is unable to verify the signature of
the file \Windows\system32\ntkrnlpa.exe. It will be allowed to load
because the boot debugger is enabled.
Use g to continue!!
Break instruction exception - code 80000003 (first chance)
*** ERROR: Module load completed but symbols could not be loaded for winload.exe
winload+0x2caa6:
0020:00262aa6 cc int 3
0: kd> g
*** Windows is unable to verify the signature of
the file \Windows\system32\hal.dll. It will be allowed to load
because the boot debugger is enabled.
Use g to continue!!
Break instruction exception - code 80000003 (first chance)
winload+0x2caa6:
0020:00262aa6 cc int 3
0: kd> g
*** Windows is unable to verify the signature of
the file \Windows\system32\kdcom.dll. It will be allowed to load
because the boot debugger is enabled.
Use g to continue!!
Break instruction exception - code 80000003 (first chance)
winload+0x2caa6:
0020:00262aa6 cc int 3
0: kd> g
*** Windows is unable to verify the signature of
the file \Windows\system32\BOOTVID.dll. It will be allowed to load
because the boot debugger is enabled.
Use g to continue!!
Break instruction exception - code 80000003 (first chance)
winload+0x2caa6:
0020:00262aa6 cc int 3
0: kd> g
*** Windows is unable to verify the signature of
the file \Windows\System32\Drivers\KSecDD.sys. It will be allowed to load
because the boot debugger is enabled.
Use g to continue!!
Break instruction exception - code 80000003 (first chance)
winload+0x2caa6:
0020:00262aa6 cc int 3
0: kd> g
Shutdown occurred at (Wed Jan 27 21:39:07.843 2021 (UTC + 1:00))...unloading all symbol tables.
Waiting to reconnect...

 

Page 431

#6451diderius6This is the last line in Windbg,
before compi starts new

winload+0x1533:
00237533 391d78032900 cmp dword ptr [winload+0x5a378 (00290378)],ebx
kd>
winload+0x1539:
00237539 8b701c mov esi,dword ptr [eax+1Ch]
kd>
winload+0x153c:
0023753c 7c12 jl winload+0x1550 (00237550)
kd>
winload+0x1550:
00237550 e836f40100 call winload+0x2098b (0025698b)
kd>
winload+0x1555:
00237555 e845650000 call winload+0x7a9f (0023da9f)
kd>
winload+0x155a:
0023755a 8b4f58 mov ecx,dword ptr [edi+58h]
kd>
winload+0x155d:
0023755d 8b495c mov ecx,dword ptr [ecx+5Ch]
kd>
winload+0x1560:
00237560 8b5dd4 mov ebx,dword ptr [ebp-2Ch]
kd>
winload+0x1563:
00237563 8919 mov dword ptr [ecx],ebx
kd>
winload+0x1565:
00237565 8b5dd8 mov ebx,dword ptr [ebp-28h]
kd>
winload+0x1568:
00237568 895904 mov dword ptr [ecx+4],ebx
kd>
winload+0x156b:
0023756b 8b4f58 mov ecx,dword ptr [edi+58h]
kd>
winload+0x156e:
0023756e 8b495c mov ecx,dword ptr [ecx+5Ch]
kd>
winload+0x1571:
00237571 894108 mov dword ptr [ecx+8],eax
kd>
winload+0x1574:
00237574 56 push esi
kd>
winload+0x1575:
00237575 89510c mov dword ptr [ecx+0Ch],edx
kd>
winload+0x1578:
00237578 836768fe and dword ptr [edi+68h],0FFFFFFFEh
kd>
winload+0x157c:
0023757c 57 push edi
kd>
winload+0x157d:
0023757d e892770300 call winload+0x38d14 (0026ed14)

kd>
Shutdown occurred at (Wed Jan 27 22:14:00.328 2021 (UTC + 1:00))...unloading all symbol tables.
Waiting to reconnect...
#6452diderius6I found this Bsod in winload.exe from Vista SP2

.text:0040156B                 mov     ecx, [edi+58h]
.text:0040156E mov ecx, [ecx+5Ch]
.text:00401571 mov [ecx+8], eax
.text:00401574 push esi
.text:00401575 mov [ecx+0Ch], edx
.text:00401578 and dword ptr [edi+68h], 0FFFFFFFEh
.text:0040157C push edi
.text:0040157D call near ptr _OslArchTransferToKernel@8 ; OslArchTransferToKernel(x,x) <---- last line in Windbg
.text:00401582
.text:00401582 loc_401582: ; CODE XREF: OslpMain(x):loc_401582 j <-----endless loop
.text:00401582 jmp short loc_401582
#6453diderius6small hack in winload.exe ;)) from Vista SP2 32 bit

.text:00401531                 jz      short loc_401584   ---> .text:00401531                 jmp      short loc_401584


74 51 39 1D 78 A3 45 00 --->
EB 51 39 1D 78 A3 45 00


Dietmar

EDIT: Does not help.

Now it crashes at the call from

.text:004011BC                 call    _BlDestroyLibrary@0 ; BlDestroyLibrary()
#6454gordo999⇗ @diderius6 ...I was reading through your windbg log and noted that windows loader became involved between ntoskrnl loading and hal loading. Wondered why and began looking on Google. Came across this detailed explanation of the Windows 7 boot process which should be similar to the Vista boot process.

From the article at the link below:

" Windows Boot Loader Phase

The Windows Boot Manager starts the Windows Boot Loader phase when the user chooses to load Windows Vista or Windows 7. The Windows Boot Loader does the following:

   Loads the operating system kernel, Ntoskrnl.exe, but does not yet run it.
   Loads the Hardware Abstraction Layer (HAL), Hal.dll. This will not be used until the kernel is run.
   Loads the system registry hive (System32\Config\System) into memory.
   Scans the HKEY_LOCAL_MACHINE\SYSTEM\Services key for device drivers and loads all drivers that are configured for the boot class into memory. The Windows Boot Loader does not, however, initiate the drivers. Drivers are not initiated until the kernel loading phase.
   Enables paging.
   Passes control to the operating system kernel, which starts the next phase".

Note the entry about Enables Paging. I was wrong about that, thinking paging would be enabled by ntoskrnl.

In the following article there are links at the bottom of each page that list all the topics covered in the tutorial. Best to read it from this beginning page.

⇗ https://sourcedaddy.com/windows-7/config...tup-issues.html
#6455gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6453
.text:00401531                 jz      short loc_401584   ---> .text:00401531                 jmp      short loc_401584


74 51 39 1D 78 A3 45 00 --->
EB 51 39 1D 78 A3 45 00

⇗ @diderius6 ...don't need all those bytes. This is your hack:

74 51
EB 51

However, they included a string of opcode bytes to make sure you have the right jump.

****Make sure there is not another code sequence in winloader.exe that is the same as the sequence you posted. Use a hex editor and do a search for the bytes 74 51 39 1D 78 A3 45 00.****

Make sure you put the EB 51 back to 74 51. If there is another sequence like that, or more, that's your problem. You have the wrong sequence.

The 74 51 is a conditional jump 51 bytes ahead from the address of the last opcode byte at 00401533. The EB 51 is a forced jump of 51 bytes. So, add it up as 401531, 401532, and 401533. That gets you to the last byte in the opcode 74 51. Address 401533 + 51 = 401584, the address listed in the je short local_401584.  That address is a long distance from where the program faulted so what lies between?

Since code was forced to take that jump it might be interesting to see what would happen without the jump. That would mean replacing the 74 51 opcode with 90 90. That way the code executes at the next byte after the last 90 without making the jump. Or just set the EB 51 back to 74 51.
#6456gordo999⇗ @diderius6 ...take a look at your code just before:
.text:00401531 jz short loc_401584 ---> .text:00401531 jmp short loc_401584
To see if there is a call to BlInitializeLibrary.

I am looking at winload.exe in W7 and they have a similar call to yours but its a jns with opcode 79 05. The jump depends on the 'sign' flag. If it's set = 1 there is no jmp. If it's not set = 0, there is a jmp. If the jmp is taken it leads to a call to the Main() function, before the call to BlDestroyLibrary. If not, it jmps over both calls, then likely exits.

Look to see if there is a call just before the call to BlDestroyLibrary. On the W7 winload.exe there is a call to OslpMain. That seems to be the main function that sets up ntoskrnl, etc. If there is an issue in that call it will return to BlDestroyLibrary then exit.

In any C or C++ application, the first function called is the main() function. In Windows, they call it Winmain().
#6457George KingI tried to use only Vista files - Boot folder + bootmgr and same settings to BCD as when using Windows 7 boot folder and bootmgr.
There is one change - When is used completely Vista files there is needed to run boot option in "Disable driver signature".
When using Windows 7 boot files (winload is still Vista SP2) then it can start booting without needs to enable "Disable driver signature".

So much better is use Windows 7 bootmgr as it don't need additional click step.

But both methods end in same BSOD, btw, detect HAL option is enabled in BCD. This is why I need to figure it out. For legacy HAL detection I'm using Longhorn NTLDR + dtecthal.inf in Windows\inf and boot.ini switch /detectHAL - this works great


⇗ @skullteria Any ideas from your research around booting using winload?

Link for ISO where it accurs is in attached file

George King has attached files to this post [TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6458diderius6⇗ @gordo999
Thanks for help and the nice link about the boot process from Win7!
All the time I work only with XP, so this is new for me.
Have a nice day
Dietmar
#6459diderius6I succeed with USB3 boot and the bootfiles from Vista SP2 on the Asrock z370 Fatalty gaming k6 board with 8700k cpu.
Normal ntldr XP SP3 boots fine via USB3 on this board via Vista boot menu,
XP SP3 via USB3 and winload.exe from Vista SP2 shows the same Bsod

PFN_LIST_Corrupt

0x0000004E (0x0000008F, 0x00000D59, 0x0008E699, 0x00000000)

Dietmar

PS: So, this Bsod depends not on bootdevice, not on ram, not on ram size, not on pagefile enabled/disabled .
#6460genieautravail⇗ @diderius6 ⇗ @infuscomus

Hello,

A few months ago, PPeti66x has uploaded a modded Intel HCSwitch device driver for Intel Gen7 and Gen8 chipsets on MDL forum:

⇗ https://forums.mydigitallife.net/threads...-4#post-1612326

As I got a mini PC ZOTAC Zbox EN760 (Haswell processor), I'm using the modded Intel HCSwitch device driver for Gen8 chipset (Haswell) to enable USB 3.0.

⇗ http://old.zotac.com/en/products/mini-pcs/zbox-e-series/product/zbox-e-series/detail/zbox-en760.html

But there is a big issue with it, the modded Intel HCSwitch device driver hang the shutdown or reboot process of the computer and I must push the power button to complete the process.

More informations here:

⇗ https://forums.mydigitallife.net/threads...-6#post-1631463

⇗ https://forums.mydigitallife.net/threads...-7#post-1642482

As PPeti66x isn't present on the MDL forum since he has uploaded the file, can you help me to solve the issue with the modded driver ?

Regards
#6461Andalu⇗ @genieautravail
what error code did you get by installing the USB3 driver normally without using the HCSwitch method?
Normal installation of the USB3 driver worked here on my Q87 haswell board.
#6462gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6458
All the time I work only with XP, so this is new for me.
⇗ @diderius6 ...I know you are working on XP but you mentioned using Vista drivers and Vista is more like W7 than XP.

Would you mind briefly sharing your procedure for getting a windbg kernel mode connection going with XP or W7? I had a good connection a year ago but can't seem to get one now. I am using a serial mode connection via COM2 but I think something is wrong with my B360M chipset that is refusing the connection. May be a driver issue.

You will notice that during the boot process, ntoskrnl. and probably Hal, call kdcom.dll to setup a serial port debugging session. My problem might be in the boot procedure. I found that out a year ago when I could not initiate a serial connection. I got one going between W7 as host and W10 using the network protocol. When I tried with a serial connection it failed till I rebooted W10, as required for the target, and did something during reboot that made the serial connection work. Then the serial connection worked between W7 and W7.

So, it seems the debug connection depends on settings in the boot loader.
#6463diderius6⇗ @gordo999

The standalone MSI file of windbg can be downloaded from here. The version is 6.12.0002.633 (x86).
It works for XP, Vista and Win7.

⇗ http://download.microsoft.com/download/A...ols/dbg_x86.msi

X64
⇗ http://download.microsoft.com/download/A...4/dbg_amd64.msi

Windbg needs
Microsoft .NET Framework 4 (Standalone Installer) (full install).

⇗ https://www.microsoft.com/en-US/download...s.aspx?id=17718

Then you need the debug files of ntoskrnl.exe and the timermodded hal.dll debug for XP SP3.

I upload them here.
⇗ https://ufile.io/dwlf4vma

I describe all for Serial Debug via 115200 baudrate:

On both compis set in Device manager the serial COM1 port to 115200 Bit.
Copy the file boot.ini on C:\ on the compi, which you want to debug.
It is also in my package.
Then copy on the same compi ntos3.exe and hal3.dll into Windows\System32 .

On the compi, where windbg will run, first install Microsoft .NET Framework 4.
Then install windbg.
On running windbg set in left corner on top: File, Kernel Debug, Baudrate 115200
port com1

I always set a fresh XP SP3 up for the compi, which I want to debug.
XP SP3 does not like to work together with different hal.dll and ntoskrnl.exe .

Connect both compis with a serial cable on their COM1 port. Look in Bios of both compis, that the serial port there is enabled.

If you want Lan debug, because your compi has no COM port, you need windbg from 8.1
Original windbg 8.1 stand alone
⇗ https://github.com/kbandla/installers/bl...s-x86_en-us.msi

⇗ @Mov AX, 0xDEAD  ⇗ https://github.com/MovAX0xDEAD/KDNET

and the msvcrt.dll from Blackwingcat for XP.
¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (176)

Here in the forum I showed the special boot.ini for lan debug.
And you need the files from ⇗ @Mov AX, 0xDEAD .
Lan debug is much faster but needs some more work to set it up. You can connect 2 compis direct with a Lan cable
Dietmar

boot.ini for Lan debug in my home network, all compis connected via Hub.

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP SP3 DEBUG" /KERNEL=ntos3.exe /HAL=hal3.dll /debug /debugport=COM1 /baudrate=115200 /BREAK
C:\WINDOWS="KDNET" /noexecute=optin /fastdetect /KERNEL=ntos3.exe /HAL=hal3.dll /DEBUG /DEBUGPORT=NET /HOST_IP=192.168.2.101 /HOST_PORT=50000 /ENCRYPTION_KEY=make.winxp.great.again /CPUFREQ=3000 /TARGET_IP=192.168.2.103
C:\WINDOWS="KDNET_Brk" /noexecute=optin /fastdetect /KERNEL=ntos3.exe /HAL=hal3.dll /DEBUG /DEBUGPORT=NET /HOST_IP=192.168.2.101 /HOST_PORT=50000 /ENCRYPTION_KEY=make.winxp.great.again /CPUFREQ=3000 /TARGET_IP=192.168.2.103 /BREAK

   

You also need the Symbol package for XP SP3 debug. Unpack the Symbols and set the path on left corner above of Windbg to those Symbol folder.

WINDOWSXP-KB936929-SP3-X86-DEBUG-SYMBOLS-FULL-ENU-DEBUG.EXE

⇗ https://archive.org/download/somewinxpdownloads
#6464gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6463
I upload them here
⇗ @diderius6 ...Dietmar, thanks for going to all the trouble of providing links, creating a file package, and the explanation. I really appreciate it. I will setup a fresh install of XP on its own disk and see if that helps.
#6465daniel_k⇗ @genieautravail

Install KMDF 1.11 and the USB 3.0 driver.

Instead of using the HCSwitch, use WPCRSET to manually change the controller's registers to enable USB 3.0 speeds.

Get device ID from USB 3 controller in Device Manager (PCI\VEN_8086&DEV_????)

Guide:
⇗ http://www.a7vtroubleshooting.com/articles/wpcrset/index.htm

Run WPCREDIT and select device with same ID
⇗ http://ftp.vector.co.jp/32/55/2012/wpcre14.exe

Run/install WPCRSET, enter Bus/Device/Function from WPCREDIT and change registers D0 and D8 to 0F
⇗ http://ftp.vector.co.jp/10/14/2012/wpcrs120.exe

 

Page 432

#6466PPeti66x⇗ @genieautravail
Hi!
I am on mydigitallife really rare.
So my experiences:
If WDF coinstaller is wrongly installed => BSOD. It is mandatory for HCSwitchwer. HCSwitcher itself should not do any problems - switches to USB3 or not. The modded inf itself comes from Daniel_K. My work is only a manual, how to install these things. I do not have any new informations yet. I never tried it with PAE patched kernel.
For haswell, you must install acpi 5048 + Kernel Mode Driver Framework 1.11 (because of Win8 USB3, for HCSwitcher 1.09 is enough).

But USB have a strange behaviour on some systems (even USB2). There are some registry settings to manipulate these things. The next settings are in INF style.
;Disables the USB Idle Endpoint Support. (KB918005)
; This may prevent your computer from enter to C3/C4 power state,
; so power consumption will be not reduced.
HKLM,"SYSTEM\CurrentControlSet\Services\usb","EnableIdleTimer",0x10001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usb","EnIdleEndPointSupportEx",0x10001,0
Undo:
HKLM,"SYSTEM\CurrentControlSet\Services\usb","EnableIdleTimer",0x10001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usb","EnIdleEndPointSupportEx",0x10001,1


;Enable S3 system power state for standby when USB devices are armed for wake up (0=enable, not_exist=disable)
;Not recommended because attached device may be fully disabled and then can not wake up the computer.
HKLM,"SYSTEM\CurrentControlSet\Services\usb","USBBIOSx",0x00010001,0
Undo:
Delete value: HKLM,"SYSTEM\CurrentControlSet\Services\usb","USBBIOSx"


;Disables a silent retry if USB transfer fails. (KB908673)
By default (XP SP2/above), if USB transfer fails for specific reasons
is silently retried instead of completed and given a "failure" status.
HKLM,"SYSTEM\CurrentControlSet\Services\usb","EnSoftRetry",0x10001,0
Undo:
HKLM,"SYSTEM\CurrentControlSet\Services\usb","EnSoftRetry",0x10001,1
#6467genieautravail
Zitat von ⇗ Andalu im Beitrag ¶ #6461
@genieautravail
what error code did you get by installing the USB3 driver normally without using the HCSwitch method?
Normal installation of the USB3 driver worked here on my Q87 haswell board.


None, the HCSwitch driver must be installed after KMDF 1.11 and the USB 3.0 driver.
This computer is particular, it's a desktop computer with a mobile CPU, a mobile chipset and a mobile graphic card!

It has 4 USB 3.0 ports and none USB 2.0 ports.
If I want to enable the USB 3.0 speed, the HCSwitch driver must be running at startup of the computer like on a laptop.
This computer is compatible with XP, but with XP, you have only 2.0 speed on the USB ports.
#6468genieautravail
Zitat

If WDF coinstaller is wrongly installed => BSOD. It is mandatory for HCSwitchwer. HCSwitcher itself should not do any problems - switches to USB3 or not. The modded inf itself comes from Daniel_K. My work is only a manual, how to install these things. I do not have any new informations yet. I never tried it with PAE patched kernel.
For haswell, you must install acpi 5048 + Kernel Mode Driver Framework 1.11 (because of Win8 USB3, for HCSwitcher 1.09 is enough).


None BSOD, apart the shutdown process, all is fine!

My setup:
acpi 5048 + Kernel Mode Driver Framework 1.11 + Intel USB3 HCSwitch for XP (Gen4 Series8 C220 and later)

I will check your settings as soon as possible!

Thank you for your help!

Regards

#6469bright_lightUnder normal conditions the 32-bit XP EFI boot cannot possibly work on a real modern computer using UEFI + GPT partition. 32-bit OS would require 32-bit processor ( 32-bit CPU) + 32-bit UEFI/EFI bios + 32-bit EFI loader.

On modern computers the UEFI BIOS by design is capable of booting only 64-bit Windows via EFI and it would require very serious modifications, patching and signing to be able to boot 32 bit XP.

Normally you can only boot XP 64 bit on modern computers (Ryzen, Commet Lake, Kaby Lake, threadripper etc.) because of the UEFI bios lack 32 bit EFI boot and is only compatible with 64 bit EFI booting. MBR booting is a different matter because it doesn't care about you CPU architecture as long your PC is legacy BIOS compatible.

If you really want to boot 32 bit XP, you must have computer with 32 bit UEFI and 32 bit processor which are very rare or maybe as alternative you try those loaders like Quibble, freeloader, uefiseven if any of those work at all.

Good luck
#6470diderius6⇗ @bright_light
Just implement a generic CSM module in any pur Uefi Bios
and the problem with only Uefi boot is gone.
The Source code for the CSM module is available
Dietmar
#6471PPeti66x⇗ @genieautravail
It seems that everything was installed correctly on your side.
But be careful with these settings. In most cases it produces more problems that solves. I needed 1 or 2 of these keys only once, but I do not remember the correct combination. I am used these via a special INF tuning utility, which was integrated to add/remove windows components menu. I made this INF around year 2010 for XP SP2, but it also works for SP3 (tested). The complete INF file is here: ⇗ https://drive.google.com/file/d/13uQxh_R...iew?usp=sharing
If you want to try, right click and install it, then you can access it via Add/remove windows components menu.

If the registry tuning does not resolve the problem, and even recommendations by Daniel_K, then you can try the HCSwitch with the AMD USB3 driver. I never tryed it, but theoretically should work. Problem is, that AMD driver is not problem-free on Intel chipset.
#6472PPeti66xHi!
I am still searching for a good solution for the LCD brightness control problem on XP with ACPI5048.
Brightness control works with the original ACPI (including the outer space version), but on Haswell+ the USB3 does not. It is not a problem for desktop PCs but is very annoying for the notebooks.
I tried to write my own program using IOCTL method, but no supported brightness levels reported - so this is a bad way. I was able only to turn off the lights, but I am unable to turn on. The only program, that can turn on is the MultiMonitorTool by NirSoft, with the "/Switch \\.\DISPLAY1" or with "/disable \\.\DISPLAY1" (yes, both does a same thing in this case) parameter (the /TurnOn not works). But I am unable to acces this program via shortcut key from the logon screen. Is possible to add/restore this functionality for ACPI5048 ?
#6473genieautravail
Zitat von ⇗ PPeti66x im Beitrag ¶ #6472
Hi!
I am still searching for a good solution for the LCD brightness control problem on XP with ACPI5048.
Brightness control works with the original ACPI (including the outer space version), but on Haswell+ the USB3 does not. It is not a problem for desktop PCs but is very annoying for the notebooks.
I tried to write my own program using IOCTL method, but no supported brightness levels reported - so this is a bad way. I was able only to turn off the lights, but I am unable to turn on. The only program, that can turn on is the MultiMonitorTool by NirSoft, with the "/Switch \\.\DISPLAY1" or with "/disable \\.\DISPLAY1" (yes, both does a same thing in this case) parameter (the /TurnOn not works). But I am unable to acces this program via shortcut key from the logon screen. Is possible to add/restore this functionality for ACPI5048 ?


Same issue on 2 laptops, one is a Dell Latitude E6230 and the other a Dell Latitude E6430.
#6474diderius6⇗ @Mov AX, 0xDEAD

Is it possible,
just to compile ntldr from Sources from XP SP1 with small corrections (a lot not needed stuff in winload.exe from Vista)
and name it winload.exe for XP SP3
Dietmar
#6475diderius6⇗ @Mov AX, 0xDEAD

I found this zeropage.c . zeropage.c is compiled into ntoskrnl.exe in XP.
But in Vista it is compiled into winload.exe . Nobody needs it there under XP.
So, there happens something like a doublecheck for "zeropage" with winload.exe from Vista and ntoskrnl.exe from XP.
A single Bit error can make this crash.
And this would explain, why this error happens not always but sometimes on newer compis.
So the Bsod happens in winload.exe from Vista SP2.
Dietmar

/*++

Copyright (c) Microsoft Corporation. All rights reserved.

You may only use this code if you agree to the terms of the Windows Research Kernel Source Code License agreement (see License.txt).
If you do not agree to the terms, do not use the code.


Module Name:

zeropage.c

Abstract:

This module contains the zero page thread for memory management.

--*/

#include "mi.h"

#define MM_ZERO_PAGE_OBJECT 0
#define PO_SYS_IDLE_OBJECT 1
#define NUMBER_WAIT_OBJECTS 2

#define MACHINE_ZERO_PAGE(ZeroBase,NumberOfBytes) KeZeroPagesFromIdleThread(ZeroBase,NumberOfBytes)

LOGICAL MiZeroingDisabled = FALSE;

#if DBG
ULONG MiInitialZeroNoPtes = 0;
#endif

#if !defined(NT_UP)

LONG MiNextZeroProcessor = (LONG)-1;

#ifdef ALLOC_PRAGMA
#pragma alloc_text(INIT,MiStartZeroPageWorkers)
#endif

#endif

VOID
MmZeroPageThread (
VOID
)

/*++

Routine Description:

Implements the NT zeroing page thread. This thread runs
at priority zero and removes a page from the free list,
zeroes it, and places it on the zeroed page list.

Arguments:

None.

Return Value:

None.

Environment:

Kernel mode.

--*/

{
KIRQL OldIrql;
PFN_NUMBER PageFrame1;
LOGICAL ZeroedAlready;
PFN_NUMBER PageFrame;
PMMPFN Pfn1;
PVOID ZeroBase;
PVOID WaitObjects[NUMBER_WAIT_OBJECTS];
NTSTATUS Status;
PVOID StartVa;
PVOID EndVa;
PFN_COUNT PagesToZero;
PFN_COUNT MaximumPagesToZero;
ULONG Color;
ULONG StartColor;
PMMPFN PfnAllocation;
ULONG SecondaryColorMask;
PMMCOLOR_TABLES FreePagesByColor;

#if defined(MI_MULTINODE)

ULONG i;
ULONG n;
ULONG LastNodeZeroing;
KAFFINITY ProcessorMask;

n = 0;
LastNodeZeroing = 0;
#endif

//
// Make local copies of globals so they don't have to be wastefully
// refetched while holding the PFN lock.
//

FreePagesByColor = MmFreePagesByColor[FreePageList];
SecondaryColorMask = MmSecondaryColorMask;

//
// Before this becomes the zero page thread, free the kernel
// initialization code.
//

MiFindInitializationCode (&StartVa, &EndVa);

if (StartVa != NULL) {
MiFreeInitializationCode (StartVa, EndVa);
}

MaximumPagesToZero = 1;

#if !defined(NT_UP)

//
// Zero groups of pages at once to reduce PFN lock contention.
// Charge commitment as well as resident available up front since
// zeroing may get starved priority-wise.
//
// Note using MmSecondaryColors here would be excessively wasteful
// on NUMA systems. MmSecondaryColorMask + 1 is correct for all platforms.
//

PagesToZero = SecondaryColorMask + 1;

if (PagesToZero > NUMBER_OF_ZEROING_PTES) {
PagesToZero = NUMBER_OF_ZEROING_PTES;
}

if (MiChargeCommitment (PagesToZero, NULL) == TRUE) {

LOCK_PFN (OldIrql);

//
// Check to make sure the physical pages are available.
//

if (MI_NONPAGEABLE_MEMORY_AVAILABLE() > (SPFN_NUMBER)(PagesToZero)) {
MI_DECREMENT_RESIDENT_AVAILABLE (PagesToZero,
MM_RESAVAIL_ALLOCATE_ZERO_PAGE_CLUSTERS);
MaximumPagesToZero = PagesToZero;
}

UNLOCK_PFN (OldIrql);
}

#endif

//
// The following code sets the current thread's base priority to zero
// and then sets its current priority to zero. This ensures that the
// thread always runs at a priority of zero.
//

KeSetPriorityZeroPageThread (0);

//
// Initialize wait object array for multiple wait
//

WaitObjects[MM_ZERO_PAGE_OBJECT] = &MmZeroingPageEvent;
WaitObjects[PO_SYS_IDLE_OBJECT] = &PoSystemIdleTimer;

Color = 0;
PfnAllocation = (PMMPFN) MM_EMPTY_LIST;

//
// Loop forever zeroing pages.
//

do {

//
// Wait until there are at least MmZeroPageMinimum pages
// on the free list.
//

Status = KeWaitForMultipleObjects (NUMBER_WAIT_OBJECTS,
WaitObjects,
WaitAny,
WrFreePage,
KernelMode,
FALSE,
NULL,
NULL);

if (Status == PO_SYS_IDLE_OBJECT) {

//
// Raise the priority and base priority of the current thread
// above zero so it can participate in priority boosts provided
// during the ready thread scan performed by the balance set
// manager.
//

KeSetPriorityZeroPageThread (1);
PoSystemIdleWorker (TRUE);

//
// Lower the priority and base priority of the current thread
// back to zero so it will not participate in ready thread scan
// priority boosts.
//

KeSetPriorityZeroPageThread (0);
continue;
}

PagesToZero = 0;

LOCK_PFN (OldIrql);

do {

if (MmFreePageListHead.Total == 0) {

//
// No pages on the free list at this time, wait for
// some more.
//

MmZeroingPageThreadActive = FALSE;
UNLOCK_PFN (OldIrql);
break;
}

if (MiZeroingDisabled == TRUE) {
MmZeroingPageThreadActive = FALSE;
UNLOCK_PFN (OldIrql);
KeDelayExecutionThread (KernelMode,
FALSE,
(PLARGE_INTEGER)&MmHalfSecond);
break;
}

#if defined(MI_MULTINODE)

//
// In a multinode system, zero pages by node. Resume on
// the last node examined, find a node with free pages that
// need to be zeroed.
//

if (KeNumberNodes > 1) {

n = LastNodeZeroing;

for (i = 0; i < KeNumberNodes; i += 1) {
if (KeNodeBlock[n]->FreeCount[FreePageList] != 0) {
break;
}
n = (n + 1) % KeNumberNodes;
}

ASSERT (i != KeNumberNodes);
ASSERT (KeNodeBlock[n]->FreeCount[FreePageList] != 0);

if (n != LastNodeZeroing) {
Color = KeNodeBlock[n]->MmShiftedColor;
}
}
#endif

ASSERT (PagesToZero == 0);

StartColor = Color;

do {

PageFrame = FreePagesByColor[Color].Flink;

if (PageFrame != MM_EMPTY_LIST) {

Pfn1 = MI_PFN_ELEMENT (PageFrame);

//
// Check the frame carefully because a single bit (hardware)
// error causing us to zero the wrong frame is very hard
// to reconstruct after the fact.
//


if ((Pfn1->u3.e1.PageLocation != FreePageList) ||
(Pfn1->u3.e2.ReferenceCount != 0)) {

//
// Someone has removed a page from the colored lists
// chain without updating the freelist chain.
//

KeBugCheckEx (PFN_LIST_CORRUPT,
0x8D,
PageFrame,
(Pfn1->u3.e2.ShortFlags << 16) |
Pfn1->u3.e2.ReferenceCount,
(ULONG_PTR) Pfn1->PteAddress);
}

PageFrame1 = MiRemoveAnyPage (Color);

if (PageFrame != PageFrame1) {

//
// Someone has removed a page from the colored lists
// chain without updating the freelist chain.
//

KeBugCheckEx (PFN_LIST_CORRUPT,
0x8E,
PageFrame,
PageFrame1,
0);
}

Pfn1->u1.Flink = (PFN_NUMBER) PfnAllocation;


//
// Temporarily mark the page as bad so that contiguous
// memory allocators won't steal it when we release
// the PFN lock below. This also prevents the
// MiIdentifyPfn code from trying to identify it as
// we haven't filled in all the fields yet.
//

Pfn1->u3.e1.PageLocation = BadPageList;

PfnAllocation = Pfn1;

PagesToZero += 1;
}

//
// March to the next color - this will be used to finish
// filling the current chunk or to start the next one.
//

Color = (Color & ~SecondaryColorMask) |
((Color + 1) & SecondaryColorMask);

if (PagesToZero == MaximumPagesToZero) {
break;
}

if (Color == StartColor) {
break;
}

} while (TRUE);

ASSERT (PfnAllocation != (PMMPFN) MM_EMPTY_LIST);

UNLOCK_PFN (OldIrql);

#if defined(MI_MULTINODE)

//
// If a node switch is in order, do it now that the PFN
// lock has been released.
//

if ((KeNumberNodes > 1) && (n != LastNodeZeroing)) {
LastNodeZeroing = n;

ProcessorMask = KeNodeBlock[n]->ProcessorMask;

//
// Only affinitize if the node has a processor. Otherwise
// just stay with the last ideal processor that was set.
//

if (ProcessorMask != 0) {

KeFindFirstSetLeftAffinity (ProcessorMask, &i);

if (i != NO_BITS_FOUND) {
KeSetIdealProcessorThread (KeGetCurrentThread(), (UCHAR)i);
}
}
}

#endif

ZeroedAlready = FALSE;

if (ZeroedAlready == FALSE) {
ZeroBase = MiMapPagesToZeroInHyperSpace (PfnAllocation, PagesToZero);

MACHINE_ZERO_PAGE (ZeroBase, PagesToZero << PAGE_SHIFT);

MiUnmapPagesInZeroSpace (ZeroBase, PagesToZero);
}

PagesToZero = 0;

Pfn1 = PfnAllocation;

LOCK_PFN (OldIrql);

do {

PageFrame = MI_PFN_ELEMENT_TO_INDEX (Pfn1);

Pfn1 = (PMMPFN) Pfn1->u1.Flink;

MiInsertPageInList (&MmZeroedPageListHead, PageFrame);

} while (Pfn1 != (PMMPFN) MM_EMPTY_LIST);

//
// We just finished processing a cluster of pages - briefly
// release the PFN lock to allow other threads to make progress.
//

UNLOCK_PFN (OldIrql);

PfnAllocation = (PMMPFN) MM_EMPTY_LIST;

LOCK_PFN (OldIrql);

} while (TRUE);

} while (TRUE);
}

#if !defined(NT_UP)


VOID
MiZeroPageWorker (
IN PVOID Context
)

/*++

Routine Description:

This routine is the worker routine executed by all processors so that
initial page zeroing occurs in parallel.

Arguments:

Context - Supplies a pointer to the workitem.

Return Value:

None.

Environment:

Kernel mode initialization time, PASSIVE_LEVEL. Because this is INIT
only code, don't bother charging commit for the pages.

--*/

{
MMPTE TempPte;
MMPTE DefaultCachedPte;
PMMPTE PointerPte;
KAFFINITY Affinity;
KIRQL OldIrql;
PVOID ZeroBase;
PKTHREAD Thread;
CCHAR OldProcessor;
SCHAR OldBasePriority;
KPRIORITY OldPriority;
PWORK_QUEUE_ITEM WorkItem;
PMMPFN Pfn1;
PFN_COUNT PagesToZero;
PFN_COUNT MaximumPagesToZero;
PFN_NUMBER PageFrame;
PFN_NUMBER PageFrame1;
PMMPFN PfnAllocation;
ULONG Color;
ULONG StartColor;
LOGICAL ZeroedAlready;
PMMCOLOR_TABLES FreePagesByColor;
ULONG SecondaryColorMask;

WorkItem = (PWORK_QUEUE_ITEM) Context;

ExFreePool (WorkItem);

DefaultCachedPte = ValidKernelPte;

//
// Make local copies of globals so they don't have to be wastefully
// refetched while holding the PFN lock.
//

FreePagesByColor = MmFreePagesByColor[FreePageList];
SecondaryColorMask = MmSecondaryColorMask;

//
// The following code sets the current thread's base and current priorities
// to one so all other code (except the zero page thread) can preempt it.
//

Thread = KeGetCurrentThread ();
OldBasePriority = Thread->BasePriority;
Thread->BasePriority = 1;
OldPriority = KeSetPriorityThread (Thread, 1);

//
// Dispatch each worker thread to the next processor in line.
//

OldProcessor = (CCHAR) InterlockedIncrement (&MiNextZeroProcessor);

Affinity = AFFINITY_MASK (OldProcessor);

KeSetSystemAffinityThread (Affinity);

Color = 0;

#if !defined(NT_UP)

//
// Make an attempt to stagger the processors ...
//

Color = (MmSecondaryColors / KeNumberProcessors) * OldProcessor;
Color &= SecondaryColorMask;
#endif

#if defined(MI_MULTINODE)
if (KeNumberNodes > 1) {
Color = KeGetCurrentNode()->MmShiftedColor;
}
#endif

//
// Zero groups of local pages at once to reduce PFN lock contention.
//
// Note using MmSecondaryColors here would be excessively wasteful
// on NUMA systems. MmSecondaryColorMask + 1 is correct for all platforms.
//

MaximumPagesToZero = SecondaryColorMask + 1;


//
// Zero a maximum of 64k at a time since 64k is the largest binned
// system PTE size (for systems that need to use PTEs for zeroing).
//

if (MaximumPagesToZero > (64 * 1024) / PAGE_SIZE) {
MaximumPagesToZero = (64 * 1024) / PAGE_SIZE;
}

PagesToZero = 0;

PfnAllocation = (PMMPFN) MM_EMPTY_LIST;

LOCK_PFN (OldIrql);

do {

StartColor = Color;

ASSERT (PagesToZero == 0);
ASSERT (PfnAllocation == (PMMPFN) MM_EMPTY_LIST);

do {

PageFrame = FreePagesByColor[Color].Flink;

if (PageFrame != MM_EMPTY_LIST) {

Pfn1 = MI_PFN_ELEMENT (PageFrame);

//
// Check the frame carefully because a single bit (hardware)
// error causing us to zero the wrong frame is very hard
// to reconstruct after the fact.
//

if ((Pfn1->u3.e1.PageLocation != FreePageList) ||
(Pfn1->u3.e2.ReferenceCount != 0)) {

//
// Someone has removed a page from the colored lists
// chain without updating the freelist chain.
//

KeBugCheckEx (PFN_LIST_CORRUPT,
0x8D,
PageFrame,
(Pfn1->u3.e2.ShortFlags << 16) |
Pfn1->u3.e2.ReferenceCount,
(ULONG_PTR) Pfn1->PteAddress);
}

PageFrame1 = MiRemoveAnyPage (Color);

if (PageFrame != PageFrame1) {

//
// Someone has removed a page from the colored lists
// chain without updating the freelist chain.
//

KeBugCheckEx (PFN_LIST_CORRUPT,
0x8E,
PageFrame,
PageFrame1,
0);
}

Pfn1->u1.Flink = (PFN_NUMBER) PfnAllocation;

//
// Temporarily mark the page as bad so that contiguous
// memory allocators won't steal it when we release
// the PFN lock below. This also prevents the
// MiIdentifyPfn code from trying to identify it as
// we haven't filled in all the fields yet.
//

Pfn1->u3.e1.PageLocation = BadPageList;

PfnAllocation = Pfn1;

PagesToZero += 1;
}

//
// March to the next color - this will be used to finish
// filling the current chunk or to start the next one.
//

Color = (Color & ~SecondaryColorMask) |
((Color + 1) & SecondaryColorMask);

if (PagesToZero == MaximumPagesToZero) {
break;
}

if (Color == StartColor) {

if (PagesToZero == 0) {

//
// All of the pages for this node have been zeroed, bail.
//

ASSERT (PfnAllocation == (PMMPFN) MM_EMPTY_LIST);
UNLOCK_PFN (OldIrql);
goto ZeroingComplete;
}

break;
}

} while (TRUE);

ASSERT (PagesToZero != 0);
ASSERT (PfnAllocation != (PMMPFN) MM_EMPTY_LIST);

//
// Use system PTEs instead of hyperspace to zero the page so that
// a spinlock (ie: interrupts blocked) is not held while zeroing.
// Since system PTE acquisition is lock free and the TB lazy flushed,
// this is perhaps the best path regardless.
//

UNLOCK_PFN (OldIrql);

ZeroedAlready = FALSE;

if (ZeroedAlready == FALSE) {

Pfn1 = PfnAllocation;

PointerPte = MiReserveSystemPtes (PagesToZero, SystemPteSpace);

if (PointerPte == NULL) {

#if DBG
MiInitialZeroNoPtes += 1;
#endif

//
// Put these pages back on the freelist.
//

LOCK_PFN (OldIrql);

do {

PageFrame = MI_PFN_ELEMENT_TO_INDEX (Pfn1);

Pfn1 = (PMMPFN) Pfn1->u1.Flink;

MiInsertPageInFreeList (PageFrame);

} while (Pfn1 != (PMMPFN) MM_EMPTY_LIST);

UNLOCK_PFN (OldIrql);

break;
}

ZeroBase = MiGetVirtualAddressMappedByPte (PointerPte);

do {

ASSERT (PointerPte->u.Hard.Valid == 0);

PageFrame = MI_PFN_ELEMENT_TO_INDEX (Pfn1);

TempPte = DefaultCachedPte;

if (Pfn1->u3.e1.CacheAttribute == MiWriteCombined) {
MI_SET_PTE_WRITE_COMBINE (TempPte);
}
else if (Pfn1->u3.e1.CacheAttribute == MiNonCached) {
MI_DISABLE_CACHING (TempPte);
}

TempPte.u.Hard.PageFrameNumber = PageFrame;

MI_WRITE_VALID_PTE (PointerPte, TempPte);

PointerPte += 1;

Pfn1 = (PMMPFN) Pfn1->u1.Flink;

} while (Pfn1 != (PMMPFN) MM_EMPTY_LIST);

KeZeroPages (ZeroBase, PagesToZero << PAGE_SHIFT);

PointerPte -= PagesToZero;

MiReleaseSystemPtes (PointerPte, PagesToZero, SystemPteSpace);
}

PagesToZero = 0;

Pfn1 = PfnAllocation;

PfnAllocation = (PMMPFN) MM_EMPTY_LIST;

LOCK_PFN (OldIrql);

do {

PageFrame = MI_PFN_ELEMENT_TO_INDEX (Pfn1);

Pfn1 = (PMMPFN) Pfn1->u1.Flink;

MiInsertZeroListAtBack (PageFrame);

} while (Pfn1 != (PMMPFN) MM_EMPTY_LIST);

} while (TRUE);

ZeroingComplete:

//
// Restore the entry thread priority and processor affinity.
//

KeRevertToUserAffinityThread ();

KeSetPriorityThread (Thread, OldPriority);

Thread->BasePriority = OldBasePriority;

return;
}


VOID
MiStartZeroPageWorkers (
VOID
)

/*++

Routine Description:

This routine starts the zero page worker threads.

Arguments:

None.

Return Value:

None.

Environment:

Kernel mode initialization phase 1, PASSIVE_LEVEL.

--*/

{
ULONG i;
PWORK_QUEUE_ITEM WorkItem;

for (i = 0; i < (ULONG) KeNumberProcessors; i += 1) {

WorkItem = ExAllocatePoolWithTag (NonPagedPool,
sizeof (WORK_QUEUE_ITEM),
'wZmM');

if (WorkItem == NULL) {
break;
}

ExInitializeWorkItem (WorkItem, MiZeroPageWorker, (PVOID) WorkItem);

ExQueueWorkItem (WorkItem, CriticalWorkQueue);
}
}

#endif
#6476PPeti66x⇗ @genieautravail
Both are Gen3 (Ivy Bridge). Is really needed the ACPI5048 for these? For desktop PCs the original ACPI is mostly enough.
#6477George KingAnybody have idea how to port Vista RTM takeown / icacls?
It cannot be run as is not valid win32 application.

Anybody can patch them so they can work on XP too to control files permission in Windows 6.x?

George King has attached files to this post [TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6478genieautravail
Zitat von ⇗ PPeti66x im Beitrag ¶ #6476
@genieautravail
Both are Gen3 (Ivy Bridge). Is really needed the ACPI5048 for these? For desktop PCs the original ACPI is mostly enough.


With the original ACPI file, no Intel(R) 7 Series/C216 Chipset Family Universal Serial Bus (USB) Controller - 1E31 device in the devices manager and so no USB 3.0...
#6479daniel_k⇗ @PPeti66x and ⇗ @genieautravail

If your laptops "hide" USB3 controller on XP, please try all acpi.sys:
⇗ http://www.mediafire.com/file/hwio6yp5je1hqkq
#6480genieautravail⇗ @daniel_k

It's the same thing with the ZOTAC ZBOX, the USB3 controller is "hidden" with the original acpi.sys.
As I understand, Andalu's motherboards doesn't "hide" the USB3 controller.

 

Page 433

#6481PPeti66x⇗ @daniel_k
ACPITEST results for Dell M4800 (Mobile Intel QM87 Express/Haswell)

acpi2006.sys
  USB xHCI listed. HCSwitch uses USB2.0
  Manual HCSwitching(wpcr): works
  hotkeys: sleep:yes, displayswitch:no, brightness:no

acpi2009.sys
  USB xHCI listed. HCSwitch uses USB2.0
  Manual HCSwitching(wpcr): works
  hotkeys: sleep:yes, displayswitch:no*, brightness:no
  *problems: moving selection on some (beginning with "p") icons on desktop

acpi2012.sys
  USB xHCI listed. HCSwitch uses USB2.0
  Manual HCSwitching(wpcr): works
  hotkeys: sleep:yes, displayswitch:no*, brightness:no
  notes: new unknown hardware found: "ACPI\DELLABCE\2&DABA3FF&0" (no compatible ID)
     (Dell Airplane Mode driver for Windows 8.0/later)
  *problems: moving selection on some (beginning with "p") icons on desktop

acpi2013.sys
  USB xHCI listed. HCSwitch uses USB2.0
  Manual HCSwitching(wpcr): works
  hotkeys: sleep:yes, displayswitch:yes, brightness:yes
  notes: This one seems to be the best.

acpi2015.sys
  USB xHCI not listed. HCSwitch uses USB2.0
  Manual HCSwitching(wpcr): hardware ID not found
  hotkeys: sleep:yes, displayswitch:yes, brightness:yes

For comparison

acpi_sp3original:
  USB xHCI not listed. HCSwitch: uses USB2.0
  Manual HCSwitching(wpcr): hardware ID not found
  hotkeys: sleep:yes(fails), displayswitch:yes, brightness:yes

acpi_OuterSpace(CRC32:2438B702):
  USB xHCI not listed. HCSwitch: uses USB2.0
  Manual HCSwitching(wpcr): hardware ID not found
  hotkeys: sleep:yes, displayswitch:yes, brightness:yes

acpi_vista5048:
  USB xHCI listed. HCSwitch uses USB3.0
  Manual HCSwitching(wpcr): not required
  hotkeys: sleep:yes, displayswitch:no, brightness:no

Common problems:
  1.) When returning from sleep, sometimes display is switched off. When display switch hotkey is working, it can re-enable it.
  2.) When sleep was used, newly connected usb pendrive was not detected. When connected prior returning from sleep, then is OK. It seems taht only USB3 mode is affected, in USB2 is OK.
#6482PPeti66x⇗ @genieautravail
I recommend you to check the acpi2013.sys. But prior this: If you used a modded INF to install the ACPI5048, you must revert to the original, then force-reinstall all device drivers which name contains "ACPI" from Windows\INF folder and restart.
Now brightness and display switch hotkeys should work again (this was killed by the ACPI5048 INF file). At this point, you can replace the acpi.sys, then install the wpcrset service with correct changes. Now you should have USB3 enabled and working hotkeys.
#6483Andalu⇗ @genieautravail
Here my USB configuration for Q87 board (intel controller + Renesas controller from a PCIEx to USB3 board):

with acpi.sys v.6666 from Outer Space (SHA-1:   B1CE1C07AFB0861BCCDEC17DAF04274A3DD80C8C) both controllers are visible and working:



with the original acpi.sys 5512 I got the error code 10 for the Intel controller but no issues for the Renesas controller:
#6484daniel_k⇗ @PPeti66x, thanks for your testing report.
Those acpi20xx.sys files are actually the same OuterSpace version (v6666), with a fix for ⇗ @Andalu's crazy ASRock board.

⇗ @Mov AX, 0xDEAD
Is there a way to optimize the string loader code at address 27FB8, maybe a loop instead of one by one in original code?
All strings must be present (Windows 2006 ~ Windows 2015), otherwise it won't have the desired effect.
#6485genieautravail⇗ @Andalu

Thanks you for the screenshots.

I understand better now.

It existed 2 groups of hardware:

One for consumers market without fully support for XP
I presume that the USB 3.0 ports doesn't works under XP even in USB 2.0 mode. True ?

Another group with full support of XP (especially for the business market).
The Dell Latitude E6230 and E6430 are business laptops released in 2012.
In 2012, XP was widely used in the business, so to make these laptops fully compatible with XP, the USB 3.0 ports can works in 2.0 mode.

Manufacturers had the choice to keep or not fully compatibility with XP in 2012, 2013.

Regards
#6486genieautravail⇗ @PPeti66x

Thanks you very much!

That's do a lot of tests for me the next week!

Regards
#6487onuracengiz⇗ 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)
Notepad++ (dont know if its still working,need confirmation)
Directx downloads are no longer available in microsoft downloads site
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 :) for researches purposes in order to see the tweaks,patches they have used
#6488Mov AX, 0xDEAD
Zitat von ⇗ daniel_k im Beitrag ¶ #6484

@Mov AX, 0xDEAD
Is there a way to optimize the string loader code at address 27FB8, maybe a loop instead of one by one in original code?
All strings must be present (Windows 2006 ~ Windows 2015), otherwise it won't have the desired effect.


⇗ @daniel_k  Hi Daniel,
Let's play with stack :)
1) allocate more space in stack sub   esp, 5Ch => sub   esp, 9Ch (40h bytes, max 16 pointers)

2) original code place pointer to first string "Windows 2000" (before it copy string to stack too, at var_24 stored first char "W") as SupportedOSList[0]
because order of string is important, need to shift all original pointer to end of new stack layout:
lea     eax, [ebp+var_24]
mov     [ebp-5Ch], eax = >mov     [ebp-9Ch], eax
....
mov     [ebp-58h], eax = >mov     [ebp-98h], eax
...
mov     [ebp-54h], eax = >mov     [ebp-98h], eax
...
mov     [ebp-50h], eax = >mov     [ebp-90h], eax

3) orig stack layout:
ebp-50h = SupportedOSList[3]
ebp-54h = SupportedOSList[2]
ebp-58h = SupportedOSList[1]
ebp-5Ch = SupportedOSList[0]
new stack layout:
ebp-90h = SupportedOSList[3]
ebp-94h = SupportedOSList[2]
ebp-98h = SupportedOSList[1]
ebp-9Ch = SupportedOSList[0]

4) create inject code, it must insert new pointers to stack as SupportedOSList[4], SupportedOSList[5], ...
.....
ebp-80h = SupportedOSList[7]
ebp-84h = SupportedOSList[6]
ebp-88h = SupportedOSList[5]
ebp-8Ch = SupportedOSList[4]
....

5) original code assume ebp-5Ch (SupportedOSList[0]) as base of SupportedOSList[] array, change base to new layout
push    [ebp+esi*4-5Ch] = > push    [ebp+esi*4-9Ch] (dont shure about fitting "-9Ch" to orig opcode, maybe changed instruction will be bigger)
6) orig code hardcoded to 4 elements of SupportedOSList[], increase to yours
inc     esi
cmp     esi, 4 => cmp     esi, xx
7) dont need copy strings on stack as original code do at begin, we can store strings in any PE section, only pointers to strings are important and need to store on stack
#6489Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6474
@Mov AX, 0xDEAD
Is it possible, just to compile ntldr from Sources from XP SP1 with small corrections (a lot not needed stuff in winload.exe from Vista)
and name it winload.exe for XP SP3


⇗ @diderius6
why ntldr is so bad and need winload.exe on x32 XP?
#6490Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6475
@Mov AX, 0xDEAD
I found this zeropage.c . zeropage.c is compiled into ntoskrnl.exe in XP.
But in Vista it is compiled into winload.exe . Nobody needs it there under XP.
So, there happens something like a doublecheck for "zeropage" with winload.exe from Vista and ntoskrnl.exe from XP.
A single Bit error can make this crash.
And this would explain, why this error happens not always but sometimes on newer compis.
So the Bsod happens in winload.exe from Vista SP2.


answer is in head of code:
Zitat
Module Name:
   zeropage.c
Abstract:
   This module contains the zero page thread for memory management.


When ntldr start ntoskrnl.exe, it never get CPU back(dont sure 100%), so there is no concurrency threads
ntldr is bootchain loader - get memory list from bios, prepare i386 protected mode, load boot drivers/dlls, fill main _LOADER_PARAMETER_BLOCK struct, jmp to kernel' entry point. I dont know what winload do, too big EXE as to be "bootchainloader" :)

p.s. You can explore leaked windows 10 bootloader sources, i think it contains BootMgr and Winload.exe

#6491diderius6⇗ @Mov AX, 0xDEAD

Now I think, the people who make ntldr make it very good. And the edit of boot.ini is much more comfortable than BCD.
They implemented in ntldr the only very needed functions for to boot XP. Via ntbootdd.sys it is also possible for ntldr to work
in such a way without Bios as winload.exe. But this works only for boot drivers, which depend on the scsiport. sys model.
Not storport!

For me, the only thing why winload.exe is interesting is,
that it gives you some more freedom for to go away from Bios.

Interesting, if it is possible for to example for to boot XP via winload from a nvme disk, when there is no legacy nvme in Bios.
Question in this is, HOW the nvme disk can be recogniced at all before the nvme driver itself is loaded.
I tried this with ntldr (just with some kind of generic legacy nvme add into Bios) and it would work, if there is a nvme driver, which depends on scsiport model.

But there are also very bad side effects in winload.exe.
Now, winload.exe looks at the Signature of the harddisk in registry.
I noticed that, because when you just delete whole key HKLM\SYSTEM\MountedDevices in registry,
winload.exe cant find any more the harddisk!
Hihi, so you can fake this key, add or delete the wished entries in MountedDevices and blind winload.exe thinks,
oh, this is my harddisk )..

Dietmar

PS: I dont know, how much work has to be done, that winload.exe works also for XP.
May be it is even possible to integrate drivers for to boot into such a winload.exe like PLOP.
#6492George King
Zitat von ⇗ Mov AX, 0xDEAD im Beitrag ¶ #6489
Zitat von ⇗ diderius6 im Beitrag ¶ #6474
@Mov AX, 0xDEAD
Is it possible, just to compile ntldr from Sources from XP SP1 with small corrections (a lot not needed stuff in winload.exe from Vista)
and name it winload.exe for XP SP3


@diderius6
why ntldr is so bad and need winload.exe on x32 XP?


Also DetectHAL feature should be nice [TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6493George King
Zitat von ⇗ diderius6 im Beitrag ¶ #6491
@Mov AX, 0xDEAD

But there are also very bad side effects in winload.exe.
Now, winload.exe looks at the Signature of the harddisk in registry.
I noticed that, because when you just delete whole key HKLM\SYSTEM\MountedDevices in registry,
winload.exe cant find any more the harddisk!
Hihi, so you can fake this key, add or delete the wished entries in MountedDevices and blind winload.exe thinks,
oh, this is my harddisk )..

Dietmar

PS: I dont know, how much work has to be done, that winload.exe works also for XP.


Interesting, this key is deleted during SysPrep method, that XP2ESD using (Adapted Russian MyFactory). Will see if I can encounter same BSOD if these key are present [TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6494Mov AX, 0xDEAD
Zitat von ⇗ George King im Beitrag ¶ #6492

Also DetectHAL feature should be nice

"nice" is notepad.exe + boot.ini, just add any combination of kernel + hal you want, no BCD shit, just text line
#6495George KingThats true,  I'm writing boot.ini on the fly. But there is a limit as I don't know how set correct partition - Diskpart partitions are counted different way then boot.ini partitions works. So there is limitation image deyployed by XP2ESD must be always at first partition on disk.

[TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/

 

Page 434

#6496Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6491

For me, the only thing why winload.exe is interesting is,
that it gives you some more freedom for to go away from Bios.

Interesting, if it is possible for to example for to boot XP via winload from a nvme disk, when there is no legacy nvme in Bios.
Question in this is, HOW the nvme disk can be recogniced at all before the nvme driver itself is loaded.
I tried this with ntldr (just with some kind of generic legacy nvme add into Bios) and it would work, if there is a nvme driver, which depends on scsiport model.

⇗ @diderius6
there is no escape from bios, to load winload from nvme disk,  bios must have nvme support = uefi driver
1) CSM emulator translate DOS mode int13h to uefi x64 calls, MBR and Partition boot code can use only int13h to access disk and load winload
2) On bioses without CSM no way to start x32 windows because no one yet written uefi64<->uefi32 translator (theoricaly this is possible)
#6497daniel_k⇗ @PPeti66x, ⇗ @genieautravail, ⇗ @Andalu, ⇗ @diderius6

Thanks to ⇗ @Mov AX, 0xDEAD, we now have an updated acpi.sys v6666 from outerspace.

Added the following _OSI Strings for Windows:
Windows 2006 (Vista)
Windows 2006 SP1 (Vista SP1)
Windows 2009 (Win7)
Windows 2012 (Win8)
Windows 2013 (Win8.1)
Windows 2015 (Win10)

Sometimes there is code in the DSDT table that disables/enables certain devices depending on the Windows version detected (some laptops hide the USB3 controller unless Win8 is detected).
This just fixes that: if it checks for any of the versions above, it will return TRUE.

EDIT: I've reuploaded, now there are 2 files:
- acpi2013.sys
- acpi2015.sys

It's just a one byte change between them.
Just use the one that works best for your system.

daniel_k has attached files to this post
#6498genieautravail⇗ @daniel_k

Thanks you very much and many thanks to ⇗ @Mov AX, 0xDEAD for his help!

That's cooool!

Regards
#6499Andalu⇗ @daniel_k  ⇗ @Mov AX, 0xDEAD

thanks guys for your amazing work
#6500PPeti66x⇗ @daniel_k
⇗ @Mov AX, 0xDEAD
Many thanks for it!

Test results for this version (on Dell M4800 notebook)
acpi2015-new.sys
USB xHCI listed. HCSwitch uses USB2.0
Manual HCSwitching(wpcr): works
hotkeys: sleep:yes, displayswitch:no*, brightness:no
notes: new unknown hardware found: "ACPI\DELLABCE\2&DABA3FF&0" (no compatible ID)
(Dell Airplane Mode driver for Windows 8.0/later)
*problems: moving selection on some (beginning with "p") icons on desktop

So it seems, that not always best to mimic the Windows 10. In my case the acpi2013 still works better. Why the display switching and brightness control hotkeys are disfunctional? And why is the interesting behaviour with moving selection on desktop icons beginning with "p"? It is a bug in my system or something special misinterpreted by XP?

And the most important question: is x64 version planned?
#6501daniel_k
Zitat von ⇗ PPeti66x im Beitrag ¶ #6500
So it seems, that not always best to mimic the Windows 10. In my case the acpi2013 still works better. Why the display switching and brightness control hotkeys are disfunctional? And why is the interesting behaviour with moving selection on desktop icons beginning with "p"? It is a bug in my system or something special misinterpreted by XP?

Can you dump the acpi tables of your Dell so I can see what is going on?
⇗ http://rweverything.com/

Zitat
And the most important question: is x64 version planned?


We don't have a fully working acpi.sys, so no point in do it for now.

#6502daniel_kI've updated the attachment. so there are 2 versions now: 2013/2015.
Use the one that works best for your system.
#6503PPeti66x⇗ @daniel_k
Thanks!

Here are the ACPI tables (BIOS version A26 - 06 Dec 2019)

UPDATE:
The new ACPI2013 have exactly same behaviour as new ACPI2015. The old ACPI2013 is OK.

PPeti66x has attached files to this post
#6504daniel_k
Zitat von ⇗ PPeti66x im Beitrag ¶ #6503
UPDATE:
The new ACPI2013 have exactly same behaviour as new ACPI2015. The old ACPI2013 is OK.

Thanks for the dump.
Looking at the ACPI tables, there is no "Windows 2015", theoretically the 2013 and 2015 versions should behave in the same way, even the "old test" ones.

That is really strange! Let me double check.
#6505PPeti66x⇗ @daniel_k
I made some extra tests: replaced entries 1-by-1 in hexeditor (to "Windows 2002") and found the incompatible entries: "Windows 2006", "Windows 2009" and "Windows 2012" ("Windows 2006 SP1" is OK). It seems, that changes are cumulative (e.g. without 2012 there is no unknown hardware found, without 2009 and 2012 no jumping to file beginning with "p" on display switch Fn key), not only the highest supported is used. So if the above 3 entries missing, it works correctly on my Dell M4800. The "Windows 2015" only variant was problematic, because it was not supported at all.
#6506daniel_k
Zitat von ⇗ PPeti66x im Beitrag ¶ #6505
@daniel_k
It seems, that changes are cumulative (e.g. without 2012 there is no unknown hardware found, without 2009 and 2012 no jumping to file beginning with "p" on display switch Fn key), not only the highest supported is used.

That doesn't make sense, because of this:

		Method(_INI, 0, NotSerialized)
{
Store(0x07D0, OSYS) -> BY DEFAULT WIN2000 IF NOT MATCH
If(CondRefOf(\_OSI, Local0))
{
If(_OSI("Linux"))
{
Store(0x03E8, OSYS)
}
If(_OSI("Windows 2001")) -> COMPARES ONE BY ONE
{
Store(0x07D1, OSYS) -> SUPPORTED? WRITE/STORE 0x07D1 IN VARIABLE OSYS
}
If(_OSI("Windows 2001 SP1"))
{
Store(0x07D1, OSYS)
}
If(_OSI("Windows 2001 SP2"))
{
Store(0x07D2, OSYS)
}
If(_OSI("Windows 2001.1"))
{
Store(0x07D3, OSYS)
}
If(_OSI("Windows 2006"))
{
Store(0x07D6, OSYS)
}
If(_OSI("Windows 2009"))
{
Store(0x07D9, OSYS)
}
If(_OSI("Windows 2012"))
{
Store(0x07DC, OSYS)
}
If(_OSI("Windows 2013"))
{
Store(0x07DD, OSYS)
}
}
...



Acpi.sys reports supported for all strings.
However, when doing the checks, from older to newer versions (Windows 2001 to 2013), if a newer version is detected, OSYS variable is overwritten, as seen in the code in spoiler.

In other parts of the DSDT code, search for OSYS and you'll see that it is used with a comparison operator (GreaterEqual, Greater, Less, Equal, etc.)

#6507pappyN4Hi ⇗ @Mov AX, 0xDEAD

I am having an issue with some of the functions from safecrtnt.lib.   Specifically _ultow_s  _ultoa_s  _ui64toa_s  for samsung nvme driver.   It shows up correctly when compiling emu_extender for x86, but on the x64 build it is missing.


I downloaded the latest version to see if it was an issue with any changes I had made, but same problem.  Any ideas why?

That reminds me, when building a x86 or x64 with a fresh copy, the build fails with the following error.  ntoskrn8.c(214) : error C4013: 'RtlQueryRegistryValues' undefined; assuming extern returning int


I forgot about this. I had removed it to get it to compile while testing the other stuff.  But it is needed for uapstor if someone is using it.

 
NTSTATUS
RtlQueryRegistryValuesEx_k8 (
ULONG RelativeTo,
PCWSTR Path,
PRTL_QUERY_REGISTRY_TABLE QueryTable,
PVOID Context,
PVOID Environment )
{
return RtlQueryRegistryValues(RelativeTo, Path, QueryTable, Context, Environment); <--- line 214 in ntoskrn8.c
}
#6508Gelip⇗ @diderius6

Zitat von ⇗ diderius6 im Beitrag ¶ #6447
Until now I cant debug Vista,
because always this crazy "enable signature unforce" I have to hit in the beginning.
Because this bootloader from Vista SP2 would be really nice,
I can only debug it when I get over this "unforce signature" step

Try to patch the bootmgr, winload.exe and ntoskrnl.exe files with ⇗ EfiGuard (-> ⇗ binaries)
I tried it on WinXP 64-bit with the beta Longhorn 16497 files and it patched so it should be able to handle Vista files too. Use Loader.config.efi and select option 2 Boot time DSE bypass and Wait for keypress Yes:


[edited]
This only seems to work with an EFI loader and a 64-bit kernel
#6509diderius6⇗ @Gelip

On which OS you run this tool?

I need a step by step Tutorial!

Today I also try to enable Windbg via Lan during bootice and the crazy BCD, never tried
Dietmar

PS: Debug via serial COM1 works for the Vista bootloader.
I read here, that ⇗ @George King uses the bootmgr from win7 and winload.exe from Vista SP2 and get rid of the crazy "driver signature" message.
Have you tried this?
Interesting, that with this tool you can patch ntoskrnl.exe. So, easy hack there is also possible. Before I never succeed with it,
because XP SP3 tells that ntoskrnl.exe is broken.

About the Bsod pfn_list_corrupt I read:
"This error is typically caused by a driver passing a bad memory descriptor list. For example, the driver might have called MmUnlockPages twice with the same list.

If a kernel debugger is available, examine the stack trace: the !analyze debug extension displays information about the bug check and can be helpful in determining the root cause, then enter one of the k (Display Stack Backtrace) commands to view the call stack."

EDIT: To change bootmgr from Vista SP2 against bootmgr from win7 does not change "Signature check".
#6510Gelip
Zitat von ⇗ diderius6 im Beitrag ¶ #6509
On which OS you run this tool?

Not in OS but under Uefi Shell

⇗ UPGDSED can be used to disable DSE in Win7, 8, 10 but only for 64-bit Windows:
 
Universal PatchGuard and Driver Signature Enforcement Disable

WARNING: Using this tool might render your PC to an unbootable state.
If you want to continue type CONTINUE (all uppercase) and press Enter

CONTINUE
Patch: Windows Version: 6.1.7601, LegacyBIOS

Patch: Symbol dlls extracted successfully.
Patch: Dbghelp initialized.
Patch: Copy files to %TEMP%.
Patch: Copy success.
Patch: Scanning ntoskrnl for patterns.

Patch: Ntoskrnl version: 6.1.7601.18741

-> SeValidateImageData 00285FCC
-> CcInitializeBcbProfiler 004CED80
-> KeInitAmd64SpecificState 004DC680
-> SepInitializeCodeIntegrity 00367921

Patch: Ntoskrnl scan complete.
Patch: Scanning winload for patterns.

Patch: Winload version: 6.1.7601.18649


Patch: Cannot query ImgpValidateImageHash offset using symbols: Nie mo&#380;na uko&#324;c
y&#263; wykonywania tej funkcji.

Patch: Running signature scan for ImgpValidateImageHash
-> ImgpValidateImageHash 00031584

Patch: Winload scan complete.

Patch: ModifyFilesAndMove succeed
Patch: Executing BCDEDIT commands
bcdedit.exe -create {71A3C7FC-F751-4982-AEC1-E958357E6813} -d "Patch Guard Disa
led" -application OSLOADER
Wpis {71a3c7fc-f751-4982-aec1-e958357e6813} zosta&#322; pomy&#347;lnie utworzony.
bcdedit.exe -set {71A3C7FC-F751-4982-AEC1-E958357E6813} device partition=C:
Operacja uko&#324;czona pomy&#347;lnie.
bcdedit.exe -set {71A3C7FC-F751-4982-AEC1-E958357E6813} osdevice partition=C:
Operacja uko&#324;czona pomy&#347;lnie.
bcdedit.exe -set {71A3C7FC-F751-4982-AEC1-E958357E6813} systemroot \Windows
Operacja uko&#324;czona pomy&#347;lnie.
bcdedit.exe -set {71A3C7FC-F751-4982-AEC1-E958357E6813} path \Windows\system32\
sloader.exe
Operacja uko&#324;czona pomy&#347;lnie.
bcdedit.exe -set {71A3C7FC-F751-4982-AEC1-E958357E6813} kernel ntkrnlmp.exe
Operacja uko&#324;czona pomy&#347;lnie.
bcdedit.exe -set {71A3C7FC-F751-4982-AEC1-E958357E6813} recoveryenabled 0
Operacja uko&#324;czona pomy&#347;lnie.
bcdedit.exe -set {71A3C7FC-F751-4982-AEC1-E958357E6813} nx OptIn
Operacja uko&#324;czona pomy&#347;lnie.
bcdedit.exe -set {71A3C7FC-F751-4982-AEC1-E958357E6813} nointegritychecks 1
Operacja uko&#324;czona pomy&#347;lnie.
bcdedit.exe -set {71A3C7FC-F751-4982-AEC1-E958357E6813} inherit {bootloadersett
ngs}
Operacja uko&#324;czona pomy&#347;lnie.
bcdedit.exe -displayorder {71A3C7FC-F751-4982-AEC1-E958357E6813} -addlast
Operacja uko&#324;czona pomy&#347;lnie.
bcdedit.exe -timeout 10
Operacja uko&#324;czona pomy&#347;lnie.
Patch: Setting PeAuth service to manual start
Patch: PeAuth service set to manual start

Patch: BcdCreatePatchEntry succeed
Patch: Press Enter to exit



 

Page 435

#6511PPeti66x⇗ @daniel_k
The new ACPI 2013,2015 behaviour is exactly same as previous.
By the DSDT table there is no cumulative behaviour. But cumulative behaviour was observed. How is it possible? This is really strange.
#6512diderius6After crazy hard work ,
⇗ @infuscomus succeed to boot XP SP3 via the acpi.sys 6.0.5365.8 (winmain_idx05.060419-1800) from Vista Longhorn
to desktop. The problem was, to set in acpi.sys the function ACPILoadFindRSDT() back to the place, where XP stores RSDT table in registry.

This works with the use of the nice Emu_Extender from ⇗ @Mov AX, 0xDEAD
⇗ https://github.com/MovAX0xDEAD/NTOSKRNL_Emu

Oh, soso nice what can be done with XP SP3 and this gives me motivation to do much more
Dietmar

#6513Mov AX, 0xDEAD
Zitat von ⇗ pappyN4 im Beitrag ¶ #6507
Hi @Mov AX, 0xDEAD
I am having an issue with some of the functions from safecrtnt.lib.   Specifically _ultow_s  _ultoa_s  _ui64toa_s  for samsung nvme driver.   It shows up correctly when compiling emu_extender for x86, but on the x64 build it is missing.

That reminds me, when building a x86 or x64 with a fresh copy, the build fails with the following error.   ntoskrn8.c(214) : error C4013: 'RtlQueryRegistryValues' undefined; assuming extern returning int


Hi pappyN4

- I rewrote ntoskrnl_redirects.h, now it export everything more correctly, i didnt commit it yet because im in process of checking some x64 custom drivers (storport8 has x64 unfixed issues)
- Something wrong with your DDK, RtlQueryRegistryValues() declared in wdm.h, this header included at begin in ntoskrnl8.c (via ntddk.h)
#6514diderius6I make some more tests with winload.exe and XP SP3 on the Asrock z370 Fataltiy gaming k6 board with i8700k cpu.
Via Windbg I get message
"Warning: Hal and ntoskrnl overlap"
So, it is a real problem
Dietmar
#6515Gelip⇗ @diderius6

Zitat von ⇗ diderius6 im Beitrag ¶ #6514
Via Windbg I get message
"Warning: Hal and ntoskrnl overlap"
So, it is a real problem
Dietmar

This error can occur when restarting the system and not restarting WinDbg.
#6516genieautravailHello ⇗ @daniel_k and ⇗ @PPeti66x

Here the results of my tests:

For the Ivy Bride Laptops I have followed the advices of PPeti66x by installing XP first with the original acpi.sys and after that I have swiched to a modded one.

Ivy Bridge Dell Latitude E6230 laptop:

Original acpi.sys:

USB 3.0 controller is "hidden" and there is nothing to do for that
All keyboard shortcuts works

acpi_5048:

USB 3.0 works with HCSwitch
USB 3.0 works with WCRSET
Only the keyboard shortcut for brighness doesn't works

Unlike PPeti66x The keyboard shortcut for display switch works.
Probably a result of the differences between Ivy Bridge and Haswell chipsets.

acpi2013 (the old):

No 1E31 device in the devices manager, so no USB 3.0
All keyboard shortcuts works even the one for brighness

The old acpi2013 is unable to "unhide" the "hidden" USB 3.0 controller on a Ivy Bridge chipset!

acpi2015:

There is a missing device in the devices manager:
ACPI\DELLABCE\2&DABA3FF&0

USB 3.0 doesn't works with HCSwitch
USB 3.0 works with WPCRSET
a part of the keyboard shortcuts doesn't works (exemples: display switch and brighness)

The acpi2015 is better that the old acpi2013 but there is a regression for the keyboard shortcuts and a missing device appear in the device manager.

Ivy Bridge Dell Latitude E6430 laptop:

The results are exactely the same that for the Dell Latitude E6230.

Haswell ZOTAC ZBOX EN760 mini PC:

Original acpi.sys:

USB 3.0 controller is "hidden" and there is nothing to do for that

acpi_5048:

USB 3.0 works with HCSwitch but there is a issue with the shutdown or reboot process
USB 3.0 works with WCRSET and the issue above is gone

acpi2013 (old):

USB 3.0 works with HCSwitch but there is a issue with the shutdown or reboot process
USB 3.0 works with WCRSET and the issue above is gone

acpi2015:

USB 3.0 works with HCSwitch but there is a issue with the shutdown or reboot process
USB 3.0 works with WCRSET and the issue above is gone

Any of the 3 files can be used with the same results on this computer.

The acpi2015 has good promises if the regression about the keyboard shortcuts can be resolved.

Regards
#6517PPeti66x⇗ @genieautravail
Did you try all the ACPI files from the test set? These works differently. May be you will found a variant, which is good for your mobo. For me, it was the ACPI2013, but the new ACPI2013 is not good for me. At this time is unknown, what causes the problems in the new version.
#6518George King
Zitat von ⇗ diderius6 im Beitrag ¶ #6509
@Gelip

On which OS you run this tool?

I need a step by step Tutorial!

Today I also try to enable Windbg via Lan during bootice and the crazy BCD, never tried
Dietmar

PS: Debug via serial COM1 works for the Vista bootloader.
I read here, that @George King uses the bootmgr from win7 and winload.exe from Vista SP2 and get rid of the crazy "driver signature" message.
Have you tried this?
Interesting, that with this tool you can patch ntoskrnl.exe. So, easy hack there is also possible. Before I never succeed with it,
because XP SP3 tells that ntoskrnl.exe is broken.

About the Bsod pfn_list_corrupt I read:
"This error is typically caused by a driver passing a bad memory descriptor list. For example, the driver might have called MmUnlockPages twice with the same list.

If a kernel debugger is available, examine the stack trace: the !analyze debug extension displays information about the bug check and can be helpful in determining the root cause, then enter one of the k (Display Stack Backtrace) commands to view the call stack."

EDIT: To change bootmgr from Vista SP2 against bootmgr from win7 does not change "Signature check".


Its not only about bootmgr swapping, you need BCD too with nointegritychecks enabled. If you want manualy edit BCD from XP, use bcdedit from Vista RTM. This will be included in still unreleased XP2ESD 1.4

 
https://www.geoffchappell.com/notes/windows/boot/bcd/elements.htm?tx=5



Zitat von ⇗ George King im Beitrag ¶ #6446
This is BSOD that I encounter when booting using Windows 7 bootmgr + BCD + Vista winload.exe.

This what happends. Bootmenu and first option is for winload and detectHAL and integrityservices disabled in BCD.
Boot menu

Then booting

Then BSOD




There is no need to use 3rd tools, as we can do it using bcdedit.exe 6.0.6000.16386 (vista_rtm.061101-2205)

Example from setup.cmd that handle BCD entries, %TARGET% is system like C:, this means which partition is system one you want to boot from.
This will suppress mentioned "Signature check"

 
REM Winload option
if exist "%TARGET%\Windows\system32\winload.exe" (
bcdedit /store "%TARGET%\boot\bcd" /set {default} description "Microsoft Windows XP" >nul
bcdedit /store "%TARGET%\boot\bcd" /set {default} device partition=%TARGET% >nul
bcdedit /store "%TARGET%\boot\bcd" /set {default} path \windows\system32\winload.exe >nul
bcdedit /store "%TARGET%\boot\bcd" /set {default} osdevice partition=%TARGET% >nul
bcdedit /store "%TARGET%\boot\bcd" /set {default} systemroot \Windows >nul
bcdedit /store "%TARGET%\boot\bcd" /set {default} detecthal yes >nul
bcdedit /store "%TARGET%\boot\bcd" /set {default} pae default >nul
bcdedit /store "%TARGET%\boot\bcd" /set {default} integrityservices disable >nul
) else (
bcdedit /store "%TARGET%\boot\bcd" /delete {default} >nul
)


REM NTLDR option
if exist "%TARGET%\Windows\system32\winload.exe" (
bcdedit /store "%TARGET%\boot\bcd" /create {ntldr} /d "Microsoft Windows XP Legacy" >nul
) else (
bcdedit /store "%TARGET%\boot\bcd" /create {ntldr} /d "Microsoft Windows XP" >nul
)
bcdedit /store "%TARGET%\boot\bcd" /set {ntldr} device partition=%TARGET% >nul
bcdedit /store "%TARGET%\boot\bcd" /set {ntldr} path \ntldr >nul
bcdedit /store "%TARGET%\boot\bcd" /displayorder {ntldr} /addlast >nul

del /q /s /a "%TARGET%\boot\bcd.log*" >nul
[TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6519infuscomusported vista beta 5365 acpi.sys - testers welcome!

infuscomus has attached files to this post
#6520Andalu⇗ @infuscomus

just tried on my asrock B250M Pro4 with installed XP-IE 2020.9.9:
7B BSOD for both Microsoft SATA driver v2.0 (v6.2.9200.16384) and RSTe 4.7.0.1117.

Edit1: h8l.dll copied into windows\system32 folder.

Edit2: same bsod for the Universal 32bit Intel RST AHCI+RAID driver v11.2.0.1006.
#6521genieautravail⇗ @PPeti66x

I will try the others ACPI files as soon that I will have a little free time!
#6522ruthan
Zitat von ⇗ infuscomus im Beitrag ¶ #6519
ported vista beta 5365 acpi.sys - testers welcome!

 What are expectation that it would be better than XP modded ACPI, make sense test it for intel desktop, or only laptops, or its more for ryzen? Is expected than USB3 compatibility would be better if yes, with Intel USB3 or external PCI-E controllers?
#6523daniel_k⇗ @PPeti66x

Please do a last test using the 2009 and 2012 acpi files attached.

daniel_k has attached files to this post
#6524PPeti66x⇗ @infuscomus
XP SP3 (with PosReady updates) failed to boot in both normal and safe mode on my Dell M4800 (Haswell).
Normal:
 STOP: 0x0000007E (0xC0000005,0xB7F240A8,0xB84D715C,0xB84D6E58)
 ACPI.sys - Address B7F240A8 base at B7EE1000, Datestamp 601a73b6
SafeMode:
 STOP: 0x0000007E (0xC0000005,0xF74B30A8,0xF78B215C,0xF78B1E58)
 ACPI.sys - Address F74B30A8 base at F7470000, Datestamp 601a73b6
#6525daniel_k
Zitat von ⇗ ruthan im Beitrag ¶ #6522
What are expectation that it would be better than XP modded ACPI, make sense test it for intel desktop, or only laptops, or its more for ryzen? Is expected than USB3 compatibility would be better if yes, with Intel USB3 or external PCI-E controllers?


IMHO, only acpi.sys v6666 (outerspace) should be recommended. as it is based on the original SP3 version with improved ACPI 2.0 support by ⇗ @Mov AX, 0xDEAD .

When using Vista versions you'll notice issues sooner or later, as acpi.sys does much more than simply parsing the ACPI tables.
For instance, with 5048 beta, wireless connection would not activate automatically upon logon.

 

Page 436

#6526PPeti66x⇗ @daniel_k
Both works exactly same as the test versions in ⇗ http://www.mediafire.com/file/hwio6yp5je1hqkq .
#6527daniel_k
Zitat von ⇗ PPeti66x im Beitrag ¶ #6526
@daniel_k
Both works exactly same as the test versions in ⇗ http://www.mediafire.com/file/hwio6yp5je1hqkq .

Thanks for testing them.

You'll have to use that "custom" acpi2013.sys, unfortunately no universal fix is possible.
#6528PPeti66x⇗ @daniel_k
Until those strings remains easily patchable, I can easily adapt future versions for my compi. Thanks for your hard work.
#6529diderius6I make a deeper analysis with the debug version of ntoskrnl.exe (here ntkrnlpa.exe)
why the Bsod 0x000004E, (0x0000008F,xxx,yyy,0}
happens. It is not direct related to winload.exe from Vista SP2.

.text:00496CF6 loc_496CF6: ; CODE XREF: MmZeroPageThread()+187 j
.text:00496CF6 mov cl, _MmSecondaryColorNodeShift
.text:00496CFC mov eax, ebx
.text:00496CFE imul eax, 1Ch
.text:00496D01 add eax, _MmPfnDatabase
.text:00496D07 mov eax, [eax+0Ch]
.text:00496D0A shr eax, 4
.text:00496D0D and eax, 7
.text:00496D10 shl eax, cl
.text:00496D12 mov ecx, _MmSecondaryColorMask
.text:00496D18 and ecx, ebx
.text:00496D1A or ecx, eax
.text:00496D1C call @MiRemoveAnyPage@4 ; MiRemoveAnyPage(x)
.text:00496D21 cmp eax, ebx
.text:00496D23 jnz loc_496E90

.text:00496E90 loc_496E90: ; CODE XREF: MmZeroPageThread()+1CB j
.text:00496E90 push 0 ; BugCheckParameter4
.text:00496E92 push ebx ; BugCheckParameter3
.text:00496E93 push eax ; BugCheckParameter2
.text:00496E94 push 8Fh ; BugCheckParameter1
.text:00496E99 push 4Eh ; BugCheckCode
.text:00496E9B call _KeBugCheckEx@20 ; KeBugCheckEx(x,x,x,x,x)
.text:00496E9B _MmZeroPageThread@0 endp ; sp-analysis failed
So Bsod happens direct after the call of MiRemoveAnyPage(),
when eax and ebx are different. Exact the value from eax is given out in Bsod as BugCheckParameter2,
and the (now different) value from ebx in BugCheckParameter3.
BugCheckParameter4 is always 0, as you can see above
Dietmar

⇗ https://reactos.org/wiki/Techwiki:Memory...ndows_XP_kernel
#6530Gelip⇗ @George King

Zitat von ⇗ George King im Beitrag ¶ #6518
If you want manualy edit BCD from XP, use bcdedit from Vista RTM.

BootICE -> Professional mode is best for editing BCD under WinXP
#6531George King
Zitat von ⇗ Gelip im Beitrag ¶ #6530
@George King
Zitat von ⇗ George King im Beitrag ¶ #6518
If you want manualy edit BCD from XP, use bcdedit from Vista RTM.

BootICE -> Professional mode is best for editing BCD under WinXP



Direct editing BCD from cmd is still more powerfull for all commands that I can run in WinPE or installed Windows. Maybe I don't see the right benefits as you? What is so special on it? Or is here something what can't be done using bcdedit? [TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/
#6532jonathan_hzsprime b250m plus I7-7700 hd630
Successful installation   bbs.pcbeta.com xp Section
I am not good at English
#6533R3nI need the AMDXHCI_XP_FINAL.rar driver, but I can't find where it was posted in the thread.
#6534genieautravail⇗ @PPeti66x

I have tested all acpi files from this archive:
⇗ http://www.mediafire.com/file/hwio6yp5je1hqkq

Of all acpi files, all keyboard shortcuts works even the one for brighness only with acpi2013 and acpi2015.
But for both of them, no 1E31 device in the devices manager...

Regards
#6535infuscomus⇗ @Andalu ⇗ @PPeti66x

I think my re-implementation of XP's find RSDT function was not done correctly, but I'm not sure how to fix it.

⇗ @daniel_k ⇗ @Mov AX, 0xDEAD

can you see where I went wrong in my acpi.sys?
#6536Gelip⇗ @George King

Zitat von ⇗ George King im Beitrag ¶ #6531
Direct editing BCD from cmd is still more powerfull for all commands that I can run in WinPE or installed Windows.

BootICE also works under WinPE or installed Windows:

There is too much typing in bcdedit in CMD and it's easy to make a mistake, especially with GUID's. In BootICE in professional mode, I just click and choose options from the list:

For example, ApplicationDevice and OSDevice options are very easy to modify:

BootICE can also easily edit UEFI Boot Menu:

Besides, it is free and it can also much more
#6537diderius6⇗ @R3n

The last version of AMDXHCI_XP_FINAL can be found at
⇗ https://forums.mydigitallife.net/threads...hardware.81607/
Dietmar
#6538infuscomus⇗ @diderius6

I patched ACPILoadFindRSDT into vista RTM acpi.sys - can you test it to see if it is more stable?
#6539diderius6⇗ @infuscomus

Yes, just send to me
Dietmar
#6540diderius6I change in Debug ntoskrnl.exe from XP SP3
.text:00496D23 jnz loc_496E90  => .text:00496D23 nop nop nop nop nop nop
Then at boot XP tells, that ntoskrnl.exe is damaged.
Now I open with the tool resource_hacker this hacked ntoskrnl.exe
and just store it again.
This tool overcomes the XP check and now the edited ntoskrnl.exe
is accepted by XP
Dietmar

⇗ http://www.angusj.com/resourcehacker/#download

 

Page 437

#6541infuscomus⇗ @diderius6

here it is.

edit: updated

infuscomus has attached files to this post
#6542R3n
Zitat von ⇗ diderius6 im Beitrag ¶ #6537
@R3n

The last version of AMDXHCI_XP_FINAL can be found at
⇗ https://forums.mydigitallife.net/threads...hardware.81607/
Dietmar

Thanks.
#6543gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6540
Now I open with the tool resource_hacker this hacked ntoskrnl.exe
and just store it again.
⇗ @diderius6 ...it probably reset the CRC value in the PE header. Don't know, can you or someone confirm?
#6544diderius6Hi,
is there a tool, with which you can track the use of the PFN list for any driver?
Can only a driver, which uses paged memory, can make a fault in the PFN list (especially in MiRemoveAnyPage(x) )?
Dietmar
#6545kukonosau⇗ @infuscomus
Hello. How to change acpi.sys in Vista? I use any other file, and I have error acpi is corrupted, and black screen. Windows Vista can't load any modify driver acpi.
#6546infuscomus⇗ @kukonosau

It is not a stable acpi.sys right now.
#6547kukonosau⇗ @infuscomus
Sorry( But acpi.sys for WinXP64 exist for Ryzen? I use acpi from post #2202 and get BSOD. More BSOD in games than desktop.
#6548infuscomus⇗ @kukonosau

I am not sure if one exists for XPx64.
#6549kukonosau⇗ @infuscomus
Thanks for answers. But why Win7 and 8.1 equal bad working in games on Ryzen (GTA IV)? Equal lags has!!! Vista before BSOD hasn't lags in games and XP also (after change intelppm.sys), and Win10. What is problem? I can't solve 2 years!!! Win7 highest FPS sometimes than Win10, but have lagging few games. Why? Diderius6 while can't help me.
#6550Mov AX, 0xDEAD
Zitat von ⇗ kukonosau im Beitrag ¶ #6545
How to change acpi.sys in Vista? I use any other file, and I have error acpi is corrupted, and black screen. Windows Vista can't load any modify driver acpi.

это тоже самое что спросить у хирурга "как починить сломанный орган", он конечно раскажет в деталях, но повторить ты врят ли сможешь - слишком много деталей  и нюансов. Лучше начинать с базовых вещей - исправление контрольной суммы PE файла, отключение проверки подписей драйверов и т.д.
p.s. по winxp_x64 здесь заметно меньше материалов, архитектура сложнее (ассемблерный уровень) и она заметно менее популярна
#6551daniel_k- WinXPPAE v3

* Fixed setting of all memory size variables.
* Added option to set custom memory limits, in MB (megabytes) or GB (gigabytes), from 4GB to 128GB.
* Fixed crashes when using patched HAL with unpatched Kernel
* Fixed 64-bit addressing being enabled when less than 4GB is available, related to fix above.
* Removed the /4GB option as it didn't work properly.
* Removed useless patching of non-PAE Kernels (ntkrnlmp.exe and ntoskrnl.exe).

⇗ http://www.mediafire.com/file/jb835a2pcg62who

 
/M:131072MB Limits RAM to a custom amount in MB (megabytes).
/M:128GB Limits RAM to a custom amount in GB (gigabytes).
/M:ALL Uses all available RAM.
/NB Does not create backup copies of original files.
/NOBACKUP Same as /NB


Now you can permanently replace all original HALs with patched ones (hal*.dll files are not protected by SFC), then create an entry in boot.ini to use the patched PAE Kernel (Uni or MultiProcessor) with unlocked RAM.

#6552infuscomus⇗ @daniel_k

/4GB option did not work correctly? how so? It seems to work just fine for me.

are drivers misbehaving still and issue when using more than 4GB of RAM?
#6553ruthan⇗ @daniel_k - Could this explain with my old install in had with same HW, BSOD with Pool in non page area and with other it works fine? Also that with new install NVME drivers are working with OLD not? What is now options for best compatibility? Could this fix some USB3 device crashes not working problems?
#6554daniel_k
Zitat von ⇗ infuscomus im Beitrag ¶ #6552
/4GB option did not work correctly? how so? It seems to work just fine for me.

As ⇗ @Mov AX, 0xDEAD have said before, 4GB were available, but included addresses above 4GB, so a badly written driver could have issues accessing those addresses.
You may mimic its behavior by using the /M:4097MB parameter.

Zitat
are drivers misbehaving still and issue when using more than 4GB of RAM?


Yes, the issue lies in the drivers themselves, not in the patch.
Drivers that have issues on XP with my patch also have exactly the same issues on Server 2003 Datacenter/Enterprise.

#6555daniel_k⇗ @ruthan

The updated patcher won't help you.

When everything works on a new install, something was wrong with the old one.
It's difficult to diagnose old installs, can't help you with that.

 

Page 438

#6556daniel_k⇗ @genieautravail

Can you dump the acpi tables of your laptop so I can see if there is something I can do about it?
⇗ http://rweverything.com/
#6557diderius6I make a try with verifier.exe on original XP SP3 5512.
This is output from Windbg.
Does this mean, all is ok with any driver from this XP SP3?
Dietmar

PS: I noticed, that the very last version from XP SP3, updated with all the Posready updates until May 2019
⇗ https://www.zone94.com
does not longer work together with the debug versions of XP SP3 hal.dll and ntoskrnl.exe .

EDIT: Now I think, this happens because of the use from ntoskrn8.sys .

⇗ @Outbreaker
So it seems not a good idea, to make use of ntoskrn8.sys in a full working XP SP3 installation for daily use.

Better to integrate wished functions direct into ntoskrnl.exe.
And this modified ntoskrnl.exe can then be used after just load and store with the nice tool ResourceHacker.
0: kd> !verifier

Verify Level fb ... enabled options are:
Special pool
Special irql
All pool allocations checked on unload
Io subsystem checking enabled
Deadlock detection enabled
Enhanced Io checking enabled
DMA checking enabled

Summary of All Verifier Statistics

RaiseIrqls 0x2b
AcquireSpinLocks 0xfc9c5
Synch Executions 0x2
Trims 0x6740

Pool Allocations Attempted 0xec08
Pool Allocations Succeeded 0xec08
Pool Allocations Succeeded SpecialPool 0xec08
Pool Allocations With NO TAG 0x9
Pool Allocations Failed 0x0
Resource Allocations Failed Deliberately 0x0

Current paged pool allocations 0x148c for 00872544 bytes
Peak paged pool allocations 0x14c9 for 0087CA78 bytes
Current nonpaged pool allocations 0xf2e for 0219E658 bytes
Peak nonpaged pool allocations 0x112e for 024B66B0 bytes
#6558iyutos(deleted)  I found "Modded ACPI Drivers Depot"
#6559DibyaWhat kind of problems are faced with ntoskrn8.sys? ⇗ @diderius6
#6560infuscomus
Zitat von ⇗ diderius6 im Beitrag ¶ #6557
So it seems not a good idea, to make use of ntoskrn8.sys in a full working XP SP3 installation for daily use.


⇗ @diderius6

I disagree, it is perfectly fine for daily use, it only becomes an issue when debugging is needed - in which case use the official checked build.
#6561genieautravail⇗ @daniel_k

ACPI tables of the laptops.

Regards

genieautravail has attached files to this post
#6562genieautravail⇗ @daniel_k, ⇗ @Mov AX, 0xDEAD

Zitat

IMHO, only acpi.sys v6666 (outerspace) should be recommended. as it is based on the original SP3 version with improved ACPI 2.0 support by ⇗ @Mov AX, 0xDEAD .


Perhaps, but only on computers that don't "hide" the USB 3.0 controller.
Overall, on all computers on which I have tried the various acpi files, I get better results with the acpi_5048...
In the acpi.sys v6666 (outerspace) something is mssing or wrong as it can't "unhide" the USB 3.0 controller.
Probably a tiny thing to change in the code.

Regards

#6563diderius6This is the famous double slit experiment in Quantenmechanic.
2 years ago I think about, how to prove it. Now it seems, that it has been done.
Take a look on this "streets" for photons, electrons, any particel.
Because they do not cross, it is impossible, that any information is lost, world as big clock,
Dietmar

#6564diderius6After crazy fight with missing arcpath, which gives Bsod 0x7b,
I succeed to get original XP SP3 5512 to work with the original acpi.sys from Vista.

This is great work from ⇗ @infuscomus

Dietmar

#6565infuscomus⇗ @diderius6

Please share how you achieved this! even I still have not got this acpi.sys working properly.
#6566Mov AX, 0xDEADHi,

Ntoskrnl_Extender + Storport_win8 + Guide updated to full support x64 Windows XP/2003, everything works - wdf 1.11, usb 3, storport_win7, msahci, storahci, uaspstor, ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (328)
not tested yet: 3rd party intel/amd sata drivers, nvme_win7

also Vista and Win7 supported as target os, compilation is OK for x32/x64 platforms, but not tested on real OSes
#6567XPLives⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #5358
@diderius6 @XPLives

regarding XP and larger than 2TB hard drives -

I noticed the import table for disk.sys of vista RTM is a match for XP ntoskrnl hal and classpnp.sys

I'm wondering if it might be possible to swap XP disk.sys with vista RTM disk.sys to get larger disk support?

edit:
and disk.sys of windows 7 SP1 is a match with ntoskrn8 extender.


Don't bother.  If you did get this to work it would only support GPT for large disks.  Once you moved the drive to vanilla XP or 2K it would not read larger drives > 2.2TB and it would not read GPT without the same modded drivers on the the target system.

I am looking into finding a way to read controller chips that do the translation so then MBR can be used to boot off > 2.2TB drives internally connected.   Then you can have 17.6TB for a boot drive using FAT32.
#6568infuscomus⇗ @XPLives

I'm not too concerned about not having 2TB+ disks on XP right now (excluding the USB workaround), and it turns out it was not the issue anyway, it was in fact a kernel panic from having more than 32 CPUs.
#6569XPLives⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #6568
@XPLives

I'm not too concerned about not having 2TB+ disks on XP right now (excluding the USB workaround), and it turns out it was not the issue anyway, it was in fact a kernel panic from having more than 32 CPUs.


Which CPU do you have with 32 Cores+ showing?  I thought you had a 12 Cores / 24 Thread ThreadRipper at one point you mentioned for the TRX40 motherboard.

I'm also doing another test later for 18TB and 32TB for MBR and GPT.
#6570infuscomus⇗ @XPLives

3960x - 24 Core / 48 Thread

I found that if I either disabled a CCX or disabled hyperthreading XP would boot just fine, but if all are enabled it freezes without a BSOD.

 

Page 439

#6571XPLives⇗ @gordo999

Zitat von ⇗ gordo999 im Beitrag ¶ #4331
Zitat von ⇗ XPLives im Beitrag ¶ #4330
And Daniel_K is missing so no idea if he was contacted first or Fernando about this to find helpful answers on what really happened and what was the timeline of events.
@XPLives ...see the following page, message 4203. Also 4194, a page or so before. Reading between the lines I'd say someone from Intel is behind this.

Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (281)



Reading that message link you provided again made me reconsider you might be right that it's possible Intel was upset about something.  I think it was the Storage drivers themselves but even those that were modified were unnecessary to get XP installed but only useful for using the extra features that DK might have enabled and work on XP when originally it was meant for another operating system.

However even Intel cracking down on such drivers still had no impact on getting XP to install on modern hardware using the older drivers still available so they were mainly trying to swat the little guy again with bullying.   Sounds like Creative Labs part deux.

Intel should be thankful since it would only encourage more people to buy Intel CPUs because of their compatibility versus AMD.  Also the extra functions in the newer storage drivers backported to XP just helps that case.

I remember hounding Intel when Haswell was released without XP drivers for their iGPU.  It really damned their sales wherever I could.  I felt you were getting less for your money losing the use of the iGPU since they decided to drop XP driver support.  It would have been better had they just released the source code for the XP iGPU drivers and let people do the work they wouldn't.  I consider all the CPUs with their iGPUs basically a waste of money where I'd rather have that money and die space used for more cores and just use my own discrete graphics card.
#6572XPLives⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #6570
@XPLives

3960x - 24 Core / 48 Thread

I found that if I either disabled a CCX or disabled hyperthreading XP would boot just fine, but if all are enabled it freezes without a BSOD.


Was that the only ThreadRipper CPU you had?  For some reason I thought you had a 12 Core / 24 Thread.

What does the CCX do?

Disabling the HyperThreading would give you just the pure 24 Cores and No Threads so are you saying you finally got XP working with 24 Cores on your TRX40 motherboard?

Which ACPI.sys  did you have to use to boot and work properly?

It shouldn't be too hard for me to test what happens once I break 32 Cores on Intel.  It's just a matter of $$$ to do it.

But you also have to realize there might be a certain point where number of Cores in XP doesn't improve or alter the performance much.  I'm not certain where that number is yet as I haven't done any major core comparison testing.  I'd say it's possible 8 Cores vs 4 Cores you should see some improvement but is it significant?  I'm not even sure if most software for XP written takes advantage of more than 2 cores.  I'd have to see how Crysis does on 12 and 24 Cores and see if the Task Manager shows any kind of CPU usage on all the cores or just the first few.
#6573infuscomus⇗ @XPLives

Zitat von ⇗ XPLives im Beitrag ¶ #6572
Was that the only ThreadRipper CPU you had?  For some reason I thought you had a 12 Core / 24 Thread.


Thats the only Threadripper CPU I have.

Zitat von ⇗ XPLives im Beitrag ¶ #6572
What does the CCX do?


Disables a Compute Core Complex so some CPU cores are turned off.

Zitat von ⇗ XPLives im Beitrag ¶ #6572
Disabling the HyperThreading would give you just the pure 24 Cores and No Threads so are you saying you finally got XP working with 24 Cores on your TRX40 motherboard?


Yep, I got it working properly.

Zitat von ⇗ XPLives im Beitrag ¶ #6572
Which ACPI.sys  did you have to use to boot and work properly?


I used the outerspace acpi.sys - this gets past ACPI BSOD - although motherboard USB ports will not behave correctly on every boot unless I disable and reenable the USB controller every time (and I needed a separate pci-e USB card to be able to do this)

Zitat von ⇗ XPLives im Beitrag ¶ #6572
It shouldn't be too hard for me to test what happens once I break 32 Cores on Intel.  It's just a matter of $$$ to do it.


If you can figure out what happens that would be great. Server 2003 RTM has the same issue, but SP1 has a fix in its kernel somewhere that stops it freezing.
#6574XPLives⇗ @infuscomus

Zitat von ⇗ infuscomus im Beitrag ¶ #6573
@XPLives

I used the outerspace acpi.sys - this gets past ACPI BSOD - although motherboard USB ports will not behave correctly on every boot unless I disable and reenable the USB controller every time (and I needed a separate pci-e USB card to be able to do this)

If you can figure out what happens that would be great. Server 2003 RTM has the same issue, but SP1 has a fix in its kernel somewhere that stops it freezing.


The problem with the internal USB 3.0 ports is something I cannot solve since I also use internal USB 3.0 PCIe cards so I avoid them.  Also the best card is the Texas Instruments model as it has the fastest reaction time and less lag which is important when watching HD footage and scrubbing through it there is almost no noticeable delay.  Using any other brand has lags of a few seconds in some cases even if they have a higher top end sustained transfer rate speed.

Imagine if all USB 3.0 PCIe cards were different car models.

One is the fastest but very poor braking that takes a few seconds before it responds.
Other cars maybe 90%-99% as fast but even poorer braking response time than the fastest car.
One is 98% of the top speed of the fastest car but can brake instantly.  I choose this car.  This is the Texas Instruments.

But DK could not crack the TI driver successfully but that is in my opinion the best driver out there even if it is considered Fort Knox.  Other option I would suggest is to negotiate a deal to sell the source code to that driver for a cheap price since I doubt the company cares about XP / 2003 any more these days so it's free money in the end to them.

If there's an option on the BIOS side to disable the USB 3.0 on board that's what I do so I don't have to deal with any conflicts or popups or using up resources.  Some BIOS don't let you do this.

The AM4 BIOS doesn't have proper MPS mode which is why I gave up early on for multicore support.  If you can transplant AM3+ BIOS MPS into AM4 and TRX40 BIOS then you can have the same compatibility as Intel does.

I am getting an advanced BIOS Programmer to see if I can frankenstein it since I told you long ago I bought the AMD 990FX at the time hoping to use it to bridge the gap to AM4 but it has sat there unused since then. But I will be starting from complete scratch and total guess work.

The best idea is transplant settings from MPS mode into ACPI.sys to simulate MPS mode while using ACPI.sys so it's always guaranteed 100% working on all systems (Intel) at least but possibly AM4 would work too since you are simulating MPS mode while using ACPI.sys it should in theory work on all platforms.  Then tweak this MPS emulating ACPI.sys to add more ACPI functionality one step at a time so it's still 100% compatible.  Using a pure ACPI.sys always has problems as we discover later and trying to patch the problem after the fact for every user.    Why not start with what works 100% and add onto it instead to avoid debugging nightmare?  One day diderius6 may not be alive and you are left in the same situation with no one to fix a future BSOD specific issue.

Once this is completed for 32-Bit versions  then to find a way to modify this MPS emulating ACPI.sys for 64-Bit XP/2003.  May take a long time to complete since no source code for it exists for any MPS Mode for 64-Bit so a modified ACPI.sys emulating MPS mode needs to be created.  Even if hyperthreading threads are gone I would still prefer it than not being able to use it.



Can you provide the outerspace acpi.sys original post link and also upload that version here again in case it's dead and I'll place it later into its own Thread Depot for easier location.


Also for the CPU Max Cores fix can you give me that file that you tested from diderius6 for 64 Cores and 128 Cores if you have both files?  I think those links are dead now from long ago.


I think I will try to see after 64 Cores and 128 Cores works to try to push it to 256 Cores, 512 Cores, and 1024 Cores support over the next twenty years.
#6575XPLives
Zitat von ⇗ RayeR im Beitrag ¶ #5369
Zitat von ⇗ XPLives im Beitrag ¶ #5320

Actually it is unnecessary to worry about this.  As long as use the source code for Windows 2000 Server to create the updated ACPI.sys file it can work with XP SP0-SP3, 2009 POS, and Server 2003.  I tested this before.
As for SP1 source it won't be an issue for SP2 or SP3 to work with it.   What you cannot do is use SP3 source to work with Windows 2000 SP0-SP4, or XP SP0-SP2.
It is imperative to use Windows 2000 source code to create the updated ACPI files so it can be used with all NT5.X versions from Windows 2000->2009 POS.



I need to clarify this...
So you mean there was already leaked sources of acpi.sys from W2k that can be rebuild and used for all newer windows up to SP3/Wk3? I read that some subset of W2k sources had leaked before but didn't investigated further.
Are you sure there was not any critical acpi.sys updates in newer OS versions that would require some minimal version for specified OS version? I would guess ahat acpi.sys from XP SP1 would be more advanced than one from W2k.

And how about that acpi.sys patches linked in this thread? I though they are original binaries that was hacked/patched on binary level using disassembler and hexa exitor, not rebuilded from sources. am I right?

diderius6 also mentioned about acpi.sys from XP SP3 from "outer space" that it worked for him, it's meant to be original SP3 version or some hacked one?
He aslo mentioned "I build a new acpi.sys" - is it mean from leaked  src?
Update: oh, I see you just rebuild and run 'miniXP' - congrats :) But a pitty about missing kernel sources :(

BTW from the ⇗ posted description of acpi.sys it seems it's respnsible for enumerating other devices and loading drivers so I can imagine that if something not anumerated properly then disk driver is not loaded getting other error.
BTW2 there's mention about AMLI debugger, did someone able to run it? It should help debugging ACPI issuses.


A lot of questions some I cannot answer regarding diderius6 modified ACPI.sys as I do NOT know what he did or changed and he has not released an instruction manual or guide to replicate those changes.  Also the method of constantly patching an ACPI.sys that's constantly like a leaking boat eventually diderius6 will die one day (God forbid) and then the holes in the boat remain unplugged and it sinks.

In my own testing using the Windows 2000 ACPI.sys versions then can be placed into any later NT 5.X version and boot up properly and used without issue.   It is using a later ACPI.sys version from say 2003 or XP and placing it into Windows 2000 it will not work.  Hope that made sense.  That is why if the source code to the Windows 2000 ACPI.sys exists and can be modified directly then that is the best way to proceed to fix any ACPI issues that affect XP, 2003, and 2009 POS.  Now how ACPI itself works even if you have the source code is another can of worms to unravel.  I think the key is replicating the MPS mode equivalent environment into the ACPI.sys as being the default settings.  Then you will have a true emulated MPS Mode using ACPI.sys method of working on all NT5.X based operating systems.

You can go to my main ACPI thread here:
⇗ Modded ACPI Drivers Depot 2000 XP 2003 2009

I discovered this ACPI.SYS forward compatibility over 2 years ago.
⇗ Modded ACPI Drivers Depot 2000 XP 2003 2009

Again good to see you RayeR as all things retro and ISA SB passion.


XPLives
#6576Andalu
Zitat von ⇗ daniel_k im Beitrag ¶ #6554
Zitat von ⇗ infuscomus im Beitrag ¶ #6552
/4GB option did not work correctly? how so? It seems to work just fine for me.

You may mimic its behavior by using the /M:4097MB parameter.

thank you for the new WinXPPAE patch release

It works fine with the option /ALL but I was not able to obtain the /4GB recognition: only 2.11GB of ram detected using the /M:4097MB parameter in the command line.
Even adding the entries  "/M:4097MB" and "/kernel=ntkrnlpa.exe" (ntkrpamp.exe renamed) in the boot.ini didn't help.

Where I was wrong?
#6577RayeRHi, can someone point me to some description of daniel_k's patch - what this patch do differently and why comapred to original chinese 64GB or russian 128GB patches? I just tried it and compared patched files. There was much more modified Bytes (~200) in the HAL.DLL over old patches. But I did not notice any difference when boot up. My problem with PAE are some drivers that cause XP unresponsive, e.g. when using generic USB camera or Saleae USB logic analyser. Of course I replaced all related USB drivers by files from W2K3S SP2 or newer but problem still persist.

I also noticed that original VIA VL805 drivers for USB 3.0 XHCI doesn't even start properly after installation with PAE enabled (error code 10). So I moved to Win8 backported driver that seems to work OK with PAE. Just tested with USB 2.0 device only, still waiting for delivery of USB3SATA cable...
BTW what is security cookie inside driver files and why it needs to be changed? AFAIK this is something new that came after XP so do I bother when using backported drivers in XP-only?
#6578Mov AX, 0xDEAD
Zitat von ⇗ RayeR im Beitrag ¶ #6577
Hi, can someone point me to some description of daniel_k's patch - what this patch do differently and why comapred to original chinese 64GB or russian 128GB patches? I just tried it and compared patched files. There was much more modified Bytes (~200) in the HAL.DLL over old patches. But I did not notice any difference when boot up.
I also noticed that original VIA VL805 drivers for USB 3.0 XHCI doesn't even start properly after installation with PAE enabled (error code 10).

BTW what is security cookie inside driver files and why it needs to be changed? AFAIK this is something new that came after XP so do I bother when using backported drivers in XP-only?

Hi RayeR

- If you use Daniel_K's PAE patch properly, you will see difference, for example original VIA USB 3 driver load with error 10.
error 10 on VIA means you have unproperly pached hal.dll (XP64G/FIX128 produce such bugged hal.dll)
- Why 200 bytes ? - run disassemler/bindiff and you can see how much cost restoring DMA functionality XP SP2/SP3' hal to W2003' hal for systems with more 4Gb ram
- Replacing some USB files from W2003 solve famous error in orig XP drivers - USB 1.0/2.0 contoller stop working on PAE + RAM>4GB system, this solution not related to PAE patches, this is just replacing faulty driver from one MS team to better driver written by another MS team  :)
- Security cookie introduced in windows 8, they must be random at every boot, driver itself check this "random", on all prew-Win8 OSes, kernel load driver in older way without random. To bypass check for "random" i offer change cookie to pseudorandom (staticaly in file), but exist another way - patching this check
#6579RayeRThanks for info, so DMA works better with dan's patch, OK. I tested the VIA driver before I found this patch so I had unproperly patched hal.dll by chinese PAE patch.

And is there known solution for USB cameras with PAE? This are the drivers I had replaced from W2K3S:
hidparse.sys  usbehci.sys   usbport.sys   usbstor.sys   usb8023.sys
usbaudio.sys  usbhub.sys    usbprint.sys  usbuhci.sys
usbccgp.sys   usbintel.sys  usbscan.sys   usbvideo.sys
usbd.sys      usbohci.sys   usbser.sys    usb8023x.sys
Did I miss something?

I still didn't get the purpose of the security cookie. It's some random number initilaized by kernel for every driver it loads and then driver checks for it? What happens when it's changed at runtime? Should it protect against some hacker's attack of unwanted driver modification? So it would make me more sense to check some hash of the driver periodically...
#6580gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6563
Take a look on this "streets" for photons, electrons, any particel.
Because they do not cross, it is impossible, that any information is lost, world as big clock,
Dietmar
⇗ @diderius6 ...the physics is wrong.

The original double-slit experiment involved waves of light striking a surface with two slits. The different frequencies in the wave were deflected different amounts onto a target where certain frequencies added and other subtracted, causing alternate light and dark areas on the target.

Now they think that individual electrons behave the same way but they do not. For one, you cannot fire a single electron from a gun, they flow through a vacuum in a beam of electrons. They won't flow through air because they would collide with air molecules. Electrons beams were applied to a single slit, not a double slit. Because they produced the same diffraction patterns on a target screen it was theorized that electrons must have a wave-like nature, BS. Electrons are solid particles that carry a charge and a magnetic field, therefore the diffraction patterns must be due to some kind of quantum property as proposed by Bohm.

There is no proof that photons exist. They are defined as particles of electromagnetic energy with NO MASS. Unlikely!! It is known that electrons attached to atoms emit and absorb EM of certain frequencies but how can a particle have a frequency? Obviously, the electrons are emitting and absorbing portions of EM fields (aka waves).

It is convenient to think of EM as being made of photons but the same is done in electrical theory by forming an analogy with water flow. I find that unnecessarily confusing and have never thought that way. Same with photons, the interaction of EM with electrons can be done easily without thinking in terms of photons. In fact, the idea of a photon only serves to confuse the physics.

Before he died, Einstein stated that no one knew whether EM was a wave or a series of particles. I'll go one further, I know a lot about electrons, having worked in the field for decades. I don't think there is any such thing as a photon and that part of quantum theory is nonsense.
#6581gordo999
Zitat von ⇗ RayeR im Beitrag ¶ #6579
I still didn't get the purpose of the security cookie. It's some random number initilaized by kernel for every driver it loads and then driver checks for it?
⇗ @RayeR ...they are used everywhere in code, not just in drivers.

⇗ https://docs.microsoft.com/en-us/cpp/c-r...e?view=msvc-160

"The global security cookie is used for buffer overrun protection in code compiled with /GS (Buffer Security Check) and in code that uses exception handling. On entry to an overrun-protected function, the cookie is put on the stack, and on exit, the value on the stack is compared with the global cookie. Any difference between them indicates that a buffer overrun has occurred and causes immediate termination of the program".

They appear to be anti-hacker devices since a buffer overrun is a prime way of hacking code.
#6582diderius6⇗ @gordo999
Oppenheimer (he was the doctor father of Bohm) tells:
When we cant prove, that he is wrong, we must ignore him.
Einstein writes about Bohm: It seems to me too easy. But when there is a man on earth who understand Quantenmechanics,
then it is Bohm
Dietmar

PS: You can make an easy experiment: Just put the screen from an interference patton closer and closer to the slit.
You will find those "streets".
Oh, this has more dramatic consequences than Galilei in 1600.
#6583RayeRAha, I know this kind of stack overflow protection-detection, I also used somethin like that on my MCU code but didn't know they call stack fill as a cookie...
#6584daniel_k⇗ @infuscomus and ⇗ @Andalu
Hal patches are perfect, Kernel needed fixes.
I've already fixed the issue and will release ASAP.

⇗ @genieautravail
Got an idea after looking at your ACPI dumps.
#6585gordo999
Zitat von ⇗ diderius6 im Beitrag ¶ #6582
But when there is a man on earth who understand Quantenmechanics,
then it is Bohm
⇗ @diderius6 ...I know this is off-topic, and I won't take advantage, but the theories related to computers are all based on it. XP would not exist had it not been for the work of people like David Bohm.

David Bohm is one of my favourite physicists. He once stated that any equation that has no physical evidence to back it is garbage. I have read several of his books and I recall him talking about the one slit experiment with free electrons. He did not have an explanation for why they could be bent to form a diffraction pattern on a target but he hypothesized there 'might' be a quantum action at work.

I fear that theories invented to explain the one and two slit experiments are on shaky grounds. The wave theory is plain enough but when you introduce photon theory, you are relying more on consensus than actual physical reality.

Bohm was a good friend of Einstein and he ran many of his ideas past him. Einstein was not so enthusiastic about quantum ideas that involved action at a distance. Neither was Schrodinger. Both of them wanted a more physical explanation for quantum theory. Then again, Einstein turned around and based relativity theory on redefining time and distance, with no proof of either. He simply added a multiplier to time based on the speed of light with no experimentation or further proof. Some of it worked out but one of his main critics was Louis Essen, who invented the atomic clock. He claimed Einstein's theories are nothing more than a collection of thought experiments and that Einstein did not understand measurement.

I also liked Bohm's work with Jiddu Krishnamurti on how the mind works with respect to thought. There is a book where they both discuss time and Bohm points out at one point that we humans invented time. The title of the book is 'The Ending of Time'.  The 'ground' of which they speak is a reference to what lies beyond thought, when the mind becomes completely quiet.

 

Page 440

#6586gordo999
Zitat von ⇗ RayeR im Beitrag ¶ #6583
Aha, I know this kind of stack overflow protection-detection, I also used somethin like that on my MCU code but didn't know they call stack fill as a cookie...
⇗ @RayeR ...whenever I trace through code, the cookie is referenced by a magic number. That is the value pushed onto the Stack. It is a simple integer value. When the cookie is checked there is a small code section to do the check. I usually jump over it.
#6587Mov AX, 0xDEAD
Zitat von ⇗ RayeR im Beitrag ¶ #6579

And is there known solution for USB cameras with PAE? This are the drivers I had replaced from W2K3S:
hidparse.sys  usbehci.sys   usbport.sys   usbstor.sys   usb8023.sys
usbaudio.sys  usbhub.sys    usbprint.sys  usbuhci.sys
usbccgp.sys   usbintel.sys  usbscan.sys   usbvideo.sys
usbd.sys      usbohci.sys   usbser.sys    usb8023x.sys
Did I miss something?


i dont know, if camera uses custom vendor driver, problem maybe in this driver.
for example on my lenovo ivybridge notebook, camera chip made by RealTek and require custom driver to work on winxp/2003
but chip connected to USB bus and relay on windows usb software stack, so probably never touch DMA things itself

Zitat von ⇗ RayeR im Beitrag ¶ #6579

I still didn't get the purpose of the security cookie. It's some random number initilaized by kernel for every driver it loads and then driver checks for it? What happens when it's changed at runtime? Should it protect against some hacker's attack of unwanted driver modification? So it would make me more sense to check some hash of the driver periodically...

In pre-win8 drivers, every "cookie protected" driver at begin itself generate random cookie value, in Win8 MS moved this part to kernel and drivers dont have this "init cookie procedure" anymore, so this is why win8 drivers expect random from kernel, but winxp<->win7 kernels can't provide it.

And yes, sec. cookies used as stack protection, Idea is to place cookie on stack between return adress and local variables.
If someone try to change return adress on stack (buffer overflow attack), it must patch cookie too, but attacker don't know cookie value because it is random. Every "cookie protected" function when want to return to parent first check saved cookie and only if it is OK, return to parent.
#6588genieautravail⇗ @daniel_k

Zitat von ⇗ daniel_k im Beitrag ¶ #6584
@infuscomus and @Andalu
Hal patches are perfect, Kernel needed fixes.
I've already fixed the issue and will release ASAP.

OK, because as Andalu I have the same issue with the /M:4097MB parameter.

Without WinXPPAE:



With WinXPPAE 2 and /4GB parameter:



With WinXPPAE 3 and /M:4097MB parameter:



Regards
#6589daniel_kWinXPPAE v3:
⇗ http://www.mediafire.com/file/urjqtrfveqnr16s

- Properly patched TotalPagesAllowed, while leaving NumberOfPages set to maximum.
- Fixed when using /3GB, maximum RAM is limited to 16GB.
#6590Andalu⇗ @daniel_k
just tried with the /4GB option: ram correctly recognized, thanksss
#6591genieautravail⇗ @daniel_k

Issue resolved with the /M:4097MB parameter.

Good works!

Regards
#6592daniel_k⇗ @RayeR

The only file you need from Server 2003 is usbport.sys, please try to replace only this file.
#6593YuriyCNWindows XP mod 2021 - system build for the modern PC (edition 12.02.2021)

The information doesn't fit into a forum post for a long time - so download the text file and read it in Notepad. Always use the latest version of the methodology, as the information is constantly changing and the methodology is supplemented.

All information is in txt file (84KB, ENGLISH) - ⇗ https://yadi.sk/d/P3OGVJsJ24aOvg
All information is in txt file (86KB, RUSSIAN) - ⇗ https://yadi.sk/d/M58N2iE6qIOAdw
#6594Mov AX, 0xDEADHi All,

Interesting KB888137 about how Microsoft explains killing >4Gb memory support in XP SP2/SP3:

SYMPTOMS
In Windows Vista, or after you upgrade to Windows XP Service Pack 2 (SP2), the memory that is reported
in the System Properties dialog box or by the System Information tool (Msinfo32.exe) has changed.

CAUSE
This issue occurs because of a design change in Windows XP SP2 that is also included in Windows Vista.
The changes were made to PAE mode behavior to improve driver compatibility.

To reduce driver compatibility issues, Windows Vista and Windows XP Service Pack 2 include hardware abstraction layer
(HAL) changes that mimic the 32-bit HAL DMA behavior. The modified HAL grants unlimited map registers when the computer
is running in PAE mode. Additionally, the kernel memory manager ignores any physical address that is more than 4 GB.
Any system RAM that is more than the 4 GB barrier would be made unaddressable by Windows and be unusable in the system.
By limiting the address space to 4 GB, devices with 32-bit DMA bus master capability will not see a transaction with
an address that is more than the 4 GB barrier. Because these changes remove the need to double-buffer the transactions,
they avoid a class of bugs in some drivers that is related to the correct implementation of double buffering support.

The largest driver PAE compatibility issue involves direct memory access (DMA) transfers and map register allocation.
Many devices that support DMA, typically 32-bit adapters, cannot perform 64-bit physical addressing. When these devices
run in 32-bit mode, the devices can address all physical address space. In PAE mode, data can be present at a physical
address that is more than 4 GB. To enable devices with these constraints to function in this scenario, the Windows 2000
Server family and later versions of Windows provide double-buffering for the DMA transaction. The Windows 2000 Server
family and later versions of Windows do this by providing a 32-bit address that is indicated by a map register.
The device can perform the DMA transaction to the 32-bit address and the kernel copies the memory to the 64-bit
address that is provided to the driver. When the system runs with PAE disabled, drivers for 32-bit devices never
require their map registers to be backed by real memory. This means that double-buffering is not required, because
all devices and drivers are contained within the 32-bit address space. Based on tests of drivers for 32-bit devices
on 64-bit processorbased computers, it is expected that most client-tested, DMA-capable drivers expect unlimited map
registers.
#6595diderius6⇗ @Mov AX, 0xDEAD

Is it a lot of work, for Lan Windbg
also to modd kdstub.dll and kdnet.dll for XP 64 bit from the files from win81 64 bit or even win10 64 bit?
For experiments with UEFI boot,
this will help a lot
Dietmar
#6596Mov AX, 0xDEAD
Zitat von ⇗ diderius6 im Beitrag ¶ #6595
@Mov AX, 0xDEAD
Is it a lot of work, for Lan Windbg


Hi
Yes, a lot, i attached part of source fasm code, you need convert it to x64 asm
remain part is injected code in kdnet.dll
⇗ https://pastebin.com/vgkpEgei
#6597diderius6⇗ @Mov AX, 0xDEAD

Via Lan Windbg you can do this via a PCI-e Slot card.
But when you use a slot card for a COM1 serial port,
debugging does not work.
Do you think, that it can make to work with some settings in boot.ini

Dietmar

EDIT: I found this

"The kernel debugging support has hardcoded support for UARTs that look like a 16550, and expects to be able to communicate with them at the standard I/O addresses, 0x3f8 (for COM1) and 0x2f8 (for COM2). (Not sure about COM3/COM4/etc.) The KD support in the kernel does not use a loadable driver, so if you want to use a serial UART, this is your only option. If your PCI board can be configured to work this way, and be ready to do so at OS boot time, then you can probably get it to work."
#6598diderius6I found kd1394.dll also in XP 64,
so a Windbg session should be possible during Firewire Slot card
Dietmar

In boot.ini of the Target PC you have to add /debug /debugport=1394 /CHANNEL=3
And you have to disable the 1394 device(!) in device manager.

and on the Host PC, where Windbg runs in Console

set_NT_DEBUG_BUS=1394
set_NT_DEBUG_1394_CHANNEL= x
kd -k

and run Windbg.

⇗ http://www.ockam.com/OldSite/docs/DisableSerialMiceOnXP.pdf
#6599PPeti66x⇗ @YuriyCN
Hi!
Some notes about Realtek HD Audio for XP:
Some notebook manufacturers are prone to use a custom solutions, and these requires a custom drivers made by the manufacturer. Without a manufacturer-specific driver the device will not work correctly (even if the official Realtek driver can be installed without errors). Known problems: audio have much more noise, because noise cancellation for motherboards internal noise not works, or plugged-in headphone have no sound. Other possible problems may be a higher CPU usage or problems around stanby. The Dell M4800 have issues with the Realtek driver, but I heard that some Lenovo notebooks have similiar problems. For the Dell M4800 (Realtek ALC3226) I found a correct driver: "https://dl.dell.com/FOLDER01584986M/10/REALTEK_ALC3226-HD-AUDIO_A04_D3P06_SETUP_ZPE.exe" For later versions the XP driver was removed.
#6600onuracengizHave you tried these;
⇗ Realtek HD Audio (HDA) Drivers Version 8186

⇗ Microsoft UAA Bus Driver for High Definition Audio

 


Part 1    ◄   Part 2   ◄   Part 3   ◄    Part 4    ►   Part 5