Jump to content

Compiling ACPI v2.0 driver for Windows XP SP3 and Windows 2003 SP2 (x32/x64)


Mov AX, 0xDEAD

Recommended Posts

Thanks, I'm using the 8.1 version and it seems to be working OK.

The next problem is that although I've added the extra entries to boot.ini on the target machine, it's not displaying them because it's a dual boot machine.
I've tried using the F8 options on startup after selecting Windows XP without success, but it's presumably just not using the normal boot.ini file.
I used EasyBCD to setup the dual boot system, but I can't see anything there to edit the Windows XP boot options.
Any ideas?
Boot.ini is in the root of drive C: which is the Windows 10 drive. Windows XP is on drive D:
I edited it using the Windows XP interface, but it's apparently not being used.
:dubbio:

Link to comment
Share on other sites


On 6/1/2022 at 6:32 PM, Dave-H said:

Am I right in assuming that the work on acpi.sys has now ended?

Curently YES, until someone found another XP A5 BSOD :)

ACPI.sys x64 is not much tested, it may have some undiscovered bugs

Link to comment
Share on other sites

2 hours ago, Dave-H said:

The next problem is that although I've added the extra entries to boot.ini on the target machine, it's not displaying them because it's a dual boot machine.

add to boot.ini to stop loading XP before you select something, if it not works, you have wrong boot.ini or multi copies on separate drives

Quote

[boot loader]
timeout=3

Link to comment
Share on other sites

@Dave-H

The guide I gave you assumes XP is the only OS on the drive.

Ideally, to get this debugging setup going, it would be best to make a backup image of your entire HDD (boot sector and all) and then wipe it, leaving XP as the only OS so you can use the boot.ini

Link to comment
Share on other sites

@Mov AX, 0xDEAD

On the Biostar z690A VALKYRIE  I get the famous A5 Bsod with the new acpi.sys V5, when I install XP SP3 via the Intel Sata 1006 driver.

But the most crazy thing is, when I use my already installed generic XP SP3, no Bsod with Intel 1006 driver and acpi.sys V5 at all.

With the generic XP I can boot the same XP SP3 via the Intel 1006 Sata driver together with acpi.sys V5.

So, this Bsod will be really hard to debug because it is only shown during TXT Setup of XP.

With the acpi.sys 6666 from outerspace ) I get message: Out of memory, Setup cant be continued

Dietmar

EDIT: Because of this "Out of memory" message I replace the DDR4 ram with a single 4GB stick.

Same A5 Bsod, also on the second Asmedia Sata Slot for ALL Sata drivers, that I have.

With generic XP SP3 I can change the Sata drivers and through all slots. No Bsod with acpi.sys V5.

I can install XP SP3 only direct to nvme device on the Biostar z690A VALKYRIE board.

20220604-123002.jpg

Edited by Dietmar
Link to comment
Share on other sites

9 hours ago, Mov AX, 0xDEAD said:

add to boot.ini to stop loading XP before you select something, if it not works, you have wrong boot.ini or multi copies on separate drives

Thanks, I'll try that.

4 hours ago, Damnation said:

@Dave-H

The guide I gave you assumes XP is the only OS on the drive.

Ideally, to get this debugging setup going, it would be best to make a backup image of your entire HDD (boot sector and all) and then wipe it, leaving XP as the only OS so you can use the boot.ini

I already made a full ISO backup of the whole system, so I can easily restore it.
I will see if I can get the Windows 10 installation ignored.
The EasyBCD documentation has a lot of information about this, I just need to get my head around it!
:)

Link to comment
Share on other sites

1 hour ago, Dietmar said:

@Mov AX, 0xDEAD

On the Biostar z690A VALKYRIE  I get the famous A5 Bsod with the new acpi.sys V5, when I install XP SP3 via the Intel Sata 1006 driver.

So, this Bsod will be really hard to debug because it is only shown during TXT Setup of XP

 

you can kernel debug TXT setup too

just prepare .ISO with kdnet files and edit txtsetup.sif to enable kernel debugging like boot.ini
 

Quote

 

[SetupData]

OsLoadOptions = "/fastdetect /noguiboot /nodebug"

 

i didn't tested but seems to work

Link to comment
Share on other sites

@Mov AX, 0xDEAD

I prepare all for Windbg of TXT Setup of XP.

But now comes this message:

20220604-145545.jpg

I edit TXTSETUP.SIF with the following lines but no connection via Lan Debug

 

[SetupData]

OsLoadOptions = "/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.103 /BREAK"

 

[SourceDisksFiles]

kdcom.dll = 1,,,,,,3_,2,0,0,,1,2
kdnet.dll = 1,,,,,,3_,2,0,0,,1,2
kdstub.dll = 1,,,,,,3_,2,0,0,,1,2

 

Because I have no idea what the numbers behind those files mean,

I just copy the entries from kdcom.dll .

Now, XP TXT at "Windows Setup" stops, I think because of "BREAK"

but no connection via Lan Debug

Dietmar

Edited by Dietmar
Link to comment
Share on other sites

@Mov AX, 0xDEAD

Hm, with the debug acpi.sys V5

Windbg tells no A5 error but this.

Bsod happens, before the DriverEntry point of acpi.sys is reached

via

bu acpi!DriverEntry

https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntddk/nf-ntddk-ioraiseinformationalharderror

Dietmar

 

*** Fatal System Error: 0x0000000a
                       (0x00000008,0x00000002,0x00000000,0x8086061F)

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 (Sat Jun  4 16:16:53.343 2022 (UTC + 2:00)), ptr64 FALSE
Loading Kernel Symbols
...............................................................
..............................
Loading User Symbols

*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck A, {8, 2, 0, 8086061f}

Probably caused by : ntkrnlmp.exe ( nt!IoRaiseInformationalHardError+1b4 )

Followup: MachineOwner
---------

nt!RtlpBreakWithStatusInstruction:
808109c2 cc              int     3
kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

IRQL_NOT_LESS_OR_EQUAL (a)
An attempt was made to access a pageable (or completely invalid) address at an
interrupt request level (IRQL) that is too high.  This is usually
caused by drivers using improper addresses.
If a kernel debugger is available get the stack backtrace.
Arguments:
Arg1: 00000008, memory referenced
Arg2: 00000002, IRQL
Arg3: 00000000, bitfield :
    bit 0 : value 0 = read operation, 1 = write operation
    bit 3 : value 0 = not an execute operation, 1 = execute operation (only on chips which support this level of status)
Arg4: 8086061f, address which referenced memory

Debugging Details:
------------------


READ_ADDRESS:  00000008

CURRENT_IRQL:  2

FAULTING_IP:
nt!IoRaiseInformationalHardError+1b4
8086061f 3b5008          cmp     edx,dword ptr [eax+8]

DEFAULT_BUCKET_ID:  DRIVER_FAULT

BUGCHECK_STR:  0xA

ANALYSIS_VERSION: 6.3.9600.17237 (debuggers(dbg).140716-0327) x86fre

TRAP_FRAME:  80884f48 -- (.trap 0xffffffff80884f48)
ErrCode = 00000000
eax=00000000 ebx=81a659e8 ecx=8088ee10 edx=c000012d esi=00000000 edi=8088ee18
eip=8086061f esp=80884fbc ebp=80884fc8 iopl=0         nv up ei pl nz na pe cy
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010207
nt!IoRaiseInformationalHardError+0x1b4:
8086061f 3b5008          cmp     edx,dword ptr [eax+8] ds:0023:00000008=????????
Resetting default scope

LAST_CONTROL_TRANSFER:  from 8086457f to 808109c2

STACK_TEXT:  
80884afc 8086457f 00000003 80884e58 00000000 nt!RtlpBreakWithStatusInstruction
80884b48 80865056 00000003 00000008 8086061f nt!KiBugCheckDebugBreak+0x19
80884f28 8080ea16 0000000a 00000008 00000002 nt!KeBugCheck2+0x574
80884f28 8086061f 0000000a 00000008 00000002 nt!KiTrap0E+0x180
80884fc8 8086cdbd 0100012d 00000000 00000000 nt!IoRaiseInformationalHardError+0x1b4
80884fd8 80856aab 8088ff20 00000000 81a31d68 nt!MiCauseOverCommitPopup+0x5e
80885020 8082d7ad 00000000 81a31e30 809004c5 nt!MiChargeCommitment+0x108
80885044 80900538 00000000 81a31d68 80885158 nt!MmCreateProcessAddressSpace+0x1c
80885058 809004e5 81a31d68 80885158 808851f0 nt!MmInitializeHandBuiltProcess+0x49
808851a0 809f43d0 809c92cc 001f0fff 80885224 nt!PspCreateProcess+0x29a
8088524c 809f4085 80081000 808853e8 809ea96d nt!PspInitPhase0+0x34e
80885258 809ea96d 00000000 80081000 8088fcc0 nt!PsInitSystem+0x33
808853e8 809f110d 00000000 80081000 8003fc00 nt!ExpInitializeExecutive+0x783
8088543c 809f0d97 8088ff20 8088fcc0 80885700 nt!KiInitializeKernel+0x4f6
00000000 00000000 00000000 00000000 00000000 nt!KiSystemStartup+0x2c4


STACK_COMMAND:  kb

FOLLOWUP_IP:
nt!IoRaiseInformationalHardError+1b4
8086061f 3b5008          cmp     edx,dword ptr [eax+8]

SYMBOL_STACK_INDEX:  4

SYMBOL_NAME:  nt!IoRaiseInformationalHardError+1b4

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: nt

IMAGE_NAME:  ntkrnlmp.exe

DEBUG_FLR_IMAGE_TIMESTAMP:  5c34e27b

IMAGE_VERSION:  5.1.2600.7649

FAILURE_BUCKET_ID:  0xA_nt!IoRaiseInformationalHardError+1b4

BUCKET_ID:  0xA_nt!IoRaiseInformationalHardError+1b4

ANALYSIS_SOURCE:  KM

FAILURE_ID_HASH_STRING:  km:0xa_nt!ioraiseinformationalharderror+1b4

FAILURE_ID_HASH:  {929afa2d-924a-a4ee-b8ae-b3ca03308a8c}

Followup: MachineOwner
---------

 

Edited by Dietmar
Link to comment
Share on other sites

I'm making progress, but not there yet!
I sorted out the dual boot problem, I just had to create another boot menu entry in EasyBCD using the legacy XP bootloader system.
If I select that, I now get a further menu with the entries from boot.ini.

However, if I select either of the debug entries, the machine just reboots instead of going to XP.
By process of elimination, I narrowed the cause of this down to the '/BREAK' entry in boot.ini.
If I remove that, it boots into XP fine, but not when it's there.
Any idea why that might be?

I'm not getting a connection to the host machine when it does boot into XP, I suspect the addresses are wrong.
This presumably will work with just a wi-fi connection via a router?
There is a direct cable connection between the machines as well (using a USB-Ethernet converter on the netbook as it has no onboard Ethernet connection). Should I remove that, or is it better to connect that way instead of by wi-fi?
:dubbio:

Link to comment
Share on other sites

@Dave-H

make sure you have windbg open on your debugger and waiting for the debugee to connect.

then on the debugee select the debug option from your XP boot menu.

then switch back to the debugger and wait for it to connect.

Link to comment
Share on other sites

3 hours ago, Dave-H said:

There is a direct cable connection between the machines as well (using a USB-Ethernet converter on the netbook as it has no onboard Ethernet connection).

The use of a USB-Ethernet converter does not allow the connection between the two PCs. It has already been discussed here and in following posts.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...