Win-Raid forum: Windows XP, 2003 x32 on modern hardware

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

## Page 331

#4951

gordo999

> 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.

#4952

ruthan

> 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.

#4953 | ruthan | Ok 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.

#4954

ruthan

I 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.

#4955

ruthan

So 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?

#4956

diderius6

⇗ @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

#4957

Outbreaker

Do 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)

#4958

ruthan

⇗ @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.

#4959 | diderius6 | ⇗ @ruthan Did you try different storport.sys Dietmar

#4960

infuscomus

⇗ @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?

#4961 | ruthan | ⇗ @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.

#4962

Mov 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

#4963 | infuscomus | ⇗ @Mov AX, 0xDEAD are you sure it could not possibly these functions being not yet implemented stub functions? PoRegisterPowerSettingCallback PoUnregisterPowerSettingCallback
#4964 | ruthan | Better 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.
#4965 | infuscomus | ⇗ @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

#4966

diderius6

⇗ @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

#4967

Andalu

⇗ @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.

#4968 | infuscomus | ⇗ @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)
#4969 | infuscomus | ⇗ @diderius6 have you had time to test usbxhci on the AB350 K4?

#4970

diderius6

⇗ @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

#4971 | infuscomus | ⇗ @diderius6 did usbxhci work for XP textmode setup? i don't know, maybe my iodd2531 confuses the driver?
#4972 | diderius6 | ⇗ @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
#4973 | infuscomus | ⇗ @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.

#4974

diderius6

⇗ @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 .

#4975 | infuscomus | ⇗ @diderius6 OK, Thanks for testing I'll try every USB port on the motherboard and see if I get a different result.
#4976 | diderius6 | I 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.
#4977 | infuscomus | ⇗ @diderius6 I got a BSOD C2 BAD_POOL_CALLER did you ever see this BSOD?
#4978 | ruthan | I see this after reboots from other OS, my guess is that things wasnt really reset by reboot.
#4979 | diderius6 | ⇗ @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
#4980 | infuscomus | ⇗ @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

#4981 | ruthan | No mystery - just bugs and some bug food..
#4982 | canonkong | It is working well on my GC-Titan Bridge Thunderbolt 3 card. ⇗

#4983

Andalu

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:
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:
⇗

#4984

Mov 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

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

#4986

Mov 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

#4987 | Andalu | ⇗ @Mov AX, 0xDEAD here the USB3 driver backported from Win8 installed in Win7 ⇗

#4988

Andalu

Some 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:
⇗

#4989 | daniel_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?
#4990 | Andalu | ⇗ @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.

#4991

daniel_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?

#4992

Andalu

> 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.

#4993

daniel_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.

#4994

Andalu

> 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.

#4995

daniel_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

#4996

Andalu

⇗ @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).

#4997 | Andalu | ⇗ @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.
#4998 | daniel_k | ⇗ @Andalu So the problem is related to the XHCI drivers. Will send you a PM with some test files.
#4999 | Andalu | ⇗ @daniel_k shutdowning the system, I got the same C2 bsod on restart (when the XP logo appears) without swapping the UASP devices.
#5000 | tumagonx | Hi, 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?

#5001

tumagonx

About 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.

#5002 | tumagonx | 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?

#5003

infuscomus

⇗ @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

#5004 | tumagonx | ⇗ @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.
#5005 | tumagonx | ⇗ @infuscomus since you have 32GB have you tried XP SP1? is there any PAE limiter?
#5006 | ruthan | You dont need any PAE limitter because OS is 32bit, its simply ignore memory above 4GB, unless some hacks.
#5007 | ruthan | Is there any realiable Ramdisk program to use memory above 4GB compatible with present pae /4G mode?

#5008

ruthan

If 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.

#5009 | Outbreaker | ⇗ @tumagonx The last gpt_loader.sys for Windows XP is v8.0.1.0

#5010

ruthan

There 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

#5011

Andalu

> 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:
⇗ ⇗

#5012 | ruthan | ⇗ @Andalu thanks, it looks great.

#5013

tumagonx

⇗ @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.

#5014

Outbreaker

⇗ @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.

#5015

tumagonx

⇗ @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

#5016

ruthan

> 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.

#5017 | canonkong | Here is a link about some source code from win10, meybe we can port them. ⇗ https://pastebin.com/VGEbWVSM

#5018

Mov 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

#5019 | ruthan | On installation where is NVME not working (i testing proven - with other install v1.3_20180719 ) i found error in Even log, maybe it helps. ⇗

#5020

tumagonx

Anyone 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

#5021

ruthan

This 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.

#5022 | Mov AX, 0xDEAD | ¶ NTOSKRNL Emu_Extender Post Updated, project published on github
#5023 | infuscomus | ⇗ @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?

#5024

Mov 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

#5025

infuscomus

⇗ @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

- ⇗ oldusbxhci_UsbTreeView_report_WINXPIE-27540.zip
- ⇗ newusbxhci_UsbTreeView_report_WINXPIE-27540.zip

## Page 336

#5026

infuscomus

> 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?

#5027

gordo999

⇗ @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.

#5028

infuscomus

⇗ @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

#5029

gordo999

> 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.

#5030 | ruthan | I 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 ?

#5031

Mov 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)

#5032

Andalu

⇗ @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.

#5033 | Andalu | ⇗ @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.
#5034 | infuscomus | ⇗ @Andalu Earlier ⇗ @daniel_k sent me a driver that solved a C2 BSOD for me, ask him if you can try it out.

#5035

daniel_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.

#5036 | daniel_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.
#5037 | ruthan | ⇗ @daniel_k WHich ones? Regarding of description in 1st post they are Win7+ I have now Asmedia controller too.

#5038

daniel_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.

#5039

ruthan

Good 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

#5040 | kukonosau | ⇗ @diderius6 Do you have stable acpi.sys for XPx64 for Ryzen today? Where is last version?

## Page 337

#5041 | diderius6 | ⇗ @kukonosau XP64 is unstable under Ryzen. Lan, sound.. crash randomally on different compis with different Ryzen cpu Dietmar
#5042 | kukonosau | ⇗ @diderius6 Crash randomally(((

#5043

ruthan

⇗ @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.

#5044

ruthan

Ok 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..

#5045

Dibya

> 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

#5046

ruthan

> 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.

#5047

infuscomus

⇗ @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?

#5048

dencorso

> 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.

#5049

Mov 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 ?

#5050

daniel_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.

#5051

Andalu

> 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:
⇗

#5052

Mov 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

#5053

sgb0504

help
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

#5054

YuriyCN

> 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

#5055

Mov AX, 0xDEAD

Windows 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

#5056 | Mov AX, 0xDEAD | Patch 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
#5057 | canonkong | 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 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.
#5058 | infuscomus | ⇗ @canonkong did modded acpi.sys not work?

#5059

isopc1999a

> 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?

#5060

daniel_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?

#5061 | ruthan | I 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: ⇗
#5062 | canonkong | ⇗ @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.
#5063 | canonkong | ⇗ @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.
#5064 | canonkong | ⇗ @infuscomus Currently there is no mod ACPI.sys for windows 2006 2006SP1 2009.

#5065

Andalu

> 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.

#5066

ruthan

Moshpit (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 :(

#5067 | infuscomus | has anyone tried to install XP on threadripper?
#5068 | ruthan | 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?
#5069 | Mov AX, 0xDEAD | Patch 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)

#5070

daniel_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

#5071 | daniel_k | ⇗ @Andalu Did you try the acpi.sys from outerspace (so diderius6 says) with your Asrock H310M-HDV?

#5072

daniel_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?

#5073

ruthan

> 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).

#5074 | Andalu | ⇗ @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.
#5075 | canonkong | ⇗ @daniel_k AGESA ComboAm4 v2 PI 1.0.0.1/1.0.0.2 change lots of things, also bring some bugs. ⇗
#5076 | ruthan | Some 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.
#5077 | Mov 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

#5078

daniel_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.

#5079

daniel_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?

#5080

canonkong

⇗ @daniel_k
DSDT table while running Win8.1 with RWEverything.
[[File:AcpiTbls.zip]]
canonkong has attached files to this post

- ⇗ AcpiTbls.zip

#5081

daniel_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.

#5082 | canonkong | ⇗ @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.
#5083 | daniel_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?
#5084 | canonkong | ⇗ @daniel_k Yes, it is easy to flash the mod bios for B550I Aorus pro AX and X570I Aorus pro with its Flashback function.

#5085

daniel_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

#5086

genieautravail

⇗ @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 ?

#5087 | Mov 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

#5088

daniel_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.

#5089 | YuriyCN | Usually, 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.

#5090

Andalu

I 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):
⇗ ⇗
⇗ ⇗

#5091 | Mov 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

#5092

daniel_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!

#5093 | Mov AX, 0xDEAD | ⇗ @Daniel, Yes, these empty folders was not synced to github repository now fixed, empty folders no more empty )

#5094

mockingbird

I 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

#5095

gordo999

⇗ @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.

#5096

mockingbird

> 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.

#5097

gordo999

> 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.

#5098 | gordo999 | ⇗ @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.

#5099

mockingbird

> 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.

#5100

gordo999

> 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

#5101 | mockingbird | There'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.

#5102

flyod

hello. 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.

#5103

daniel_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.

#5104 | daniel_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.
#5105 | daniel_k | ⇗ @Andalu How are you? When you have some time, have a new NVMe driver for you to test.
#5106 | Andalu | ⇗ @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

#5107

flyod

> 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.

#5108

daniel_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.

#5109

flyod

> 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!

#5110

gordo999

> 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.

#5111

flyod

⇗ @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

#5112 | daniel_k | ⇗ @flyod Glad to know it worked!

#5113

daniel_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

#5114 | Outbreaker | Nice work with this new patches. You saved me a lot of headache.

#5115

ruthan

I 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

#5116

Mov 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

#5117 | daniel_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.
#5118 | Outbreaker | ⇗ @daniel_k I noticed that the uaspstor.sys file is missing in the USB3 Zip-Archive.

#5119

daniel_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.

#5120 | sergiox6 | Hello, can someone send me the "amdxhc_pae_fix.rar"? I can not find it. Thank you.

#5121

YuriyCN

> 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

#5122

Outbreaker

> 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/

#5123

PPeti66x

⇗ @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.

#5124

Andalu

> 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.

#5125

daniel_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.

#5126 | daniel_k | On 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! ⇗

#5127

PPeti66x

⇗ @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.

#5128

daniel_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.

#5129

PPeti66x

⇗ @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)

#5130

daniel_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

- ⇗ iusb3hcs.rar

## Page 343

#5131 | PPeti66x | ⇗ @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.
#5132 | Andalu | ⇗ @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.

#5133

daniel_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.

#5134 | PPeti66x | ⇗ @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.

#5135

Andalu

⇗ @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).

#5136 | daniel_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?

#5137

daniel_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.

#5138

PPeti66x

⇗ @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?

#5139

Andalu

> 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.

#5140

Outbreaker

⇗ @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.
⇗

#5141

Andalu

⇗ @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?

#5142

daniel_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.

#5143

Mov 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

#5144

YuriyCN

> 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.

#5145 | genieautravail | ⇗ @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

#5146

PPeti66x

⇗ @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.

#5147

Andalu

> 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.

#5148 | genieautravail | ⇗ @PPeti66x Thank you very much for the details. Will try as soon as possible and report the result here.

#5149

genieautravail

⇗ @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:
⇗
⇗
⇗
⇗

#5150 | infuscomus | 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

#5151

PPeti66x

⇗ @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.

#5152

Mov 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

#5153

Mov 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

#5154

genieautravail

> 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.

#5155

genieautravail

> 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.

#5156

genieautravail

⇗ @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!

#5157

PPeti66x

⇗ @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!

#5158 | Ant. | 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?
#5159 | PPeti66x | ⇗ @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.

#5160

Ant.

⇗ @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

#5161 | PPeti66x | ⇗ @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.

#5162

genieautravail

> 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!

#5163

Mov 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" )

#5164 | Ant. | 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?
#5165 | genieautravail | ⇗ @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!
#5166 | Ant. | BSOD 0x00000050 caused by igxpmp32 was eliminated by replacing videoprt.sys taken from SP2

#5167

Andalu

The 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.
⇗

#5168

Andalu

> 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?
⇗

#5169 | infuscomus | ⇗ @Mov AX, 0xDEAD any further developments on your ntoskrnl extender?
#5170 | genieautravail | Message deleted by myself...

#5171

Mov 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/...)

#5172

Mov 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/...)

#5173

YuriyCN

> 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"?

#5174

Ant.

> 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

#5175

Andalu

> 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

#5176

Ant.

> 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.

#5177

Andalu

> 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?

#5178

PPeti66x

⇗ @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.

#5179 | PPeti66x | ⇗ @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)
#5180 | Ant. | ⇗ @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.
#5181 | Mov AX, 0xDEAD | Hi 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
#5182 | daniel_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.

#5183

Andalu

I 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:
⇗ ⇗

#5184

diderius6

⇗ @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

#5185 | infuscomus | ⇗ @diderius6 OK! will do that. also, are you available to help with some debugging?
#5186 | diderius6 | ⇗ @infuscomus After crazy weeks in Ukraine now I try to come back to life Dietmar

#5187

Mov 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

#5188 | skullteria | 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

#5189

Mov 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.

#5190 | skullteria | Yes, 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

#5191

YuriyCN

> 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

#5192

Mov 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(?)

#5193

YuriyCN

Feedback 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.

#5194 | Outbreaker | v2.3.3.XXX = Generation 1 drivers. v2.3.4.XXX = Generation 2 drivers. Try out the AMD/Intel USB 3.0 v3 driver(s).

#5195

YuriyCN

v2.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.

#5196 | Outbreaker | You have it already. It's Option 5 in the Script.

#5197

YuriyCN

> 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.

#5198 | infuscomus | ⇗ @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

#5199

YuriyCN

> 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?

#5200 | infuscomus | ⇗ @YuriyCN make sure ntoskrn8.sys is in system32\drivers then reinstall the driver is USB 3.0 working in XP textmode setup for you?

#5201

YuriyCN

> 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:

#5202 | Outbreaker | The 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.
#5203 | Andalu | ⇗ @YuriyCN before updating the driver, did you install the Kernel Mode Driver Framework v1.11?

#5204

YuriyCN

> 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?

#5205

infuscomus

> 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

#5206 | infuscomus | ⇗ @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)

#5207

YuriyCN

> 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.

#5208

Mov 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+ ?)

#5209

Mov 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

#5210

infuscomus

⇗ @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.

#5211

YuriyCN

> 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.

#5212

Mov 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)"

#5213

YuriyCN

> 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

#5214

nijazxp

Does 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

#5215 | infuscomus | ⇗ @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.

#5216

nijazxp

Yes, 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?

#5217

infuscomus

⇗ @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

#5218

nijazxp

⇗ @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!

#5219 | infuscomus | ⇗ @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.

#5220

nijazxp

Thanks, 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

#5221 | infuscomus | ⇗ @nijazxp The patch integrator has a generic SATA driver so you wont need to look for an intel SATA driver.

#5222

nijazxp

I 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...

#5223

infuscomus

⇗ @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

#5224 | AddFun | Now 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?) ... .. .
#5225 | infuscomus | ⇗ @AddFun you can go up to highest end maxwell - 980ti/Titan X - with an INF mod
#5226 | AddFun | Is the driver model for 1xxx/2xxx series that radically different?
#5227 | AddFun | Also, 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.

#5228

slavainaction

Hi,
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?

#5229 | infuscomus | ⇗ @slavainaction you need to also have the ntoskrnl extender in integrator Files\Patches\Miscellaneous copy ntoskrn8.sys into system32\drivers

#5230

slavainaction

> 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.

#5231 | diderius6 | ⇗ @slavainaction use WinXP-IE_Optional_Patch_Integrator_v2.3.3b20 Dietmar

#5232

slavainaction

> 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.

#5233 | infuscomus | ⇗ @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
#5234 | diderius6 | ⇗ @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

#5235

slavainaction

> 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

#5236 | AddFun | Alright. 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%)
#5237 | slavainaction | Does 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.
#5238 | infuscomus | ⇗ @slavainaction there is a universal 2D driver that will work, but no 3D driver at this time.

#5239

slavainaction

> 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.

#5240

genieautravail

⇗ @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!

#5241 | kukonosau | ⇗ @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?

#5242

diderius6

⇗ @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.

#5243

gordo999

⇗ @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.

#5244 | Outbreaker | The 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.

#5245

Mov 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 )

#5246 | kukonosau | ⇗ @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?
#5247 | diderius6 | ⇗ @kukonosau Take a look at the last post here from ⇗ @Outbreaker #5244 Dietmar
#5248 | kukonosau | ⇗ @diderius6 Thanks. But I don't understand how to use Integrator. Cannot find archive...
#5249 | diderius6 | ⇗ @kukonosau Rename your xp.iso to Windows XP Professional SP3 x86 - Integral Edition 2020.9.9 (Vanilla).iso Dietmar
#5250 | kukonosau | ⇗ @diderius6 Thanks! So, Integrator nothing add except drivers? Unnecessary programs will not? Drivers only?

## Page 351

#5251 | kukonosau | ⇗ @diderius6 So, drivers USB modify Win8 doesn't fit. How to integrate AMD USB 3.1 WHQL? Where are download it? I forgot page.

#5252

slavainaction

I 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.

#5253

gordo999

> 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.

#5254 | kukonosau | ⇗ @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.
#5255 | infuscomus | ⇗ @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\
#5256 | kukonosau | ⇗ @infuscomus Integration was successfully, but USB drivers doesn't working in installation time. But ACPI and SATA AHCI working correctly!!!
#5257 | infuscomus | ⇗ @kukonosau try the alternative AMD/Intel USB 3.0 xHCI driver
#5258 | kukonosau | ⇗ @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.
#5259 | herotoss | ive 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,,
#5260 | diderius6 | ⇗ @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
#5261 | herotoss | ive already tried that.. no luck

#5262

Mov 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

#5263

diderius6

⇗ @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

#5264 | usa1ec | Detailed 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

#5265

infuscomus

⇗ @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

- ⇗ acpi_test_14d.zip

## Page 352

#5266 | herotoss | ⇗ @infuscomus using acpi_test_14d.zip the error changed to 7B,, ⇗ https://i.imgur.com/zBy0jwT.jpg
#5267 | infuscomus | ⇗ @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)
#5268 | herotoss | ⇗ @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.

#5269

gordo999

> 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.

#5270 | infuscomus | ⇗ @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.

#5271

Andalu

⇗ @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.

#5272

diderius6

⇗ @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.

#5273 | herotoss | ⇗ @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...
#5274 | kukonosau | ⇗ @diderius6 Hello. Where is drivers SATA AHCI for XP x64 for Ryzen? I lost Skullteria post.
#5275 | diderius6 | ⇗ @kukonosau ⇗ https://ufile.io/ohtuy2p1 Dietmar
#5276 | infuscomus | ⇗ @diderius6 did you mean don't change every instance of 0xC0000034 in acpi.sys?
#5277 | diderius6 | ⇗ @infuscomus Yes:)) Have a nice day Dietmar
#5278 | herotoss | ⇗ @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
#5279 | infuscomus | ⇗ @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.

#5280

Mov 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

#5281

Mov 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

#5282 | infuscomus | ⇗ @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
#5283 | kukonosau | ⇗ @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(((

#5284

gordo999

> 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.

#5285 | kukonosau | ⇗ @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?

#5286

gordo999

> 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.

#5287

XPLives

⇗ @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.

#5288

XPLives

⇗ @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?

#5289

XPLives

⇗ @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?

#5290 | diderius6 | XP SP1 and win2003 nice nt5src.7z 3.149.677.191 bytes SHA256 2bb3609fa4c2b2641f43aef751a84db5820b64748b7d2d0891d1cb1e55268ce9
#5291 | schreiberstein | ⇗ @diderius6 ... This. Is. So. Beautiful. ... Unbelievable. The crown jewels... after all those years.

#5292

diderius6

⇗ @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.

#5293 | ruthan | Check this out some XP source leak: ⇗ https://www.tomshardware.com/news/window...posted-to-4chan
#5294 | diderius6 | ⇗

#5295

RayeR

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...

## Page 354

#5296

gordo999

> 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.

#5297 | diderius6 | Hi, most I can build, but for example winlogon.exe and all the ntoskrnl.exe I cant build Dietmar
#5298 | infuscomus | ⇗ @diderius6 someone managed to build it on 4chan is2.4chan.org/g/1600905929934.png

#5299

diderius6

⇗ @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

#5300 | diderius6 | Next 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.

#5301

diderius6

Only 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.

#5302 | usa1ec | Where can I download the source codes of Windows XP? Please, give me a direct URL.
#5303 | diderius6 | From 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
#5304 | skullteria | You need compile "published" folder first. You can find it on NT\base\published And code of winlogon is missing!
#5305 | infuscomus | ⇗ @diderius6 does win2k3 have its winlogon source code?
#5306 | diderius6 | ⇗ @infuscomus No, same as for XP SP1, no winlogon source code in leaked win2003 Dietmar

#5307

infuscomus

⇗ @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

#5308

infuscomus

⇗ @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

#5309

diderius6

⇗ @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.

#5310 | infuscomus | ⇗ @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

#5311 | diderius6 | ⇗ @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

#5312

gordo999

> 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.

#5313

madnikos

Hi 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?

#5314 | diderius6 | ⇗ https://github.com/window-chicken/windows.xp.whistler Dietmar PS: With pinball and winlogon

#5315

skullteria

> 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.

#5316

RayeR

It 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?

#5317 | madnikos | Does anyone know why the Microsoft SATA driver dowsnt work or what the problem and im getting bsod?
#5318 | genieautravail | A tutorial for compiling the leaked source code: ⇗ https://gist.github.com/nk2IsHere/f90285...e772631f64fabb9

#5319

gordo999

> 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.

#5320

XPLives

⇗ @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.

#5321

XPLives

⇗ @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.

#5322 | infuscomus | ⇗ @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"

#5323

XPLives

⇗ @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.

#5324

XPLives

⇗ @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.

#5325 | infuscomus | ⇗ @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

#5326

XPLives

⇗ @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.

#5327

diderius6

⇗ @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

#5328 | infuscomus | ⇗ @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?
#5329 | diderius6 | ⇗ @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
#5330 | madnikos | ⇗ @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

#5331

infuscomus

⇗ @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)

#5332

diderius6

⇗ @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?

#5333 | infuscomus | ⇗ @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

#5334

diderius6

⇗ @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

#5335 | infuscomus | ⇗ @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)

#5336

diderius6

⇗ @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)

#5337

infuscomus

⇗ @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.

#5338

XPLives

⇗ @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.

#5339 | infuscomus | ⇗ @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.

#5340

gordo999

> 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

#5341

XPLives

⇗ @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.

#5342

diderius6

⇗ @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.

#5343

gordo999

> 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.

#5344

diderius6

⇗ @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
⇗

#5345 | infuscomus | ⇗ @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?

#5346

diderius6

⇗ @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

#5347

gordo999

> 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.

#5348

infuscomus

⇗ @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

#5349 | diderius6 | Make a try with the storport driver from Skullteria Dietmar
#5350 | infuscomus | ⇗ @diderius6 which storport version was this? link please?
#5351 | diderius6 | ⇗ @infuscomus ⇗ https://ufile.io/ngkxtrjm Dietmar

#5352

diderius6

⇗ @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

#5353

gordo999

> 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.

#5354

XPLives

⇗ @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.

#5355

XPLives

⇗ @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

#5356

XPLives

⇗ @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.

#5357

XPLives

⇗ @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.

#5358

infuscomus

⇗ @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.

#5359 | diderius6 | ⇗ @infuscomus Just try. I did the same with the files from winserver2003 and works, but only for GPT disks and <=2 TB Dietmar
#5360 | infuscomus | ⇗ @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?
#5361 | sashbbbb | Helo 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)

#5362

gordo999

> 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.

#5363

YuriyCN

New 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/

#5364 | sashbbbb | This 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

#5365

diderius6

⇗ @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 ) .

#5366

diderius6

For 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 .

#5367 | skullteria | Well, 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

#5368

diderius6

Oh 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.
⇗

#5369

RayeR

> 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.

#5370

diderius6

I 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

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

#5372

diderius6

⇗ @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
⇗

#5373 | diderius6 | 92.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 ⇗

#5374

gordo999

> 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.

#5375

diderius6

I 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.
⇗
⇗

#5376

diderius6

minixp "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

#5377 | RayeR | Yes it's logical as ACPI is the root enumerator if you select ACPI compatible PC it then loads other buses drivers.

#5378

diderius6

⇗ @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

#5379

ruthan

BTW 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?

#5380

diderius6

⇗ @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.

#5381

789

> 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 ?

#5382 | diderius6 | ⇗ @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

#5383

diderius6

I 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
⇗

#5384

diderius6

I 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.

#5385

gordo999

> 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

#5386

diderius6

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
⇗ https://ufile.io/72r8ilvh
and the next (better) acpi.sys
⇗ https://ufile.io/hsjutifo

#5387

diderius6

In 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;
}

#5388

gordo999

⇗ @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.

#5389

diderius6

⇗ @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
⇗

#5390

kukonosau

⇗ @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...

#5391

diderius6

⇗ @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

#5392 | kukonosau | ⇗ @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.
#5393 | kukonosau | ⇗ @diderius6 Why Vista crash randomally in Ryzen? From acpi? Do you have crash Vista or it is working properly?

#5394

diderius6

⇗ @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.

#5395

diderius6

In 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

#5396

RayeR

I 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?

#5397 | diderius6 | ⇗ @RayeR This may be a problem because cpu always runs in C0 state. Change intelppm.sys against modified one Dietmar
#5398 | RayeR | Yes, 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
#5399 | diderius6 | ⇗ https://ufile.io/8zdzlh8v

#5400

Andalu

> 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

#5401 | infuscomus | ⇗ @Andalu UFile has a reCaptcha? I've never seen it - not sure why you get it.

#5402

Andalu

> 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:
⇗

#5403 | diderius6 | ⇗ @Andalu With Firefox Browser and XP SP3 I dont see any Captcha on ufile.io Dietmar

#5404

Andalu

> 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.

#5405

RayeR

> 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)

#5406

diderius6

Hi,
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

#5407

gordo999

> 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.

#5408

gordo999

> 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.

#5409

infuscomus

> 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"

#5410

Andalu

> 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.

#5411 | infuscomus | ⇗ @Andalu on mine I have ublock origin 1.30.4 popup blocker ultimate 11.1.0 maybe popup blocker blocks the captchas?

#5412

infuscomus

⇗ @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

- ⇗ 2k3_morethan2tb.zip

#5413

diderius6

⇗ @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

#5414

Andalu

> 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"

#5415 | infuscomus | ⇗ @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

#5416 | Andalu | ⇗ @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?
#5417 | infuscomus | ⇗ @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.
#5418 | Andalu | I still got the reCaptcha, even if once on three attempts: ⇗
#5419 | infuscomus | ⇗ @Andalu which site would you prefer we use to upload files?

#5420

Andalu

⇗ @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

#5421 | gordo999 | ⇗ @Andalu ....I should have mentioned that I was using Windows 7 when I downloaded from ufile.

#5422

YuriyCN

> 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

#5423

Andalu

> 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

#5424 | diderius6 | ⇗ @Andalu Which Bsod do you see on the asrock H310M-HDV, when you install XP with the acpi.sys from outerspace ) ? Dietmar
#5425 | Andalu | ⇗ @diderius6 here the BSOD with acpi.sys from outerspace: 0x000000A5 (0x0000000D, 0x8A30B818, 0x4449555F, 0X00000000) here the BSOD with acpiOuterspace2001fit: 0x000000A5 (0x0000000D, 0x8A2A41C8, 0x4449555F, 0X00000000)
#5426 | diderius6 | ⇗ @Andalu Oh, I think this Bsod I solved long time ago here in this forum with special acpi.sys for geniautravail (or similar^^) Dietmar
#5427 | diderius6 | Hi, 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
#5428 | Andalu | ⇗ @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
#5429 | diderius6 | ⇗ @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
#5430 | Andalu | ⇗ @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

#5431 | diderius6 | ⇗ @Andalu Please tell me, what the exact Bsod with this acpi.sys is Dietmar
#5432 | Andalu | ⇗ @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.
#5433 | diderius6 | ⇗ @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
#5434 | Andalu | ⇗ @diderius6 about storport.sys I assume you're referring to the nvme driver

#5435

Andalu

⇗ @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

#5436 | diderius6 | ⇗ @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.

#5437

Andalu

> 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 :)

#5438 | Andalu | ⇗ @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.
#5439 | diderius6 | ⇗ @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

#5440

Mov 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

#5441

Mov AX, 0xDEAD

Hi,
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 :)

#5442

Andalu

> 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)

#5443

Andalu

> 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"

#5444

diderius6

⇗ @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

#5445 | diderius6 | ⇗ @Andalu Use an original XP SP3 from CD with wished integrated drivers Dietmar

## Page 364

#5446 | Andalu | ⇗ @diderius6 I added no other driver than acpi and sata-ahci in the ISO. Even in bios all other devices are disabled.
#5447 | diderius6 | I 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

#5448

diderius6

⇗ @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.

#5449

Andalu

⇗ @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.

#5450

diderius6

⇗ @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.

#5451 | Andalu | ⇗ @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).

#5452

Andalu

⇗ @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.

#5453

diderius6

⇗ @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.

#5454

Andalu

⇗ @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

#5455

diderius6

⇗ @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

#5456

Andalu

⇗ @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?

#5457 | diderius6 | ⇗ @Andalu Make a new try without the UASP driver Dietmar

#5458

Andalu

⇗ @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

#5459 | diderius6 | ⇗ @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

#5460

Andalu

⇗ @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

#5461

Mov 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

#5462

Mov 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

#5463

diderius6

⇗ @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

#5464

Andalu

> 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)

#5465

diderius6

Hi,
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
{
}
}

#5466 | diderius6 | ⇗ @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

#5467

daniel_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.

#5468

daniel_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.

#5469

gordo999

> 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.

#5470

Mov 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

#5471

daniel_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.

#5472

Andalu

> 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.

#5473

Andalu

> 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".

#5474

daniel_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

#5475

Andalu

⇗ @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

#5476 | daniel_k | ⇗ @Andalu, no need to downgrade the BIOS.

#5477

daniel_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.

#5478

Andalu

> 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.

#5479 | daniel_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.
#5480 | Andalu | ⇗ @daniel_k as from the images ¶ here I disabled almost all but nothing changed, same A5 bsod occurred in normal mode

#5481

daniel_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.

#5482 | Andalu | ⇗ @daniel_k no problem to report it once again: 0x0000000A (0x000000B0, 0x00000002, 0x00000000, 0x804F5A97)

#5483

daniel_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)

#5484

diderius6

⇗ @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

- ⇗ H310M-HDV-DSDT.rar

#5485

Andalu

> 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).

#5486

diderius6

I 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)
}

#5487 | daniel_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.

#5488

daniel_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.

#5489 | Andalu | ⇗ @diderius6 Thank so much Unfortunately I don't understand anything about DSDT table (and not only about it )
#5490 | Andalu | ⇗ @daniel_k acpi give me the 0x000000D1 bsod but.......... acpi2 works!!!! Thanksssss

## Page 367

#5491 | daniel_k | ⇗ @Andalu Seriously? I want a screenshot!

#5492

diderius6

⇗ @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

#5493

Andalu

> 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?

#5494

daniel_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?

#5495

Andalu

> 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.

#5496 | diderius6 | ⇗ @Andalu Dont upgrade Bios!!! Only when you have an EEpromer and a lot of free time;)) Dietmar
#5497 | Andalu | ⇗ @diderius6 to avoid problems I have not updated the bios of the asus Q370 anymore

#5498

daniel_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!

#5499

daniel_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.

#5500

diderius6

Hi 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.

#5501

daniel_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.

#5502 | diderius6 | ⇗ @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

#5503

daniel_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?

#5504 | Andalu | ⇗ @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.
#5505 | daniel_k | ⇗ @Andalu, thanks for testing the files. Great news!

## Page 368

#5506 | Andalu | ⇗ @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
#5507 | infuscomus | ⇗ @daniel_k I tested your acpi2015.sys on TRX40 Threadripper. No good.
#5508 | daniel_k | ⇗ @Andalu Thanks, so we finally have an acpi.sys that survives Win10 specific codes of DSDT table (at least for Intel systems)!

#5509

daniel_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.

#5510 | infuscomus | ⇗ @daniel_k would you be willing to help me in trying to mod the ACPI tables to get this to work?

#5511

daniel_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.

#5512

infuscomus

⇗ @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.

#5513 | diderius6 | ⇗ @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"?

#5514

infuscomus

⇗ @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.

#5515

diderius6

⇗ @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

#5516 | infuscomus | ⇗ @diderius6 Do you think you could hack acpi.sys of windows 7?

#5517

diderius6

⇗ @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.

#5518

infuscomus

⇗ @diderius6
here
infuscomus has attached files to this post

- ⇗ acpi_windows_7.zip

#5519

diderius6

⇗ @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

#5520

789

> 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

#5521

infuscomus

⇗ @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.

#5522

diderius6

⇗ @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.

#5523 | infuscomus | ⇗ @diderius6 can you try the same hack that worked on windows 7 acpi.sys with XP acpi.sys?

#5524

diderius6

⇗ @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

#5525 | canonkong | ⇗ @infuscomus TRX40 can work on win7 with the mod acpi.sys mow? ⇗ TRX40 win7 64bit driver
#5526 | infuscomus | ⇗ @canonkong 32-bit only for now.

#5527

diderius6

⇗ @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

#5528

daniel_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).

#5529

infuscomus

⇗ @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.

#5530

diderius6

⇗ @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.

#5531 | infuscomus | ⇗ @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.
#5532 | daniel_k | A large disk won't prevent XP from booting. Probably the core count is the issue here, HAL or Kernel go nuts.

#5533

infuscomus

⇗ @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.

#5534 | daniel_k | ⇗ @infuscomus Didn't know you could limit the number of cores on TR. Fingers crossed!

#5535

infuscomus

⇗ @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

#5536

daniel_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.

#5537 | diderius6 | nice!!!
#5538 | infuscomus | ⇗ @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.

#5539

Mov 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

#5540 | Mov AX, 0xDEAD | I 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

#5541

gordo999

> 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.

#5542

gordo999

> 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.

#5543 | infuscomus | ⇗ @daniel_k Two (1 + 1) gives 8 cores and 16 threads. Can you try to patch the kernel to handle more CPU cores?
#5544 | infuscomus | ⇗ @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.

#5545

infuscomus

⇗ @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 :(

#5546

diderius6

⇗ @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?

#5547 | infuscomus | ⇗ @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.
#5548 | canonkong | ⇗ @infuscomus Here is two mod win7 64bit acpi.sys for TRX40, you can try it.
#5549 | infuscomus | ⇗ @canonkong the one you posted yesterday already got past the A5 BSOD, what changed in this acpi.sys?
#5550 | canonkong | ⇗ @infuscomus I used other ideas to modify the file, hope it can work fine.

## Page 371

#5551

daniel_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".

#5552 | infuscomus | ⇗ @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.

#5553

daniel_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.

#5554

diderius6

⇗ @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.

#5555

diderius6

I 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.
⇗

#5556

diderius6

Found 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

#5557 | Labudico | Hello! 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
#5558 | diderius6 | ⇗ @Labudico Make try with this acpi.sys Dietmar ⇗ https://ufile.io/3504p4rp

#5559

infuscomus

⇗ @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.

#5560

infuscomus

USB 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.

#5561 | diderius6 | ⇗ @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.
#5562 | infuscomus | ⇗ @diderius6 server 2003 RTM? I have not. The one that worked was server 2003 SP2.
#5563 | infuscomus | ⇗ @diderius6 Server 2003 RTM - has the problem. Server 2003 SP1 - does not have the problem.
#5564 | diderius6 | ⇗ @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

#5565

diderius6

MAXIMUM_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

#5566 | kukonosau | ⇗ @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?
#5567 | infuscomus | ⇗ @kukonosau I would suggest using XP-32bit instead.
#5568 | kukonosau | ⇗ @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?

#5569

infuscomus

⇗ @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?

#5570

diderius6

⇗ @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..

#5571

Labudico

⇗ @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

#5572 | diderius6 | ⇗ @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

#5573

Andalu

> 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.

#5574 | infuscomus | ⇗ @Andalu damn, I was hopeful it would work because it worked in a VM, but I guess not.

#5575

diderius6

Compiling 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

#5576 | lsmlcx | Where can i get the WinXP-IE 2020.09.09 ISO ? thanks. -------------------------------------------------- I have got. ⇗ https://www.zone94.com/downloads/softwar...ntegral-edition
#5577 | Labudico | Driver for Intel(R) Ethernet Connection (7) I219-V where i can donwload for Windows XP?
#5578 | diderius6 | ⇗ @Labudico Until now, they do not exist. Until now, very last version for XP is i218 (all versions) Dietmar
#5579 | Andalu | ⇗ @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.

#5580

Labudico

> 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

#5581

diderius6

Yeppp,
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
⇗

#5582 | infuscomus | ⇗ @diderius6 can you PM me the ISO? I'll test it.

#5583

diderius6

⇗ @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.

#5584 | infuscomus | ⇗ @diderius6 OK, send me your minixp.

#5585

schreiberstein

Okay... 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

#5586 | diderius6 | In acpi.sys Debug version of XP SP3 is MAXIMUM_PROCESSORS not mentioned Dietmar
#5587 | Andalu | Thanks 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
#5588 | Andalu | ⇗ @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.

#5589

infuscomus

⇗ @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?

#5590

sashbbbb

Hello 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

#5591

smedos

> 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?

#5592 | canonkong | I successfully modified the win7 64bit ACPI.sys and no A5 BSOD no A5 BSOD any longer. ⇗ ⇗
#5593 | infuscomus | ⇗ @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.

#5594

diderius6

@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.

#5595 | infuscomus | ⇗ @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

#5596 | diderius6 | ⇗ @sashbbbb Bsod 0x000000b4 means VIDEO_DRIVER_INIT_FAILURE, so you have to enable vga video on boot Dietmar
#5597 | canonkong | @ infuscoumus It is my friends PC, he only help to test win7 64bit, because he still need it to work.
#5598 | infuscomus | ⇗ @canonkong Oh OK, no worries then.
#5599 | infuscomus | ⇗ @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.

#5600

diderius6

⇗ @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

#5601

infuscomus

⇗ @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?

#5602 | diderius6 | ⇗ @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
#5603 | infuscomus | ⇗ @diderius6 diskcheck doesn't work in cmd on windows 10, what have I missed?
#5604 | diderius6 | @ infuscomus You can run diskcheck on any other compi, where you connect this harddisk with minixp Dietmar
#5605 | infuscomus | ⇗ @diderius6 how do I run diskcheck? If I skip diskcheck does it work?
#5606 | diderius6 | ⇗ @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

#5607

diderius6

⇗ @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.

#5608 | isopc1999a | ⇗ @canonkong How stable is windows7 on TRX40 motherboards?
#5609 | infuscomus | ⇗ @diderius6 I may have built my modded XP SP1 ISO incorrectly - can you send me yours?
#5610 | diderius6 | ⇗ @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

#5611 | infuscomus | ⇗ @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?
#5612 | diderius6 | ⇗ @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

#5613

diderius6

⇗ @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

#5614 | diderius6 | ⇗ @infuscomus Prepare your harddisk with RMPrepUSB 2.1.739, harddisk in an usb box Dietmar
#5615 | Labudico | Windows XP on AsRock Z390M Pro4
#5616 | infuscomus | ⇗ @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.
#5617 | infuscomus | ⇗ @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.
#5618 | canonkong | ⇗ @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. ⇗
#5619 | diderius6 | ⇗ @infuscomus Now a Windbg session can show you all, why reboot happens Dietmar

#5620

sashbbbb

> 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.

#5621 | diderius6 | ⇗ @infuscomus Today in the afternoon (in 7 hours) I try to build a minixp for 64 processors and full acpi with IDE drivers Dietmar

#5622

diderius6

⇗ @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.

#5623 | infuscomus | ⇗ @diderius6 I recall you said XP source code has a storport, does that work?
#5624 | isopc1999a | ⇗ @canonkong Good news for upcoming platforms users
#5625 | diderius6 | ⇗ @infuscomus This storport driver from XP SP1 sources does not work together with the driver from ⇗ @skullteria, I tested Dietmar

## Page 376

#5626 | infuscomus | ⇗ @diderius6 try this storahci maybe? ⇗ https://sourceforge.net/projects/storahc...ows-2003/files/ source code is available too
#5627 | skullteria | Well, Storport from XP SP1 or Server 2003 RTM has missing functions than 2003 SP1 or SP2 versions
#5628 | diderius6 | ⇗ @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
#5629 | ruthan | With 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?
#5630 | diderius6 | ⇗ @ruthan Not for all files there is Source Code. And most what you ask for can be done, just crazy hard work Dietmar
#5631 | infuscomus | ⇗ @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.
#5632 | ruthan | I did same thing, sideloaded NIC drivers, but it was just through nlite, NIC was detected during installation.. not through some bat installer etc.
#5633 | ruthan | Other 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.
#5634 | infuscomus | ⇗ @ruthan The backported USB 3.0 drivers not working is making this way more of a hassle than it should be.

#5635

ruthan

Lets 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-...8oAAOSwtzVfZ5IwThe following contents have been linked to this post:

#5636 | infuscomus | ⇗ @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.

#5637

diderius6

⇗ @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.

#5638 | infuscomus | ⇗ @diderius6 I'm not sure how to setup XP SP1 without storport - I have no AHCI driver without it.
#5639 | diderius6 | ⇗ @infuscomus In your special case I think the only possibility is to boot XP SP1 from Ram Dietmar
#5640 | infuscomus | ⇗ @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

#5641 | diderius6 | ⇗ @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

#5642

ruthan

> 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.

#5643 | infuscomus | ⇗ @ruthan I'm sure its a more than 32 CPUs problem - I can repeat the freeze by just turning on more CPU cores.

#5644

Mov AX, 0xDEAD

Hi ,
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

#5645 | daniel_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?
#5646 | infuscomus | ⇗ @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?

#5647

Andalu

> 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'):
⇗

#5648

diderius6

⇗ @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

#5649

Mov 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

#5650

Mov 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

#5651 | infuscomus | ⇗ @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?

#5652

gordo999

Question 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.

#5653

daniel_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.

#5654 | infuscomus | ⇗ @daniel_k OK, so which ACPI driver works for TRX40?

#5655

daniel_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

#5656 | infuscomus | ⇗ @daniel_k MPS does not work on any of my AMD systems - no MPS table in BIOS.
#5657 | daniel_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.

#5658

Rockylpx

⇗ @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

#5659

Fernando

⇗ @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)

#5660

Mov 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

#5661

Mov AX, 0xDEAD

Today 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

#5662

schreiberstein

I 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.

#5663

diderius6

Waaoh ,
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 .
⇗

#5664 | ruthan | @ 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.
#5665 | infuscomus | ⇗ @daniel_k I just tested your ACPI 2015 version to see if USB 3 enumerated - no such luck.

#5666

YuriyCN

[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

#5667

infuscomus

⇗ @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.

#5668 | diderius6 | ⇗ @infuscomus Dows minixp boot with 1+1 processor setting? If not, still the harddrive is not recogniced Dietmar
#5669 | infuscomus | ⇗ @diderius6 On 1 + 1 setting it also 7B BSOD

#5670

Rockylpx

⇗ @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

#5671

diderius6

⇗ @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

#5672 | schreiberstein | ⇗ @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.
#5673 | daniel_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

#5674

savagebanana

Hi 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

#5675 | infuscomus | ⇗ @savagebanana If you're burning a CD, burn it on a slower speed and use verify after burning.
#5676 | gordo999 | ⇗ @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.

#5677

gordo999

> 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.

#5678 | infuscomus | ⇗ @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.

#5679

sashbbbb

> 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

- ⇗ acpi mod Fernando(234kb).rar

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).

#5680 | canonkong | Here 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
#5681 | infuscomus | ⇗ @canonkong I'm interested in the 32-bit version.
#5682 | canonkong | Here is the early win8 M1 32bit (NT6.1.7850) system drivers, maybe can help us. ⇗ https://yadi.sk/d/g4ww_L4k2Lpk-Q

#5683

diderius6

⇗ @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
                           {
                           }
                   }

#5684

sashbbbb

> 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

#5685

diderius6

⇗ @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

#5686

cerulliber1

hello 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!

#5687

Mov AX, 0xDEAD

DLL 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

- ⇗ dll_merge.zip
- ⇗ dll_merge_v2.zip

#5688 | Mov AX, 0xDEAD | Hi, I present my "side" open-source mini project, sucessfully tested on ntdll.dll and avapi32.dll ! Sources will be published later.

#5689

diderius6

Hi,
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.

#5690 | ruthan | This Lenovo problem they have some whitelist for used wireless cards.. online are some cracked bioses.. but often outdated.
#5691 | diderius6 | Here 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
#5692 | Labudico | Hello, 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. ⇗

#5693

gordo999

⇗ @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.

#5694 | Labudico | ⇗ @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.

#5695

Mov 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...

#5696

gordo999

⇗ @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

#5697

gordo999

> 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/

#5698

Mov 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

#5699

infuscomus

⇗ @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.

#5700

diderius6

⇗ @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

#5701 | infuscomus | ⇗ @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?
#5702 | infuscomus | ⇗ @Mov AX, 0xDEAD could the USB\VID_0000&PID_0001 problem be caused by a bug in the windows 8.0 USB driver?
#5703 | diderius6 | ⇗ @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
#5704 | infuscomus | ⇗ @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.

#5705

gordo999

> 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.

#5706

Mov 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) ?

#5707

infuscomus

⇗ @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

- ⇗ acpi_win80.zip

#5708

diderius6

⇗ @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.

#5709 | infuscomus | ⇗ @diderius6 Thanks, I will test this when I can.

#5710

diderius6

After 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
⇗
⇗

#5711 | infuscomus | ⇗ @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?

#5712

diderius6

⇗ @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.

#5713 | infuscomus | ⇗ @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.
#5714 | diderius6 | ⇗ @infuscomus Here it is Dietmar ⇗ https://ufile.io/sd54s8b0
#5715 | infuscomus | ⇗ @diderius6 Thanks, I'll take a look at them.

## Page 382

#5716 | infuscomus | ⇗ @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?
#5717 | diderius6 | ⇗ @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.
#5718 | Black Raven | you didn't do it you posted a request on the forum bios-mods and received a mod

#5719

diderius6

⇗ @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

#5720

tumagonx

> 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).

#5721 | infuscomus | ⇗ @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.
#5722 | infuscomus | I 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.
#5723 | infuscomus | ⇗ @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

#5724

infuscomus

I 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?

#5725 | canonkong | ⇗ @infuscomus Only inf fake drivers.
#5726 | infuscomus | Well, 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.
#5727 | diderius6 | ⇗ @infuscomus Please tell, what works now on the Threadripper board under XP Dietmar

#5728

infuscomus

⇗ @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.

#5729 | infuscomus | ⇗ @diderius6 Regarding maximum processors some anon on 4chan found this ⇗

#5730

infuscomus

The 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

#5731 | infuscomus | The 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?
#5732 | infuscomus | ⇗ @Mov AX, 0xDEAD Why would disabling and then re-enabling the motherboard XHCI controller suddenly make it work? any ideas?

#5733

Mov 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

#5734

Pill 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.

#5735

Pill 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.

#5736

HowManyPentiums?

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.

#5737

Pill 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.. :)

#5738 | infuscomus | ⇗ @HowManyPentiums? you can get XP 32-bit working on X570 with patched drivers but not XP 64-bit.

#5739

HowManyPentiums?

> 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.

#5740

diderius6

Hi,
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

#5741 | infuscomus | ⇗ @diderius6 That document is only referring to maximum licensed processors though not the maximum registered.
#5742 | tumagonx | additional 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.

#5743

infuscomus

⇗ @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

- ⇗ 32CPUS.7z.zip
- ⇗ 512CPUS.7z.zip

#5744 | infuscomus | I 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.
#5745 | skullteria | Well, maybe maximum pocessores are related with this improvement of Windows 7 kernel: ⇗ https://channel9.msdn.com/Shows/Going+De...nside-Windows-7

## Page 384

#5746 | infuscomus | ⇗ @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
#5747 | skullteria | On x86 or x64? Because i found what Windows 10 x86 support only 32 cores, so, maybe it is really the limit of x86
#5748 | infuscomus | ⇗ @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.

#5749

infuscomus

⇗ @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

- ⇗ HALMACPI_XPSP3.zip

#5750 | ruthan | It 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.

#5751

diderius6

⇗ @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

#5752 | infuscomus | ⇗ @diderius6 Unfortunately I don't have it - and Microsoft have taken the hotfixes down, so I'm looking for it.

#5753

gordo999

⇗ @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

#5754 | infuscomus | I just tried a modded hal with HalpDefaultInterruptAffinity changed from ULONG to ULONGLONG in source - no change.
#5755 | infuscomus | ⇗ @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?

#5756

diderius6

Hi,
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.

#5757

Mov 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)

#5758 | infuscomus | ⇗ @Mov AX, 0xDEAD XP/2003 ntoskrnl/hal have functions with numa in the name - are they not doing anything? e.g ExpQueryNumaAvailableMemory ExpQueryNumaProcessorMap

#5759

gordo999

> 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.

#5760

Mov 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

#5761

skullteria

Well, 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.

#5762 | infuscomus | ⇗ @Mov AX, 0xDEAD any progress on getting SP1 ACPI sourcecode to match acpi.sys of SP3? or outerspace acpi.sys?

#5763

diderius6

Hi,
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

#5764 | infuscomus | ⇗ @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)

#5765

diderius6

⇗ @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;))..

#5766

infuscomus

⇗ @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.

#5767 | infuscomus | ⇗ @diderius6 can I have your DSDT? I will try to mod it.

#5768

diderius6

⇗ @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

#5769 | infuscomus | ⇗ @diderius6 Thanks, Can I have the original binary .bin file too?
#5770 | diderius6 | ⇗ @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
#5771 | infuscomus | ⇗ @diderius6 Thanks
#5772 | infuscomus | ⇗ @diderius6 OK, try booting this - ⇗ https://anonfiles.com/BfFfA8uepd/dsdt13-mod_aml

#5773

diderius6

⇗ @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.

#5774 | infuscomus | ⇗ @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?

#5775

diderius6

⇗ @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

#5776

gordo999

> 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.

#5777 | diderius6 | ⇗ @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

#5778

gordo999

> 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.

#5779 | infuscomus | ⇗ @diderius6 did the modded DSDT work for you?

#5780

Mov 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.

#5781

789

> 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.

#5782

rm3113

Hi 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

#5783

diderius6

For 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
⇗

#5784 | infuscomus | ⇗ @diderius6 I just wanted to confirm with you - did the DSDT mod work?
#5785 | diderius6 | ⇗ @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

#5786

XPWELL64

Hi, 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

- ⇗ dsdt.zip

#5787 | infuscomus | ⇗ @XPWELL64 Follow this guide - ¶ Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (385)

#5788

XPWELL64

⇗ @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

- ⇗ extractedasis.zip

#5789 | infuscomus | ⇗ @XPWELL64 are you using the modded acpi.sys? what BSOD are you getting?
#5790 | XPWELL64 | ⇗ @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

#5791 | infuscomus | ⇗ @XPWELL64 Post a screenshot of the BSOD XP gives you - both with and without the mod.
#5792 | XPWELL64 | ⇗ @infuscomus ⇗ @diderius6 0x000000a5 0x00000001 0x00000002 with original dsdt 0x000000a5 0x000000011 0x00000008 with modded dsdt replaced body in bios
#5793 | infuscomus | ⇗ @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
#5794 | XPWELL64 | Thank you for modding my dsdt. I'll use acpi.sys.

#5795

blackwingcat

Hi.
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]

#5796 | infuscomus | ⇗ @blackwingcat I think ⇗ @Mov AX, 0xDEAD can tell you more, if I'm not mistaken he is the one who made it.
#5797 | ruthan | Wow legend is here, Blackwingcat welcome.
#5798 | XPWELL64 | ⇗ @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.
#5799 | infuscomus | ⇗ @XPWELL64 Unfortunately no, Vista has it's own driver that needs to be modded - I think ⇗ @diderius6 can help you with that.
#5800 | blackwingcat | Hi. 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 .
#5801 | diderius6 | ⇗ @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

#5802

Andalu

> 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.

#5803 | infuscomus | ⇗ @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)

#5804

Andalu

> 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

#5805

Mov 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

#5806

Andalu

⇗ @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?

#5807 | infuscomus | ⇗ @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?

#5808

diderius6

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.
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
⇗

#5809

Andalu

⇗ @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.

#5810 | infuscomus | ⇗ @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?
#5811 | Andalu | ⇗ @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.
#5812 | infuscomus | ⇗ @Andalu very strange, I've never had ACPI not restart before so I'm not entirely sure how to solve this.
#5813 | infuscomus | ⇗ @diderius6 for KeInvalidateAllCaches we have the WRK code at least.

#5814

pappyN4

I 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

#5815 | diderius6 | ⇗ @pappyN4 I noticed this behavior with missing restart, when the videodriver is not correct installed Dietmar

#5816

diderius6

⇗ @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

#5817 | XPWELL64 | ⇗ @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
#5818 | XPWELL64 | ⇗ @infuscomus Did you complete my dsdt mod?

#5819

diderius6

⇗ @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

#5820 | XPWELL64 | ⇗ @infuscomus Is there any acpi.sys for vista? I'm helping a user to install windows vista.

## Page 389

#5821 | XPWELL64 | ⇗ @diderius6 Is there any modded acpi.sys for vista? I'm helping a new user.
#5822 | Andalu | ⇗ @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.
#5823 | diderius6 | ⇗ @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
#5824 | diderius6 | ⇗ @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
#5825 | diderius6 | On 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
#5826 | Andalu | ⇗ @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.
#5827 | diderius6 | ⇗ @Andalu Can you disable the onboard videocard and also its sound HD, hdmi in Bios Dietmar

#5828

Andalu

> 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.

#5829

infuscomus

> 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.

#5830 | infuscomus | ⇗ @XPWELL64 your DSDT has so many OS version entries it's a pain to get through. did the acpi2015.sys work at least?

#5831

infuscomus

⇗ @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.

#5832

diderius6

⇗ @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
                                   }
                           }
               }

#5833 | infuscomus | ⇗ @diderius6 Thanks

#5834

infuscomus

⇗ @XPWELL64
Thanks to help from diderius6 I have DSDT mod for you now.
infuscomus has attached files to this post

- ⇗ XPWELL64_DSDT_MOD.7z.zip

#5835

Mov 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

#5836

diderius6

⇗ @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

#5837

pappyN4

⇗ @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.

#5838

genieautravail

About 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.

#5839

YuriyCN

> 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.

#5840

Mov 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

#5841

Mov 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

#5842

gordo999

> 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.

#5843

Mov 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

#5844

diderius6

I 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
>     ---------

#5845

diderius6

⇗ @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

#5846

Mov 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

#5847

diderius6

⇗ @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
    ---------------------------------------------------------

#5848

diderius6

These 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

#5849 | Mov AX, 0xDEAD | 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? 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
#5850 | diderius6 | ⇗ @Mov AX, 0xDEAD Oh, I can learn a lot and I have 3 weeks time Dietmar

## Page 391

#5851

diderius6

May 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.

#5852

gordo999

> 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.

#5853

gordo999

> 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.

#5854

diderius6

⇗ @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.

#5855

diderius6

I 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

#5856

schreiberstein

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:
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

#5857

onuracengiz

⇗ 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)

#5858

tumagonx

> 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.

#5859

tumagonx

To 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.

#5860

onuracengiz

> 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?)

#5861

diderius6

⇗ @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

#5862 | diderius6 | I 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

#5863

schreiberstein

⇗ @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.

#5864 | onuracengiz | there 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)
#5865 | infuscomus | ⇗ @schreiberstein have you tried an Audigy RX? This works for my threadripper system.

## Page 392

#5866 | schreiberstein | ⇗ @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

#5867

Mov 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

#5868

schreiberstein

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!

#5869

tumagonx

> 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?

#5870

Mov 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

#5871

tumagonx

> 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

#5872

gordo999

> 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.

#5873

schreiberstein

⇗ @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.

#5874

gordo999

> 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.

#5875

diderius6

Hi,
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

#5876

YuriyCN

> 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!

#5877 | schreiberstein | ⇗ @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.

#5878

tumagonx

> 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

#5879

blackwingcat

Hi.
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

#5880 | infuscomus | ⇗ @schreiberstein The Audigy RX works in XP with 4GB PAE at least, I have not tested unlimited PAE.

## Page 393

#5881 | schreiberstein | ⇗ @infuscomus Interesting. Which driver are you using?
#5882 | infuscomus | ⇗ @schreiberstein The official Creative driver.

#5883

onuracengiz

> 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

#5884 | tumagonx | ⇗ @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.
#5885 | schreiberstein | ⇗ @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.

#5886

diderius6

⇗ @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.

#5887 | schreiberstein | Is 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.

#5888

diderius6

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

#5889

diderius6

May 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

#5890

diderius6

Maybe 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.

#5891

Mov 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 :)

#5892

diderius6

⇗ @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)

#5893

Mov 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

#5894

Mov 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

#5895

diderius6

⇗ @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

#5896

gordo999

> 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.

#5897

diderius6

⇗ @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.

#5898

diderius6

⇗ @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

#5899

gordo999

> 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.

#5900

gordo999

> 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.

#5901

diderius6

⇗ @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`

#5902

diderius6

⇗ @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.

#5903

gordo999

> 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.

#5904

diderius6

⇗ @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.

#5905

diderius6

Now 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]

#5906

diderius6

Just 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

#5907

schreiberstein

I 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

#5908

diderius6

Compi 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

#5909

blackwingcat

Hi.
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

#5910 | diderius6 | ⇗ @blackwingcat I modded all 3 acpi.sys from Win2000 against "ACPI failed to load DDB" Dietmar ⇗ https://ufile.io/zsylezae

## Page 395

#5911

blackwingcat

Hi.
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

#5912 | infuscomus | ⇗ @blackwingcat Try an en_us release of XP, you should be able to see the BSOD instead of a blinking cursor using this version.

#5913

infuscomus

> 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.

#5914

diderius6

Under 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.

#5915 | diderius6 | Strange, 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?
#5916 | infuscomus | ⇗ @diderius6 can I have a look at your modded driver?

#5917

diderius6

Here 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

#5918

diderius6

From 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.

#5919 | infuscomus | ⇗ @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?)

#5920

diderius6

⇗ @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

#5921 | diderius6 | What 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

#5922

infuscomus

⇗ @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

#5923

diderius6

⇗ @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

#5924

Mov 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

#5925 | infuscomus | ⇗ @Mov AX, 0xDEAD did you make any progress on WDDM? or nothing yet?

## Page 396

#5926

diderius6

When 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

#5927

Mov 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

#5928

YuriyCN

Windows 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.

#5929

blackwingcat

I 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

#5930 | Marlen Maksumov | Hello can you upload the files that are needed to boot Windows Vista pure UEFI 32bit?
#5931 | Marlen Maksumov | I have an tablet laptop with 86x UEFI 32bit which searches for ia32bit.efi.
#5932 | infuscomus | ⇗ @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
#5933 | Marlen Maksumov | Can someone give the ready iso file of the Windows Vista? because i tried doing by myself doesnt work at all in pure UEFI.
#5934 | infuscomus | ⇗ @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
#5935 | Marlen Maksumov | One chinese guy he got it working ⇗ https://www.betaarchive.com/forum/viewtopic.php?t=42051
#5936 | infuscomus | ⇗ @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)
#5937 | diderius6 | ⇗ @blackwingcat Is this on an XP installation or on Win2000 for your new motherboard Dietmar
#5938 | Marlen Maksumov | Ok, thanks for the information.

#5939

diderius6

I 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

#5940

diderius6

⇗ @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

#5941

gordo999

> 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

#5942

diderius6

⇗ @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

#5943

diderius6

⇗ @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

#5944

diderius6

The driver igxpmp32.sys gets unloaded at the call of

    nt!PpSynchronizeDeviceEventQueue

Dietmar

#5945

blackwingcat

I 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

#5946

schreiberstein

⇗ @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

#5947

gordo999

> 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.

#5948

diderius6

⇗ @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

#5949

YuriyCN

1) 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.

#5950

Mov 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-8

YuriyCN

> 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 я ещё не пробовал
Нужен корректный патч системных файлов. Можете чем нибудь помочь?
Готов тестировать.

#5951

Mov 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-9

YuriyCN

> 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 минут.

#5952

Mov 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)

#5953

pappyN4

Trying 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

#5954

infuscomus

⇗ @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.

#5955

Squall 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-10

YuriyCN

> 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

#5956

diderius6

⇗ @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

#5957

diderius6

I 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

#5958

diderius6

The 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]

#5959 | blackwingcat | I bought serial blanket yesterday. I tried it , but F8 press on F6 period seems not to be effection. :3

#5960

diderius6

⇗ @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

#5961

diderius6

Driver 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)

#5962 | blackwingcat | Umm, Serial blanket connected directly mother board. ⇗ https://www.amazon.co.jp/gp/product/B001Y1F0HW/ I bought it
#5963 | diderius6 | ⇗ @blackwingcat Does your motherboard have intern COM port? If yes, this should work Dietmar

#5964

Andalu

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.
What could I try to find a solution?
Edit: I have already tried all the modded hal.dll (halmacpi.dll) without success.

#5965

diderius6

⇗ @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!

#5966

Andalu

⇗ @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

#5967 | diderius6 | ⇗ @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

#5968

Andalu

⇗ @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)

#5969

diderius6

⇗ @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

#5970 | Andalu | ⇗ @diderius6 even with the procedure posted ¶ here by ⇗ @infuscomus is there a risk? I could give it a try.

## Page 399

#5971 | infuscomus | ⇗ @diderius6 ⇗ @Andalu I would recommend my Easy2boot grub2 ACPI patching method, no risk to BIOS that way. edit: yes, no risk.
#5972 | Andalu | ⇗ @infuscomus thanks for confirmation ;) I already use it on an installed XP. Unfortunately with no success for an iso installation.
#5973 | infuscomus | ⇗ @Andalu with my method the patched ACPI table is deleted on reboot, you would need to mod BIOS to make it permanent.
#5974 | Andalu | ⇗ @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" :)
#5975 | infuscomus | ⇗ @Andalu anything hidden by OSYS or OSEL entries in the DSDT?
#5976 | Andalu | ⇗ @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").

#5977

diderius6

⇗ @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.

#5978 | Andalu | ⇗ @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?
#5979 | infuscomus | ⇗ @Andalu try acpidump -b
#5980 | Andalu | ⇗ @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"
#5981 | diderius6 | ⇗ @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
#5982 | daniel_k | Hey guys! ⇗ @Andalu Are you running a fully updated XP install? I've experienced those restart issues with a SP3 installation with no updates.
#5983 | Andalu | ⇗ @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 :(
#5984 | Andalu | ⇗ @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

#5985

daniel_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

#5986 | diderius6 | ⇗ @Andalu The DSDT from Bios 1.0 I have Dietmar ⇗ https://ufile.io/35robgkc Compilation successful. 0 Errors, 32 Warnings, 70 Remarks, 245 Optimizations
#5987 | Andalu | ⇗ @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.
#5988 | diderius6 | ⇗ @Andalu I use iasl.exe with SHA-1 A4302BFEC6A7D52A937801F6C76D450A1989EB95 It must be one of the very last versions, which works with XP Dietmar
#5989 | Andalu | ⇗ @diderius6 I'm using the same version form the iasl-win-20190509 package
#5990 | diderius6 | ⇗ @daniel_k Do you have a modded acpi.sys from XP SP1 Dietmar

#5991

daniel_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

- ⇗ acpi.zip

#5992

daniel_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.

#5993

daniel_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.

#5994

gordo999

> 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.

#5995

Andalu

⇗ @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 :(

#5996 | diderius6 | Hi, is there a way to change the DEV ID from 0F31=>0156 for the integrated Graphikcard on the J1900 Baytrail cpu Dietmar
#5997 | infuscomus | ⇗ @Andalu Can you send me your DSDT in both original BIN and DSL form so I can take a look?

#5998

Andalu

⇗ @infuscomus
below the dsdt table extracted with RWeverything from bios v2.50Andalu has attached files to this post

- ⇗ DSDT.zip

#5999

Mov 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)

#6000

infuscomus

⇗ @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

- ⇗ andalu-DSDT-mod.7z.zip

## Page 401

#6001 | Andalu | ⇗ @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-11

YuriyCN

> 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 мс - и убирает глюк со временем.

#6002

daniel_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.

#6003 | infuscomus | ⇗ @Andalu try "ACPI multiprocessor" mode with the DSDT mod - does restart work now?

#6004

Andalu

⇗ @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

#6005

Andalu

> 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.

#6006

infuscomus

> 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.

#6007 | Andalu | ⇗ @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?
#6008 | infuscomus | ⇗ @Andalu Yes, please try my modded dsdt.aml using my method. edit: and use "ACPI multiprocessor"
#6009 | Andalu | ⇗ @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.

#6010

infuscomus

⇗ @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

- ⇗ andalu-dsdt-mod-2.7z.zip

#6011

daniel_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?

#6012 | daniel_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.
#6013 | Andalu | ⇗ @infuscomus A5 bsod 0x03
#6014 | Andalu | ⇗ @daniel_k it boots with its table but the restart fails :(

#6015

Andalu

> 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

#6016

infuscomus

⇗ @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

- ⇗ andalu-dsdt-mod-3.7z.zip

#6017

Andalu

⇗ @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

#6018 | infuscomus | ⇗ @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.

#6019

Andalu

⇗ @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?

#6020 | infuscomus | ⇗ @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?

#6021

Andalu

⇗ @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

#6022 | infuscomus | ⇗ @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.
#6023 | Andalu | ⇗ @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 :)
#6024 | infuscomus | ⇗ @Andalu Just out of curiosity, can you boot into a live ubuntu 20.04 ISO after patching the DSDT?
#6025 | Andalu | ⇗ @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.
#6026 | infuscomus | ⇗ @Andalu You only need to download the ISO and put it in the LINUX folder - XP can do that.
#6027 | Andalu | ⇗ @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.
#6028 | infuscomus | ⇗ @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)
#6029 | Andalu | ⇗ @infuscomus just tried: I can boot into a live ubuntu 16.04.5 via easy2boot after patching the dsdt table.
#6030 | infuscomus | ⇗ @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

#6031 | Andalu | ⇗ @infuscomus here is an extract from the ubuntu syslog file: ⇗ Many thanks for the support

#6032

diderius6

Nice 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?

#6033

blackwingcat

Okay.
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

#6034 | infuscomus | ⇗ @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?

#6035

diderius6

⇗ @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

#6036

Andalu

⇗ @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

#6037

diderius6

I 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

#6038 | diderius6 | ⇗ @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
#6039 | Andalu | ⇗ @diderius6 thanks for the info ;) I thought your posts about the asl /loadtable command were still applicable in my case.
#6040 | infuscomus | ⇗ @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?
#6041 | Andalu | ⇗ @infuscomus acpi.sys 6666 (2019.10.20) from outer space (SHA-1: B1CE1C07AFB0861BCCDEC17DAF04274A3DD80C8C) I'll take a look to the video.
#6042 | infuscomus | ⇗ @Andalu the checksum matches the acpi.sys I use, so thats good. can you run acpidump -b again? but send me everything this time?

#6043

Andalu

⇗ @infuscomus
here the extracted tablesAndalu has attached files to this post

- ⇗ B250MPro4.zip

#6044

diderius6

⇗ @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
⇗

#6045

infuscomus

⇗ @Andalu
Thanks,
I tried different approaches with these, let me know the result.infuscomus has attached files to this post

- ⇗ andalu_acpidump_dsdt_mod.7z.zip

## Page 404

#6046 | Andalu | ⇗ @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
#6047 | infuscomus | ⇗ @Andalu Very strange, error is in _INI for some reason. ⇗ @diderius6 any ideas?
#6048 | diderius6 | ⇗ @Andalu Please send me the acpi.sys that you use Dietmar

#6049

Mov 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

#6050

Andalu

> 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)

#6051

Mov 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

#6052

diderius6

⇗ @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

#6053

Mov 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)

#6054

Mov 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(), за каждый вызов разница времи только увеличивается

#6055

ruthan

I 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?

#6056 | diderius6 | ⇗ @Andalu This is hack of acpi.sys against Bsod 0x000000A5 (0x00000003, xxx, yyy, zzz) Dietmar ⇗ https://ufile.io/305aedg3
#6057 | ruthan | Some 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.
#6058 | ruthan | Hmm Fresco is nice one, its first controller, where Xbox360 controller working correctly, even after reboot..

#6059

Andalu

⇗ @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.

#6060

diderius6

I 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

#6061

blackwingcat

Thank 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

#6062

gordo999

> 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.

#6063

gordo999

> 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.

#6064 | gordo999 | ⇗ @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

#6065

Andalu

⇗ @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.

#6066 | diderius6 | ⇗ @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

#6067

diderius6

⇗ @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

#6068 | infuscomus | ⇗ @Andalu are you able to continue the install without patching ACPI for now?
#6069 | Andalu | ⇗ @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.

#6070

diderius6

⇗ @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

#6071 | infuscomus | ⇗ @Andalu Honestly, I'm not sure why this is happening, I only tested this method on my threadripper system.
#6072 | Andalu | ⇗ @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.

#6073

diderius6

I 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???
⇗

#6074 | diderius6 | Is 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
#6075 | kukonosau | ⇗ @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

#6076 | kukonosau | ⇗ @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...
#6077 | infuscomus | ⇗ @kukonosau you can get the patch integrator here - ⇗ https://www.zone62.com/downloads/softwar...ntegral-edition
#6078 | ruthan | Here is disable annoying checkdisk: ⇗ https://www.raymond.cc/blog/disable-or-s...indows-startup/ I also made on VIA USB3 TV tuner fully working..

#6079

gordo999

> 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

#6080 | diderius6 | ⇗ @gordo999 Thanks a lot, I try, Dietmar

#6081

diderius6

I 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?

#6082

gordo999

> 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.

#6083

diderius6

⇗ @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

#6084

ruthan

I 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..

#6085

gordo999

> 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.

#6086

diderius6

⇗ @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;
>     }

#6087

diderius6

I 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

#6088 | infuscomus | ⇗ @Mov AX, 0xDEAD Since you have source code, do you have a new acpi.sys driver to help ⇗ @Andalu with the restart issue?

#6089

Mov 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

#6090 | infuscomus | ⇗ @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

#6091 | diderius6 | ⇗ @Mov AX, 0xDEAD What does it mean, when in Windbg something in the "view" of the registers is marked red Dietmar

#6092

ruthan

Hmm 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

#6093

Mov 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

#6094

ruthan

I 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?

#6095

diderius6

Until 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.

#6096 | ruthan | Hmm, 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..
#6097 | blackwingcat | 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.
#6098 | infuscomus | ⇗ @ruthan you might want to try using display driver uninstaller and then reinstall your drivers.
#6099 | dpps5387690 | Hi ⇗ @diderius6 Can you give me last acpi.sys for winxp sp3? I will install Winxp sp3 for Z490. Thanks.

#6100

infuscomus

⇗ @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.

#6101 | dpps5387690 | Thank you. I try it.

#6102

diderius6

⇗ @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?

#6103

diderius6

⇗ @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

#6104 | ruthan | ⇗ @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..
#6105 | infuscomus | ⇗ @ruthan There is snappy driver installer, although I'm not sure if the latest version still works in XP though.

## Page 408

#6106

diderius6

Yesssa, 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
⇗
⇗

#6107 | ruthan | ⇗ @infuscomus Its installer not uninstaller and its running even with Windows 2000.

#6108

diderius6

What 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.

#6109

Mov 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

#6110

Mov 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

#6111

diderius6

⇗ @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.

#6112 | diderius6 | ⇗ @Mov AX, 0xDEAD "it detect mem size by reading hardware chip" Where is this information about GPU chip originally taken from Dietmar
#6113 | Mov AX, 0xDEAD | Hi 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

#6114

Mov 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

#6115 | diderius6 | ⇗ @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
#6116 | diderius6 | ⇗ @Mov AX, 0xDEAD I tried !db 0x87e1b734 but this gives nonsense or at the end of boot process just 00 00 00 everywhere Dietmar

#6117

diderius6

I 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

#6118 | ruthan | How 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..

#6119

diderius6

⇗ @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 .

#6120 | ruthan | I 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

#6121

diderius6

⇗ @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

#6122

gordo999

> 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.

#6123

gordo999

> 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.

#6124

pappyN4

⇗ @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;

    }

#6125

gordo999

> 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?
Может кто-нибудь помочь мне с этой проблемой, пожалуйста?

#6126

gordo999

> 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

#6127

gordo999

> 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].

#6128

blackwingcat

When 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.

#6129 | diderius6 | On 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

#6130

diderius6

⇗ @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

#6131

Mov 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...

#6132

Mov AX, 0xDEAD

Hi 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;
}

#6133

diderius6

⇗ @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..

#6134

Mov 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)

#6135 | daniel_k | ⇗ @diderius6 Did you take a look at the changes in the Kaby Lake driver modded to support Coffee Lake graphics?

## Page 410

#6136

diderius6

⇗ @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

#6137

diderius6

⇗ @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
⇗

#6138 | diderius6 | ⇗ @Mov AX, 0xDEAD Can I delete the "CC" for break with code "90" by hand in memory using windbg Dietmar

#6139

infuscomus

⇗ @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?

#6140

Mov 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....

#6141

Mov 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

#6142 | Mov AX, 0xDEAD | KDNET 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
#6143 | diderius6 | IDA 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

#6144

Mov 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-12

YuriyCN

Уход времени "вперёд" на современных ПК под 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

#6145 | dpps5387690 | Hi ⇗ @diderius6 & ⇗ @infuscomus I try the acpi 6666 Install winxp stuck 0x7E 0xC0000005 in IDE Modedpps5387690 has attached images to this post ⇗ 0x7E.jpg

#6146

diderius6

⇗ @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?

#6147 | dpps5387690 | ⇗ @diderius6 I use USB(grldr Tool),during install cause this problem(0x7E). I will try the original xp.iso. Thanks.
#6148 | kukonosau | ⇗ @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! :)
#6149 | kukonosau | ⇗ @YuriyCN Приветствую. Неоднократно видел Ваши сообщения на форуме. Вы и вправду тут единственный русскоговорящий? Ну, кроме меня)
#6150 | diderius6 | ⇗ @kukonosau Я работаю учителем математики и физики в средней школе. Windows XP - мое хобби. Windows XP SP2 x64 is unstable on most newer hardware, as I noticed Dietmar

## Page 411

#6151 | kukonosau | ⇗ @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! :)
#6152 | infuscomus | ⇗ @dpps5387690 I would recommend using Easy2boot to do XP installs, I've had no trouble with it.

#6153

diderius6

I 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.

#6154 | diderius6 | ⇗ @kukonosau Я немного говорю по-русски :)) Dietmar
#6155 | kukonosau | ⇗ @diderius6 Вот это хорошо! Тогда я бы побольше хотел с Вами общаться насчёт Windows XP. Уж очень нравится мне эта операционная система. Жаль, для x64 нет сборника драйверов. Почему, интересно, она нестабильно работает с современными платами, а в играх FPS отличный показывает, даже лучше, чем x86? И почему на Intel работает, но не на Ryzen? На Ryzen случайный BSOD возникает. Я бы смирился с отключением сетевой карты Ethernet, но никак не с BSOD/crash randomally.
#6156 | kukonosau | ⇗ @diderius6 What is Dietmar? Translate in Russian, please.

#6157

diderius6

⇗ @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

#6158 | kukonosau | ⇗ @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 лишь.
#6159 | kukonosau | ⇗ @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!!!

#6160

gordo999

> 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.

#6161

gordo999

> 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.

#6162

diderius6

⇗ @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.
⇗

#6163

gordo999

> 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.

#6164 | diderius6 | The 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 ⇗

#6165

gordo999

> 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

#6166

diderius6

⇗ @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

#6167 | Outbreaker | ⇗ @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?

#6168

diderius6

⇗ @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?!

#6169 | infuscomus | ⇗ @diderius6 I'm guessing windbg has the breakpoints cached somewhere, in appdata maybe?
#6170 | dpps5387690 | ⇗ @diderius6 & ⇗ @infuscomus I install winxp success. Thanks.
#6171 | infuscomus | ⇗ @dpps5387690 you're welcome!

#6172

diderius6

⇗ @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-13

YuriyCN

> 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 и накручивать время. Возможно тогда это привлечет внимание реверс инженеров и они решат данную проблему "красиво" - на уровне патча системных файлов.

#6173

diderius6

I 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.

#6174

diderius6

Waaaooh,
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.

#6175 | infuscomus | ⇗ @diderius6 do you get the same result with the windows 10 debugger?
#6176 | diderius6 | ⇗ @infuscomus Where do I find the win10 debugger? And can it work like the 8.1 windbg with XP SP3? Dietmar
#6177 | infuscomus | ⇗ @diderius6 It's part of the Windows 10 SDK (you can install just the Debugger Tools)

#6178

diderius6

⇗ @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

#6179 | infuscomus | ⇗ @diderius6 There is no left over junk in AppData or in Windows\Temp?

#6180

diderius6

⇗ @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

#6181 | infuscomus | ⇗ @diderius6 maybe try windows 8.1/10 as host PC?

#6182

diderius6

⇗ @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-14

YuriyCN

>>Добавление команды /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

#6183

gordo999

> 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.

#6184

diderius6

⇗ @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

#6185

ruthan

⇗ @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.

#6186

diderius6

"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..

#6187

iyutos

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

#6188

infuscomus

⇗ @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.

#6189

iyutos

If 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

#6190 | iyutos | It seems to me that Windbg stores values in six debug registers, Intel ME is not involved

#6191

diderius6

⇗ @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.

#6192

diderius6

"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-15

YuriyCN

> 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

#6193

diderius6

Flash 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
>     ---------

#6194

diderius6

I 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

#6195

gordo999

> 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

#6196

diderius6

⇗ @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

#6197 | diderius6 | When 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.

#6198

diderius6

Next 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

#6199 | diderius6 | ⇗ http://read.pudn.com/downloads182/ebook/...nternals(2).pdf Nice, there I found, that indeed the timer is involved in HalInitSystem Dietmar

#6200

diderius6

I 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
⇗

#6201

diderius6

"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

#6202

gordo999

> 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.

#6203

diderius6

⇗ @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

#6204

gordo999

> 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/

#6205 | diderius6 | MINIX is the most used OS in the world since 2006 ⇗ https://www.cs.vu.nl/~ast/intel/ Dietmar
#6206 | diderius6 | Is there a program, with which you can find the (start) address of a series of Hex orders in memory Dietmar

#6207

Mov 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

#6208

Mov 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)

#6209

diderius6

This 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

#6210

gordo999

> 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

#6211

gordo999

> 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.

#6212 | FireKillerGR | Hi, 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?
#6213 | infuscomus | ⇗ @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?

#6214

George King

Hello 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/

#6215 | diderius6 | ⇗ @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
#6216 | diderius6 | ⇗ @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

#6217

diderius6

⇗ @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

#6218 | infuscomus | ⇗ @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.

#6219

FireKillerGR

Actually 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!

#6220

George 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/

#6221

diderius6

⇗ @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?

#6222

gordo999

> 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.

#6223

gordo999

> 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.

#6224 | FireKillerGR | Will test. Thanks!

#6225

Andalu

> 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

#6226 | diderius6 | ⇗ @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
#6227 | Jevees | Hi. Does any XP drivers for modern videocards exist? Im searching for Nvidia RTX 3080 compatible driver.
#6228 | infuscomus | ⇗ @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.

#6229

Jevees

> 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?

#6230 | infuscomus | ⇗ @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.

#6231

Andalu

⇗ @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.

#6232

Mov 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

#6233 | infuscomus | ⇗ @Andalu I'm just guessing here, but maybe the problem is in the halmacpi.dll? try going back to unpatched version maybe?

#6234

diderius6

⇗ @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 .

#6235

diderius6

⇗ @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

#6236

Mov 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

#6237 | Andalu | ⇗ @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.

#6238

Andalu

⇗ @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.

#6239 | diderius6 | ⇗ @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
#6240 | Andalu | ⇗ @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

#6241

diderius6

⇗ @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

#6242 | Jevees | I'm searching for acpi.sys x64 for Z490 to instal windows XP x64. Are there any ? Edit: nvm found it, works perfect
#6243 | juk777 | Hello, 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...

#6244

Andalu

⇗ @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).

#6245

diderius6

⇗ @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

#6246

diderius6

⇗ @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

#6247

Jevees

I'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 ?

#6248 | infuscomus | ⇗ @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

#6249

Jevees

> 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-16

YuriyCN

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

#6250

Jevees

> 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

#6251 | daniel_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?

#6252

daniel_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.

#6253

daniel_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?

#6254

diderius6

⇗ @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

#6255

Andalu

⇗ @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

#6256

diderius6

⇗ @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

#6257

infuscomus

> 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.

#6258

daniel_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

#6259

diderius6

⇗ @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

#6260

daniel_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

#6261

Andalu

⇗ @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.

#6262

diderius6

⇗ @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.

#6263

Mov 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

#6264

diderius6

⇗ @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)

#6265

pappyN4

Success 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 trypappyN4 has attached files to this post

- ⇗ unmodifiedSYSfiles.rar

#6266 | daniel_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.

#6267

Mov 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

#6268

Mov 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-17

YuriyCN

Пояснения по 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" больше не заслуживает доверия.

#6269

pappyN4

Anyone 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.

#6270 | Andalu | ⇗ @pappyN4 ¶ here some screenshots about it.

## Page 419

#6271

Andalu

> 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.

#6272

infuscomus

⇗ @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.

#6273 | Andalu | ⇗ @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.

#6274

infuscomus

⇗ @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?

#6275

Mov 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

#6276

Andalu

> 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....

#6277 | infuscomus | ⇗ @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?
#6278 | Andalu | ⇗ @infuscomus No entries in the bios for both of them.
#6279 | infuscomus | ⇗ @Andalu I'm out of ideas on how to fix this restart issue
#6280 | infuscomus | ⇗ @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.

#6281

Gelip

> 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

#6282

Andalu

> 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.

#6283

pappyN4

Thanks 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

#6284

YuriyCN

[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

#6285

gordo999

> 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

#6286

diderius6

Hi,
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

#6287 | infuscomus | ⇗ @diderius6 I suppose it depends on whether or not there was ever an x64 version of Embedded XP.

#6288

diderius6

⇗ @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

#6289 | infuscomus | ⇗ @diderius6 can you check if the missing dependencies are covered by ntoskrnl extender?

#6290

diderius6

There 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 !!!

#6291

diderius6

For 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

#6292 | diderius6 | I 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

#6293

diderius6

For 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

#6294 | daniel_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?

#6295

diderius6

⇗ @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.

#6296

diderius6

Yessssssaaa,
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"

#6297

diderius6

Ok, 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;))..
⇗

#6298

diderius6

What 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.

#6299

daniel_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.

#6300 | diderius6 | ⇗ @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

#6301

diderius6

I 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

#6302

diderius6

May 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

#6303 | diderius6 | It hangs, even the limit is about full 32 Gbyte? Dietmar ⇗

#6304

gordo999

> 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

#6305

gordo999

> 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.

#6306

diderius6

⇗ @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.

#6307 | kukonosau | ⇗ @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.
#6308 | diderius6 | ⇗ @kukonosau In the evening I try to mod for Ryzen also Dietmar
#6309 | kukonosau | ⇗ @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?
#6310 | kukonosau | ⇗ @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?
#6311 | kukonosau | ⇗ @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!!!
#6312 | infuscomus | ⇗ @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++)
#6313 | kukonosau | ⇗ @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?

#6314

diderius6

⇗ @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

#6315 | kukonosau | ⇗ @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

#6316 | kukonosau | ⇗ @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.

#6317

diderius6

⇗ @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

#6318 | kukonosau | ⇗ @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...
#6319 | kukonosau | ⇗ @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.
#6320 | diderius6 | ⇗ @kukonosau Does it mean it works? Dietmar
#6321 | kukonosau | ⇗ @diderius6 Unfortunately, no. Also error A5. But I see that every start appearance brackets new figures. 0x000000000000002 and so on...
#6322 | diderius6 | ⇗ @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
#6323 | kukonosau | ⇗ @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.
#6324 | kukonosau | ⇗ @diderius6 Yes, yes, yes!!! After 0x02 appearance different values after every restarting!!! Your rename their xxx, yyy, zzz.
#6325 | diderius6 | ⇗ @kukonosau Please write to me the exact full Bsod code Dietmar

#6326

kukonosau

⇗ @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.

#6327 | kukonosau | ⇗ @diderius6 I don't know how to send screenshots with full code ACPI(((
#6328 | kukonosau | ⇗ @diderius6 Last error ACPI: ***STOP: 0x000000A5 (0x000000000000002, 0xFFFFADE85B34840, 0x0000000000000001, 0xFFFFFADE85ADAC30)

#6329

kukonosau

⇗ @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)

#6330 | diderius6 | ⇗ @kukonosau Interesting, what this new acpi.sys will show Dietmar ⇗ https://ufile.io/meeg1fjj

## Page 423

#6331

ruthan

> Zitat

> I don't know how to send screenshots with full code ACPI(((

Just use Phone camera.

#6332

bright_light

Hi 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.

#6333 | daniel_k | ⇗ @diderius6 acpi.sys 6666 supports all ACPI 2.0 opcodes. Unless someone does the same for x64, it won't work.
#6334 | infuscomus | ⇗ @daniel_k Hopefully ⇗ @Mov AX, 0xDEAD can share how he did it?
#6335 | infuscomus | ⇗ @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.

#6336

diderius6

⇗ @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.

#6337 | bright_light | diderius6 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.

#6338

diderius6

⇗ @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

#6339 | diderius6 | Hm, 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
#6340 | kukonosau | ⇗ @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.
#6341 | kukonosau | ⇗ @diderius6 Sometime appeared BSOD error 0x01E. But often ACPI freeze in setup is starting Windows.

#6342

gordo999

> 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.

#6343 | kukonosau | ⇗ @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.

#6344

diderius6

⇗ @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

#6345 | kukonosau | ⇗ @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

#6346 | kukonosau | ⇗ @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.
#6347 | kukonosau | ⇗ @diderius6 Influence acpi.sys on perfomance? For example gaming perfomance?
#6348 | diderius6 | ⇗ @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.
#6349 | kukonosau | ⇗ @diderius6 What am I doing?
#6350 | kukonosau | ⇗ @diderius6 Incorrect password.
#6351 | diderius6 | ⇗ @kukonosau You need 7zip for to unpack Dietmar
#6352 | kukonosau | ⇗ @diderius6 I have 7-zip. Incorrect password.
#6353 | diderius6 | ⇗ @kukonosau The file is damaged, I upload it new Dietmar
#6354 | kukonosau | ⇗ @diderius6 Okay, I understand. File is damaged, file include errors.
#6355 | kukonosau | ⇗ @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.

#6356

Mov 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 ?

#6357

diderius6

I 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.

#6358 | infuscomus | ⇗ @Mov AX, 0xDEAD can we do an acpi2.0 implementation properly using the source code instead? or manual assembly edit is the only way?

#6359

diderius6

⇗ @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

#6360 | kukonosau | ⇗ @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

#6361 | kukonosau | ⇗ @diderius6 But Windows XP x64 SP2 has more BSOD's on Ryzen than Vista x64 SP2, but no much.

#6362

Mov 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

#6363

Andalu

Finally 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?

#6364 | daniel_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.
#6365 | Andalu | ⇗ @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.

#6366

Mov 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

#6367 | Andalu | ⇗ @Mov AX, 0xDEAD here the complete code: 0xDEADBEEF (0x02, 0x8A158B20, 0x8A20D1F8,0x00). But I don't know what they mean.
#6368 | diderius6 | 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

#6369

pappyN4

Andalu'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

#6370

daniel_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

#6371

diderius6

⇗ @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

#6372 | pappyN4 | ⇗ @diderius6 windows6.1-kb3125574-v4-x64 has ewf.sys 1.0.1533.0
#6373 | Andalu | ⇗ @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.
#6374 | diderius6 | ⇗ @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
#6375 | pappyN4 | I use sereby Hotfix Extr4ct0r. Works nice. Then search extracted folders for *.sys or whatever

## Page 426

#6376 | daniel_k | ⇗ @diderius6 Open Command Prompt: expand -f:* Windows6.1-KB2573449-x64.msu . expand -f:* Windows6.1-KB2573449-x64.cab .

#6377

diderius6

⇗ @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

#6378

diderius6

The 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

#6379 | diderius6 | This 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 ⇗

#6380

pappyN4

Depending 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?

#6381 | diderius6 | ⇗ @pappyN4 I dont have this PDB. Crazy flight in night during editing this acpi 5048 files Dietmar

#6382

diderius6

It 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

#6383

usa1ec

> 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.

#6384 | diderius6 | Here it is, hope that ⇗ @dencorso agrees Dietmar ⇗ https://ufile.io/dunj39qa

#6385

diderius6

I 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;))
⇗

#6386

infuscomus

⇗ @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

- ⇗ myacpisys.zip

#6387 | kukonosau | ⇗ @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?
#6388 | infuscomus | ⇗ @kukonosau No sorry, this is not ready yet, it was just to show that new ACPI words could be implemented using source code.
#6389 | kukonosau | ⇗ @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.

#6390

diderius6

⇗ @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

#6391

infuscomus

⇗ @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.

#6392

diderius6

⇗ @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

#6393

diderius6

Just 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

#6394 | kukonosau | ⇗ @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...
#6395 | diderius6 | ⇗ @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
#6396 | kukonosau | ⇗ @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.
#6397 | kukonosau | ⇗ @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?
#6398 | diderius6 | Bootloader 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
#6399 | kukonosau | ⇗ @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.

#6400

diderius6

⇗ @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.

#6401 | diderius6 | ⇗ @kukonosau Here is a new acpi.sys from XP64 also for Ryzen, make try Dietmar ⇗ https://ufile.io/20q6t748
#6402 | kukonosau | ⇗ @diderius6 Okay, thanks, I trying. After send message for you, okay? May I will be tester your acpi?

#6403

pappyN4

So 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)

#6404 | kukonosau | ⇗ @diderius6 Unfortunately, BSOD A5(0x01,xxx,0x02,yyy) again.

#6405

diderius6

⇗ @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

#6406 | kukonosau | ⇗ @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.
#6407 | diderius6 | ⇗ @kukonosau ⇗ @pappyN4 I make a strange mistake. So, this is new acpi.sys for XP64 Dietmar ⇗ https://ufile.io/4rhoz1f4

#6408

Mov 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

#6409 | kukonosau | ⇗ @diderius6 BSOD A5 again, sorry. (0x02,xxx,0x01,yyy)
#6410 | kukonosau | ⇗ @diderius6 Very hard work. But you are tolerant! I was been resigned.

#6411

dencorso

> 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!

#6412

diderius6

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)

#6413

diderius6

This 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"

#6414

diderius6

May 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.

#6415

Gelip

⇗ @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

- ⇗ winload.exe_xp32.zip

#6416 | infuscomus | Does anyone want to help update with the acpi.sys source code? or should I go it alone?
#6417 | diderius6 | ⇗ @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

#6418

diderius6

⇗ @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

#6419

Gelip

⇗ @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

#6420

Gelip

⇗ @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

#6421

diderius6

⇗ @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.

#6422 | Gelip | ⇗ @diderius6 Are there original files in the WinXP system or are you modified acpi.sys, modded-USB, modded-AHCI etc. ???

#6423

Gelip

@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.

#6424

George 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/

#6425 | Gelip | ⇗ @George King Yes, I did it: ⇗ https://www.betaarchive.com/forum/viewto...=445111#p445111 ⇗ https://www.betaarchive.com/forum/viewto...=445204#p445204

#6426

George 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/

#6427

diderius6

⇗ @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.
⇗
⇗
⇗

#6428

George 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/

#6429

diderius6

I 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

#6430

Gelip

⇗ @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

#6431

skullteria

> 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

#6432 | diderius6 | ⇗ @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

#6433

George 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

- ⇗ newloader.zip

[TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/

#6434

diderius6

I 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);
                    }

#6435

diderius6

I 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

#6436

Mov 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

#6437

gordo999

> 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

#6438

diderius6

⇗ @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

#6439

gordo999

> 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.

#6440

gordo999

> 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.

#6441

gordo999

> 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/

#6442

Mov 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

#6443

infuscomus

⇗ @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?

#6444

George King

If 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/

#6445

Mov 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
    };

#6446

George King

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
Tested in VirtualBox[TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/

#6447

diderius6

⇗ @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

#6448 | kukonosau | ⇗ @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?

#6449

George 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/

#6450

diderius6

I 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

#6451

diderius6

This 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...

#6452

diderius6

I 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

#6453

diderius6

small 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()

#6454

gordo999

⇗ @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

#6455

gordo999

> 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.

#6456

gordo999

⇗ @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().

#6457

George King

I 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 fileGeorge King has attached files to this post

- ⇗ Download.txt

[TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/

#6458 | diderius6 | ⇗ @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

#6459

diderius6

I 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 .

#6460

genieautravail

⇗ @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

#6461 | Andalu | ⇗ @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.

#6462

gordo999

> 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.

#6463

diderius6

⇗ @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

#6464

gordo999

> 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.

#6465

daniel_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

#6466

PPeti66x

⇗ @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

#6467

genieautravail

> 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.

#6468

genieautravail

> 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

#6469

bright_light

Under 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

#6470 | diderius6 | ⇗ @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

#6471

PPeti66x

⇗ @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.

#6472

PPeti66x

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 ?

#6473

genieautravail

> 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.

#6474 | diderius6 | ⇗ @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

#6475

diderius6

⇗ @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

#6476 | PPeti66x | ⇗ @genieautravail Both are Gen3 (Ivy Bridge). Is really needed the ACPI5048 for these? For desktop PCs the original ACPI is mostly enough.

#6477

George King

Anybody 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

- ⇗ icalcs+takeown_v6.0.6000.16386.zip

[TOOL] XP2ESD - Create modern Windows XP installer
⇗ https://forums.mydigitallife.net/threads...nstaller.82935/

#6478

genieautravail

> 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...

#6479 | daniel_k | ⇗ @PPeti66x and ⇗ @genieautravail If your laptops "hide" USB3 controller on XP, please try all acpi.sys: ⇗ http://www.mediafire.com/file/hwio6yp5je1hqkq
#6480 | genieautravail | ⇗ @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

#6481

PPeti66x

⇗ @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.

#6482

PPeti66x

⇗ @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.

#6483

Andalu

⇗ @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:
⇗

#6484

daniel_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.

#6485

genieautravail

⇗ @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

#6486 | genieautravail | ⇗ @PPeti66x Thanks you very much! That's do a lot of tests for me the next week! Regards

#6487

onuracengiz

⇗ 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

#6488

Mov 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

#6489

Mov 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?

#6490

Mov 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

#6491

diderius6

⇗ @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.

#6492

George 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/

#6493

George 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/

#6494

Mov 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

#6495

George King

Thats 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

#6496

Mov 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)

#6497

daniel_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

- ⇗ acpi2013_2015.zip

#6498 | genieautravail | ⇗ @daniel_k Thanks you very much and many thanks to ⇗ @Mov AX, 0xDEAD for his help! That's cooool! Regards
#6499 | Andalu | ⇗ @daniel_k ⇗ @Mov AX, 0xDEAD thanks guys for your amazing work

#6500

PPeti66x

⇗ @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?

#6501

daniel_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.

#6502 | daniel_k | I've updated the attachment. so there are 2 versions now: 2013/2015. Use the one that works best for your system.

#6503

PPeti66x

⇗ @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

- ⇗ Dell_M4800_ACPI_tables.zip

#6504

daniel_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.

#6505 | PPeti66x | ⇗ @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.

#6506

daniel_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.)

#6507

pappyN4

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.
⇗
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
    }

#6508

Gelip

⇗ @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

#6509

diderius6

⇗ @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".

#6510

Gelip

> 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

#6511 | PPeti66x | ⇗ @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.

#6512

diderius6

After 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
⇗

#6513

Mov 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)

#6514 | diderius6 | I 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

#6515

Gelip

⇗ @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.

#6516

genieautravail

Hello ⇗ @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

#6517 | PPeti66x | ⇗ @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.

#6518

George 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/

#6519

infuscomus

ported vista beta 5365 acpi.sys - testers welcome!infuscomus has attached files to this post

- ⇗ vista_beta_acpi_for_xp_test.zip

#6520 | Andalu | ⇗ @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.
#6521 | genieautravail | ⇗ @PPeti66x I will try the others ACPI files as soon that I will have a little free time!

#6522

ruthan

> 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?

#6523

daniel_k

⇗ @PPeti66x
Please do a last test using the 2009 and 2012 acpi files attached.daniel_k has attached files to this post

- ⇗ acpi2009_2012.zip

#6524

PPeti66x

⇗ @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

#6525

daniel_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

#6526 | PPeti66x | ⇗ @daniel_k Both works exactly same as the test versions in ⇗ http://www.mediafire.com/file/hwio6yp5je1hqkq .

#6527

daniel_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.

#6528 | PPeti66x | ⇗ @daniel_k Until those strings remains easily patchable, I can easily adapt future versions for my compi. Thanks for your hard work.

#6529

diderius6

I 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

#6530

Gelip

⇗ @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

#6531

George 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/

#6532 | jonathan_hzs | prime b250m plus I7-7700 hd630 Successful installation bbs.pcbeta.com xp Section I am not good at English
#6533 | R3n | I need the AMDXHCI_XP_FINAL.rar driver, but I can't find where it was posted in the thread.

#6534

genieautravail

⇗ @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

#6535 | infuscomus | ⇗ @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?

#6536

Gelip

⇗ @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

#6537 | diderius6 | ⇗ @R3n The last version of AMDXHCI_XP_FINAL can be found at ⇗ https://forums.mydigitallife.net/threads...hardware.81607/ Dietmar
#6538 | infuscomus | ⇗ @diderius6 I patched ACPILoadFindRSDT into vista RTM acpi.sys - can you test it to see if it is more stable?
#6539 | diderius6 | ⇗ @infuscomus Yes, just send to me Dietmar

#6540

diderius6

I 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

#6541

infuscomus

⇗ @diderius6
here it is.
edit: updatedinfuscomus has attached files to this post

- ⇗ acpi_vista_rtm_patched.7z.zip

#6542

R3n

> 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.

#6543

gordo999

> 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?

#6544 | diderius6 | Hi, 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
#6545 | kukonosau | ⇗ @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.
#6546 | infuscomus | ⇗ @kukonosau It is not a stable acpi.sys right now.
#6547 | kukonosau | ⇗ @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.
#6548 | infuscomus | ⇗ @kukonosau I am not sure if one exists for XPx64.
#6549 | kukonosau | ⇗ @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.

#6550

Mov 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 здесь заметно меньше материалов, архитектура сложнее (ассемблерный уровень) и она заметно менее популярна

#6551

daniel_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.

#6552 | infuscomus | ⇗ @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?
#6553 | ruthan | ⇗ @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?

#6554

daniel_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.

#6555 | daniel_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

#6556 | daniel_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/

#6557

diderius6

I 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

#6558 | iyutos | (deleted) I found "Modded ACPI Drivers Depot"
#6559 | Dibya | What kind of problems are faced with ntoskrn8.sys? ⇗ @diderius6

#6560

infuscomus

> 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.

#6561

genieautravail

⇗ @daniel_k
ACPI tables of the laptops.
Regardsgenieautravail has attached files to this post

- ⇗ ACPIE6230.zip
- ⇗ ACPIE6430.zip

#6562

genieautravail

⇗ @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

#6563

diderius6

This 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
⇗

#6564 | diderius6 | After 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 ⇗
#6565 | infuscomus | ⇗ @diderius6 Please share how you achieved this! even I still have not got this acpi.sys working properly.

#6566

Mov AX, 0xDEAD

Hi,
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

#6567

XPLives

⇗ @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.

#6568 | infuscomus | ⇗ @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.

#6569

XPLives

⇗ @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.

#6570 | infuscomus | ⇗ @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

#6571

XPLives

⇗ @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.

#6572

XPLives

⇗ @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.

#6573

infuscomus

⇗ @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.

#6574

XPLives

⇗ @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.

#6575

XPLives

> 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

#6576

Andalu

> 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?

#6577

RayeR

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. 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?

#6578

Mov 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

#6579

RayeR

Thanks 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...

#6580

gordo999

> 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.

#6581

gordo999

> 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.

#6582

diderius6

⇗ @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.

#6583 | RayeR | 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...
#6584 | daniel_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.

#6585

gordo999

> 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

#6586

gordo999

> 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.

#6587

Mov 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.

#6588

genieautravail

⇗ @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

#6589 | daniel_k | WinXPPAE 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.
#6590 | Andalu | ⇗ @daniel_k just tried with the /4GB option: ram correctly recognized, thanksss
#6591 | genieautravail | ⇗ @daniel_k Issue resolved with the /M:4097MB parameter. Good works! Regards
#6592 | daniel_k | ⇗ @RayeR The only file you need from Server 2003 is usbport.sys, please try to replace only this file.

#6593

YuriyCN

Windows 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

#6594

Mov AX, 0xDEAD

Hi 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.

#6595

diderius6

⇗ @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

#6596

Mov 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

#6597

diderius6

⇗ @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."

#6598

diderius6

I 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

#6599 | PPeti66x | ⇗ @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.
#6600 | onuracengiz | Have 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