Jump to content

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


Mov AX, 0xDEAD

Recommended Posts

On 4/7/2022 at 11:42 AM, Dietmar said:

@Mov AX, 0xDEAD

"ACPIBusIrpQueryResourceRequirements doesn't have trace output,  we can rely only on ACPIDevPrint() text output"

Can the function ACPIBusIrpQueryResourceRequirements be modded for to have trace output,

we have the Source Code!

And if not, how to get the maximal information via txt output in Windbg from

ACPIDevPrint()

@Dietmar

ACPIPrint( (
            ACPI_PRINT_CRITICAL,
            "message - %d \n",
            status
            ) );

3 and 4 lines is just printf() with variable argument count

Edited by Mov AX, 0xDEAD
Link to comment
Share on other sites


On the AMD board ROG-STRIX-B450-F-GAMING-II with Ryzen 3700x I get with new acpi.sys for generic XP and for Setup of XP

BSOD 0x0000007E (0xC0000005, xxx, yyy, zzz) .

acpi.sys 6666 (very last version) at Ramsey works

Dietmar

 

PS: This is the famous Ryzen crash in FAILURE_BUCKET_ID: 0x7E_ACPI!AcpiArbCrackPRT.

So, still binary hack is needed :rolleyes: for AMD Ryzen. I will try this now.

 

 

Link to comment
Share on other sites

 

Hi guys ;)

 

@Dietmar

many thanks for your last acpi.sys that solved the A5 bsod (0x03, ***, 0xC0140008, 0x494E495F) on almost all of my boards.

Unfortunately, the A5 bsod is still there for the GA-H470-HD3 although it is now a bit different than before with the first acpi v2.0 release.

Now: 0x11, 0x08, 0xB99AD000, 0x20160527

Before: 0x11, 0x08, 0xB998B000, 0x20160527

 

 

Link to comment
Share on other sites

@Dietmar

I recall the problem was somewhere near PciInterfacesInstantiated

I think the problem in ACPIArbCrackPRT might be this

	if (((PDEVICE_EXTENSION)Pdo->DeviceExtension)->Flags & DEV_CAP_PCI) { // // It's a PCI PDO, which means a root PCI bus, // which means that we should just handle this // as an ISA device. // return STATUS_NOT_FOUND; }
	

try commenting this out and see if that works?

Edited by Damnation
Link to comment
Share on other sites

I make a try with Lan Windbg on this Ryzen board with the unpatched acpi.sys V2 "Debug".

Not so much more information as before

Dietmar

*** Assertion failed: PciInterfacesInstantiated
***   Source File: e:\nt\base\busdrv\acpi\driver\nt\irqarb.c, line 3512

Break repeatedly, break Once, Ignore, terminate Process, or terminate Thread (boipt)? i
i

*** Assertion failed: pciInterface
***   Source File: e:\nt\base\busdrv\acpi\driver\nt\irqarb.c, line 3518

Break repeatedly, break Once, Ignore, terminate Process, or terminate Thread (boipt)? i
i
PS: Unhandled Kernel Mode Exception Pointers = 0xBACC69DC
Code c0000005 Addr BA74CBE4 Info0 00000000 Info1 00000010 Info2 00000010 Info3 8A332500

*** Fatal System Error: 0x0000007e
                       (0xC0000005,0xBA74CBE4,0xBACC6E90,0xBACC6B8C)

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 (Fri Apr  8 14:54:11.026 2022 (UTC + 2:00)), ptr64 FALSE
Loading Kernel Symbols
...........................
Loading User Symbols

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

Use !analyze -v to get detailed debugging information.

BugCheck 7E, {c0000005, ba74cbe4, bacc6e90, bacc6b8c}

*** 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
*** No owner thread found for resource 80afd640
Probably caused by : ACPI.sys ( ACPI!AcpiArbCrackPRT+f8 )

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: ba74cbe4, The address that the exception occurred at
Arg3: bacc6e90, Exception Record Address
Arg4: bacc6b8c, 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
*** No owner thread found for resource 80afd640

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - Die Anweisung "0x%08lx" verweist auf Speicher bei "0x%08lx". Die Daten wurden wegen eines E/A-Fehlers in "0x%081x" nicht in den Arbeitsspeicher  bertragen.

FAULTING_IP: 
ACPI!AcpiArbCrackPRT+f8 [e:\nt\base\busdrv\acpi\driver\nt\irqarb.c @ 3535]
ba74cbe4 ff5710          call    dword ptr [edi+10h]

EXCEPTION_RECORD:  bacc6e90 -- (.exr 0xffffffffbacc6e90)
ExceptionAddress: ba74cbe4 (ACPI!AcpiArbCrackPRT+0x000000f8)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000000
   Parameter[1]: 00000010
Attempt to read from address 00000010

CONTEXT:  bacc6b8c -- (.cxr 0xffffffffbacc6b8c;r)
eax=bacc7070 ebx=00000000 ecx=0000bb40 edx=00000056 esi=8a2f8660 edi=00000000
eip=ba74cbe4 esp=bacc6f58 ebp=bacc70a0 iopl=0         nv up ei ng nz na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010286
ACPI!AcpiArbCrackPRT+0xf8:
ba74cbe4 ff5710          call    dword ptr [edi+10h]  ds:0023:00000010=????????
Last set context:
eax=bacc7070 ebx=00000000 ecx=0000bb40 edx=00000056 esi=8a2f8660 edi=00000000
eip=ba74cbe4 esp=bacc6f58 ebp=bacc70a0 iopl=0         nv up ei ng nz na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010286
ACPI!AcpiArbCrackPRT+0xf8:
ba74cbe4 ff5710          call    dword ptr [edi+10h]  ds:0023:00000010=????????
Resetting default scope

PROCESS_NAME:  System

ERROR_CODE: (NTSTATUS) 0xc0000005 - Die Anweisung "0x%08lx" verweist auf Speicher bei "0x%08lx". Die Daten wurden wegen eines E/A-Fehlers in "0x%081x" nicht in den Arbeitsspeicher  bertragen.

EXCEPTION_PARAMETER1:  00000000

EXCEPTION_PARAMETER2:  00000010

READ_ADDRESS:  00000010 

FOLLOWUP_IP: 
ACPI!AcpiArbCrackPRT+f8 [e:\nt\base\busdrv\acpi\driver\nt\irqarb.c @ 3535]
ba74cbe4 ff5710          call    dword ptr [edi+10h]

BUGCHECK_STR:  0x7E

DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_DEREFERENCE

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

DPC_STACK_BASE:  FFFFFFFFBACCC000

LOCK_ADDRESS:  80afd6c0 -- (!locks 80afd6c0)

Resource @ nt!IopDeviceTreeLock (0x80afd6c0)    Shared 1 owning threads
     Threads: 8a328020-01<*> 
1 total locks, 1 locks currently held

PNP_TRIAGE: 
	Lock address  : 0x80afd6c0
	Thread Count  : 1
	Thread address: 0x8a328020
	Thread wait   : 0xcf

LAST_CONTROL_TRANSFER:  from 80a30d7b to 80ac37ec

STACK_TEXT:  
bacc70a0 ba78cf2a 8a2f8660 bacc70cc bacc70e0 ACPI!AcpiArbCrackPRT+0xf8 [e:\nt\base\busdrv\acpi\driver\nt\irqarb.c @ 3535]
bacc70d4 ba79c367 ba782f00 bacc70f0 e12b4624 ACPI!AcpiArbAddAllocation+0x9d [e:\nt\base\busdrv\acpi\driver\nt\irqarb.c @ 1474]
bacc7158 ba78bc7d e10089a0 e12b4624 ba782f00 ACPI!ArbBootAllocation+0xf5 [e:\nt\base\ntos\arb\arbiter.c @ 1406]
bacc716c ba79c3de ba782f00 e12b4624 e12b4624 ACPI!AcpiArbBootAllocation+0x49 [e:\nt\base\busdrv\acpi\driver\nt\irqarb.c @ 1850]
bacc7188 80b6c111 ba782f00 00000009 bacc71a8 ACPI!ArbArbiterHandler+0x52 [e:\nt\base\ntos\arb\arbiter.c @ 1562]
bacc71c4 80b6d093 bacc71b8 00000000 80afd1c0 nt!IopBootAllocation+0xbb
bacc7208 80b6d80b 00000004 e1008950 e101a170 nt!IopAllocateBootResourcesInternal+0xc5
bacc7228 80d38c8b 00000004 8a2f8660 e101a170 nt!IopAllocateBootResources+0x75
bacc724c 80b5653a 00000004 8a2f8660 e101a170 nt!IopReportBootResources+0x65
bacc727c 80b5cb93 8a2e6598 800005e4 00000001 nt!PiQueryAndAllocateBootResources+0x150
bacc736c 80b5d26d 8a2e6598 00000000 00000000 nt!PipProcessNewDeviceNode+0xc9d
bacc75c4 80a2cff0 8a33ec80 00000000 00000000 nt!PipProcessDevNodeTree+0x1bd
bacc7608 80a2d2fb 00000000 00000000 80090f18 nt!PipDeviceActionWorker+0xc4
bacc7620 80d37f53 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x13b
bacc7684 80d341f1 80085000 bacc76a0 00034000 nt!IopInitializeBootDrivers+0x39b
bacc7830 80d31940 80085000 00000000 8a328020 nt!IoInitSystem+0x82d
bacc7dac 80bd81ac 80085000 00000000 00000000 nt!Phase1Initialization+0xb12
bacc7ddc 80ae4212 80d30e2e 80085000 00000000 nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16


FAULTING_SOURCE_LINE:  e:\nt\base\busdrv\acpi\driver\nt\irqarb.c

FAULTING_SOURCE_FILE:  e:\nt\base\busdrv\acpi\driver\nt\irqarb.c

FAULTING_SOURCE_LINE_NUMBER:  3535

FAULTING_SOURCE_CODE:  
  3531:                                                &classCode,
  3532:                                                &subClassCode,
  3533:                                                &parent,
  3534:                                                &routingToken,
> 3535:                                                &flags);
  3536: 
  3537:     if (!NT_SUCCESS(status)) {
  3538:         return STATUS_NOT_FOUND;
  3539:     }
  3540: 


SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  ACPI!AcpiArbCrackPRT+f8

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: ACPI

IMAGE_NAME:  ACPI.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  624f31cb

IMAGE_VERSION:  5.1.2600.1106

STACK_COMMAND:  .cxr 0xffffffffbacc6b8c ; kb

FAILURE_BUCKET_ID:  0x7E_ACPI!AcpiArbCrackPRT+f8

BUCKET_ID:  0x7E_ACPI!AcpiArbCrackPRT+f8

ANALYSIS_SOURCE:  KM

FAILURE_ID_HASH_STRING:  km:0x7e_acpi!acpiarbcrackprt+f8

FAILURE_ID_HASH:  {30b13d1d-5098-59bf-2bca-ef183c89cfe1}

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

 

Link to comment
Share on other sites

8 minutes ago, Damnation said:

@Dietmar

Looking at the logs there, I'm a bit more confident that

if (((PDEVICE_EXTENSION)Pdo->DeviceExtension)->Flags & DEV_CAP_PCI)

is the cause

I think try commenting it out, compile and test.

@DamnationDid you quit working on your project in win2000 man, every day I wait for you to release your update :unsure:

Edited by WinWord2000
Link to comment
Share on other sites

It just looks like,

if something is not recogniced as PCI device on the Ryzen compi.

*** Assertion failed: PciInterfacesInstantiated
***   Source File: e:\nt\base\busdrv\acpi\driver\nt\irqarb.c, line 3512

and then also

*** Assertion failed: pciInterface
***   Source File: e:\nt\base\busdrv\acpi\driver\nt\irqarb.c, line 3518

Here is the Windbg output after Ryzen compi reached Breakpoint ACPI!AcpiArbCrackPRT:

 to  ---------->  Bsod 0x7E, (0xC0000005,xxx,yyy,zzz)

Dietmar

otto3.7z

Edited by Dietmar
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...