Jump to content

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


Mov AX, 0xDEAD

Recommended Posts


21 hours ago, Mov AX, 0xDEAD said:

this better:

Quote

        elseif (! ((PDEVICE_EXTENSION)Pdo->DeviceExtension)->Flags & DEV_CAP_PCI_DEVICE ) {
                //
                return STATUS_NOT_FOUND;
        }

 

For now, this is the best workaround for non-PCI devices.
Thanks to @Mov AX, 0xDEAD

Please do a further research before trying to patch randomly the driver. Don't expect to get something to work reliably this way.

I've just disassembled acpi.sys from Vista / Win7 and indeed, there is a PcisuppIsPciDevice function called before any calls to LinkNodeCrackPrt
PcisuppIsPciDevice does further validation of PCI devices.

On XP, AcpiArbCrackPRT is called from AcpiArbFindSuitableRange and AcpiArbAddAllocation,
Returning STATUS_NOT_FOUND for a non-PCI device is definitively the best approach and doesn't break the code that supports ISA devices.

Edited by daniel_k
Link to comment
Share on other sites

  

21 hours ago, Mov AX, 0xDEAD said:

@daniel_k

Bad idea, GPIO is not pci device and have fixed IRQ Vector

Problem is bugged acpi code, it should not call AcpiArbCrackPRT() for non-pci devices, or have check for non-pci inside AcpiArbCrackPRT() at least

You're obviously correct.
 

7 hours ago, Dietmar said:

@daniel_k  @Mov AX, 0xDEAD @Damnation

I just want to tell you,

that deleting of every entry for the device GPIO in DSDT does not solve the problem.

Still exact the same message about  AcpiArbCrackPRT()

and Bsod 0x7E, (0xC0000005, xxx, yyy, zzz) appears on Ryzen AM4 boards

Yes, because the device still exists physically and is treated as a PCI device, the GPIO entries in DSDT do not cause the crash.
Thanks for doing the tests, Dietmar!

Edited by daniel_k
Link to comment
Share on other sites

21 hours ago, Mov AX, 0xDEAD said:

@daniel_k

i dont understand idea, if you want keep original acpi 1.0b driver and patch instead tables - I'm not interested

I mean that we could add support to all ACPI 2.0+ opcodes and treat them as NoOp (does nothing), if this makes any sense at all. :lol:

Link to comment
Share on other sites

1 hour ago, daniel_k said:

For now, this is the best workaround for non-PCI devices.

as i wrote before, this is not "best", we don't know how acpi driver set Flags for all devices, DEV_CAP_PCI_DEVICE may be not setted for all pci like devices, best ways:

1) using additional call to isPciDevice() instead direct flag check, isPciDevice look for _ADR method and parent bus, return FALSE if not

2) add AMDI0030 (and similar non-pci devices) to table  AcpiInternalDeviceFlagTable[] to set flag DEV_CAP_ISA or new flag

#define DEV_CAP_EXCLUDEFROMPRT  0x0000010000000000

add check for this flag to AcpiArbCrackPRT()
 

Link to comment
Share on other sites

1 hour ago, daniel_k said:

I mean that we could add support to all ACPI 2.0+ opcodes and treat them as NoOp (does nothing), if this makes any sense at all. :lol:

@daniel_k

1) New opcodes like concatenaterestemplate() used in_CRS, when you skip it -> wrong resource list returned to OS

2) My implementation/decompilation of new 13 acpi 2.0 commands is error-free :), we can use it same way as v.6666

 

Link to comment
Share on other sites

18 minutes ago, Dietmar said:

@Mov AX, 0xDEAD

I got 5 compiler errors with only for this modded irqarb.c from Sources for XP SP1.

Can you please tell me, what I have done wrong

i can compile your irqarb.c without any errors

1>Linking Executable - nt\obj\i386\acpi.sys for i386
BUILD: Done

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

@Mov AX, 0xDEAD

Thanks. I just set up whole new XP SP1 Sources, because I noticed, that also with the original files I get the same 5 errors, brrr..

Interesting, why this happens. Tomorrow I run a Beyond Compare 2 binary session, comparing each file from Sources with each other.

This acpi.sys I try in few min

Dietmar

Link to comment
Share on other sites

@Mov AX, 0xDEAD

Same Bsod as before,

looks like a lot of more work

Dietmar

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

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

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

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

*** Fatal System Error: 0x0000007e
                       (0xC0000005,0xBA6C774A,0xBACC6E88,0xBACC6B84)

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 Apr 13 03:27:49.703 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, ba6c774a, bacc6e88, bacc6b84}

*** 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+142 )

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: ba6c774a, The address that the exception occurred at
Arg3: bacc6e88, Exception Record Address
Arg4: bacc6b84, 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+142 [c:\acpi\acpi_sp1\base\busdrv\acpi\driver\nt\irqarb.c @ 3537]
ba6c774a ff5710          call    dword ptr [edi+10h]

EXCEPTION_RECORD:  bacc6e88 -- (.exr 0xffffffffbacc6e88)
ExceptionAddress: ba6c774a (ACPI!AcpiArbCrackPRT+0x00000142)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000000
   Parameter[1]: 00000010
Attempt to read from address 00000010

CONTEXT:  bacc6b84 -- (.cxr 0xffffffffbacc6b84;r)
eax=bacc7008 ebx=00000000 ecx=0000bb40 edx=00000056 esi=8a4be0f0 edi=00000000
eip=ba6c774a esp=bacc6f50 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+0x142:
ba6c774a ff5710          call    dword ptr [edi+10h]  ds:0023:00000010=????????
Last set context:
eax=bacc7008 ebx=00000000 ecx=0000bb40 edx=00000056 esi=8a4be0f0 edi=00000000
eip=ba6c774a esp=bacc6f50 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+0x142:
ba6c774a 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+142 [c:\acpi\acpi_sp1\base\busdrv\acpi\driver\nt\irqarb.c @ 3537]
ba6c774a 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: 8a528da8-01<*> 
1 total locks, 1 locks currently held

PNP_TRIAGE: 
	Lock address  : 0x80afd6c0
	Thread Count  : 1
	Thread address: 0x8a528da8
	Thread wait   : 0xd2

LAST_CONTROL_TRANSFER:  from 80a30d7b to 80ac37ec

STACK_TEXT:  
bacc70a0 ba709c2f 8a4be0f0 bacc70cc bacc70e0 ACPI!AcpiArbCrackPRT+0x142 [c:\acpi\acpi_sp1\base\busdrv\acpi\driver\nt\irqarb.c @ 3537]
bacc70d4 ba719e52 ba6ff200 bacc70f0 e134c934 ACPI!AcpiArbAddAllocation+0x9f [c:\acpi\acpi_sp1\base\busdrv\acpi\driver\nt\irqarb.c @ 1474]
bacc7158 ba708821 e1359d50 e134c934 ba6ff200 ACPI!ArbBootAllocation+0xf4 [d:\xpsp\base\ntos\arb\arbiter.c @ 1406]
bacc716c ba719ed0 ba6ff200 e134c934 e134c934 ACPI!AcpiArbBootAllocation+0x4b [c:\acpi\acpi_sp1\base\busdrv\acpi\driver\nt\irqarb.c @ 1850]
bacc7188 80b6c111 ba6ff200 00000009 bacc71a8 ACPI!ArbArbiterHandler+0x54 [d:\xpsp\base\ntos\arb\arbiter.c @ 1562]
bacc71c4 80b6d093 bacc71b8 00000000 80afd1c0 nt!IopBootAllocation+0xbb
bacc7208 80b6d80b 00000004 e1359d00 e1350ef8 nt!IopAllocateBootResourcesInternal+0xc5
bacc7228 80d38c8b 00000004 8a4be0f0 e1350ef8 nt!IopAllocateBootResources+0x75
bacc724c 80b5653a 00000004 8a4be0f0 e1350ef8 nt!IopReportBootResources+0x65
bacc727c 80b5cb93 8a4e5598 800005f8 00000001 nt!PiQueryAndAllocateBootResources+0x150
bacc736c 80b5d26d 8a4e5598 00000000 00000000 nt!PipProcessNewDeviceNode+0xc9d
bacc75c4 80a2cff0 8a4f1828 00000000 00000000 nt!PipProcessDevNodeTree+0x1bd
bacc7608 80a2d2fb 00000000 00000000 80091178 nt!PipDeviceActionWorker+0xc4
bacc7620 80d37f53 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x13b
bacc7684 80d341f1 80085000 bacc76a0 00034000 nt!IopInitializeBootDrivers+0x39b
bacc7830 80d31940 80085000 00000000 8a528da8 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:  c:\acpi\acpi_sp1\base\busdrv\acpi\driver\nt\irqarb.c

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

FAULTING_SOURCE_LINE_NUMBER:  3537

FAULTING_SOURCE_CODE:  
No source found for 'c:\acpi\acpi_sp1\base\busdrv\acpi\driver\nt\irqarb.c'


SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  ACPI!AcpiArbCrackPRT+142

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: ACPI

IMAGE_NAME:  ACPI.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  625620c2

IMAGE_VERSION:  5.1.2600.7777

STACK_COMMAND:  .cxr 0xffffffffbacc6b84 ; kb

FAILURE_BUCKET_ID:  0x7E_ACPI!AcpiArbCrackPRT+142

BUCKET_ID:  0x7E_ACPI!AcpiArbCrackPRT+142

ANALYSIS_SOURCE:  KM

FAILURE_ID_HASH_STRING:  km:0x7e_acpi!acpiarbcrackprt+142

FAILURE_ID_HASH:  {c4048bc0-99af-0abf-1d12-09bf78ac8e19}

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

 

Link to comment
Share on other sites

@Mov AX, 0xDEAD

With new XP SP1 Sources I can compile acpi.sys.

My acpi.sys, compiled under XP SP3, is a little bit smaller than yours but shows the same output in Windbg,

and same Bsod.


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 192.168.2.104 on port 50000 on local IP 192.168.2.101.
Connected to Windows XP 2600 x86 compatible target at (Wed Apr 13 04:02:38.046 2022 (UTC + 2:00)), ptr64 FALSE
Kernel Debugger connection established.

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
OK                                             C:\Symbols

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
OK                                             C:\symbolssss
Symbol search path is: C:\symbolssss
Executable search path is: C:\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

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
OK                                             E:\binaries.x86fre\Symbols

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
OK                                             C:\Symbols

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
OK                                             C:\symbolssss
OK                                             C:\symbols
OK                                             C:\symbolss
OK                                             C:\symbolsss
OK                                             E:\binaries.x86fre\Symbols
Deferred                                       https://msdl.microsoft.com/download/symbols
Deferred                                       srv*
Closing open log file otto7
Opened log file 'ottoPCI'
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 810A6000->8258AFFF
MM: Disabling large pages for all ranges due to overlap

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

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

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

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

*** Fatal System Error: 0x0000007e
                       (0xC0000005,0xBA6CABFC,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 (Wed Apr 13 04:02:50.218 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, ba6cabfc, 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+110 )

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: ba6cabfc, 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+110 [c:\nt\base\busdrv\acpi\driver\nt\irqarb.c @ 3537]
ba6cabfc ff5610          call    dword ptr [esi+10h]

EXCEPTION_RECORD:  bacc6e90 -- (.exr 0xffffffffbacc6e90)
ExceptionAddress: ba6cabfc (ACPI!AcpiArbCrackPRT+0x00000110)
   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=00000000 edi=8a4a8b10
eip=ba6cabfc 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+0x110:
ba6cabfc ff5610          call    dword ptr [esi+10h]  ds:0023:00000010=????????
Last set context:
eax=bacc7070 ebx=00000000 ecx=0000bb40 edx=00000056 esi=00000000 edi=8a4a8b10
eip=ba6cabfc 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+0x110:
ba6cabfc ff5610          call    dword ptr [esi+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+110 [c:\nt\base\busdrv\acpi\driver\nt\irqarb.c @ 3537]
ba6cabfc ff5610          call    dword ptr [esi+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: 8a528da8-01<*> 
1 total locks, 1 locks currently held

PNP_TRIAGE: 
	Lock address  : 0x80afd6c0
	Thread Count  : 1
	Thread address: 0x8a528da8
	Thread wait   : 0xd1

LAST_CONTROL_TRANSFER:  from 80a30d7b to 80ac37ec

STACK_TEXT:  
bacc70a0 ba70af2a 8a4a8b10 bacc70cc bacc70e0 ACPI!AcpiArbCrackPRT+0x110 [c:\nt\base\busdrv\acpi\driver\nt\irqarb.c @ 3537]
bacc70d4 ba71a367 ba700f00 bacc70f0 e134c934 ACPI!AcpiArbAddAllocation+0x9d [c:\nt\base\busdrv\acpi\driver\nt\irqarb.c @ 1474]
bacc7158 ba709c7d e1359d50 e134c934 ba700f00 ACPI!ArbBootAllocation+0xf5 [d:\xpsp1\base\ntos\arb\arbiter.c @ 1406]
bacc716c ba71a3de ba700f00 e134c934 e134c934 ACPI!AcpiArbBootAllocation+0x49 [c:\nt\base\busdrv\acpi\driver\nt\irqarb.c @ 1850]
bacc7188 80b6c111 ba700f00 00000009 bacc71a8 ACPI!ArbArbiterHandler+0x52 [d:\xpsp1\base\ntos\arb\arbiter.c @ 1562]
bacc71c4 80b6d093 bacc71b8 00000000 80afd1c0 nt!IopBootAllocation+0xbb
bacc7208 80b6d80b 00000004 e1359d00 e1350ef8 nt!IopAllocateBootResourcesInternal+0xc5
bacc7228 80d38c8b 00000004 8a4a8b10 e1350ef8 nt!IopAllocateBootResources+0x75
bacc724c 80b5653a 00000004 8a4a8b10 e1350ef8 nt!IopReportBootResources+0x65
bacc727c 80b5cb93 8a4bec78 800005f8 00000001 nt!PiQueryAndAllocateBootResources+0x150
bacc736c 80b5d26d 8a4bec78 00000000 00000000 nt!PipProcessNewDeviceNode+0xc9d
bacc75c4 80a2cff0 8a4f1828 00000000 00000000 nt!PipProcessDevNodeTree+0x1bd
bacc7608 80a2d2fb 00000000 00000000 80091178 nt!PipDeviceActionWorker+0xc4
bacc7620 80d37f53 00000000 00000006 00000000 nt!PipRequestDeviceAction+0x13b
bacc7684 80d341f1 80085000 bacc76a0 00034000 nt!IopInitializeBootDrivers+0x39b
bacc7830 80d31940 80085000 00000000 8a528da8 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:  c:\nt\base\busdrv\acpi\driver\nt\irqarb.c

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

FAULTING_SOURCE_LINE_NUMBER:  3537

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


SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  ACPI!AcpiArbCrackPRT+110

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: ACPI

IMAGE_NAME:  ACPI.sys

DEBUG_FLR_IMAGE_TIMESTAMP:  62562bdf

IMAGE_VERSION:  5.1.2600.1106

STACK_COMMAND:  .cxr 0xffffffffbacc6b8c ; kb

FAILURE_BUCKET_ID:  0x7E_ACPI!AcpiArbCrackPRT+110

BUCKET_ID:  0x7E_ACPI!AcpiArbCrackPRT+110

ANALYSIS_SOURCE:  KM

FAILURE_ID_HASH_STRING:  km:0x7e_acpi!acpiarbcrackprt+110

FAILURE_ID_HASH:  {a86b27ef-d17a-5a94-e401-dcba315598cf}

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

0: kd> lm
start    end        module name
80070000 80080a80   pci        (deferred)             
80100000 80127780   HAL3       (deferred)             
80128000 80150000   kdcom      (deferred)             
80150000 8017a000   KDSTUB     (deferred)             
80a02000 80da3000   nt         (pdb symbols)          C:\Programme\Windows Kits\8.1\Debuggers\x86\sym\ntkrpamp.pdb\5B9E8A586D3D49D98927B5D5117577231\ntkrpamp.pdb
ba448000 ba461b80   Mup        (deferred)             
ba462000 ba48e980   NDIS       (deferred)             
ba48f000 ba51b600   Ntfs       (deferred)             
ba51c000 ba579000   UsbHub3    (deferred)             
ba579000 ba5be000   USBXHCI    (deferred)             
ba5be000 ba5d4880   KSecDD     (deferred)             
ba5d5000 ba5e6f00   sr         (deferred)             
ba5e7000 ba606b00   fltMgr     (deferred)             
ba607000 ba61c000   amd_sata   (deferred)             
ba61c000 ba635000   storport   (deferred)             
ba635000 ba646000   storahci   (deferred)             
ba646000 ba66ba00   dmio       (deferred)             
ba66c000 ba68ad80   ftdisk     (deferred)             
ba68b000 ba6ba000   ucx01000   (deferred)             
ba6ba000 ba724b00   ACPI       (private pdb symbols)  C:\Programme\Windows Kits\8.1\Debuggers\x86\sym\acpi.pdb\4FEAB1D79A7443328F0D6EC5860CB1131\acpi.pdb
ba725000 ba7a7000   WDF01_W8   (deferred)             
ba8a8000 ba8b6000   WDFLDR8    (deferred)             
ba8b8000 ba8c1300   isapnp     (deferred)             
ba8c8000 ba8d2000   WppRecorder   (deferred)             
ba8d8000 ba8e2580   MountMgr   (deferred)             
ba8e8000 ba8f5200   VolSnap    (deferred)             
ba8f8000 ba903000   amd_xata   (deferred)             
ba908000 ba910e00   disk       (deferred)             
ba918000 ba924180   CLASSPNP   (deferred)             
ba928000 ba931000   USBD_W8    (deferred)             
bab28000 bab2e800   firadisk   (deferred)             
bab30000 bab34d00   PartMgr    (deferred)             
bacb8000 bacbb000   BOOTVID    (deferred)             
bacbc000 bacbef80   ACPIEC     (deferred)             
bada8000 bada9100   WMILIB     (deferred)             
badaa000 badab700   dmload     (deferred)             
bae70000 bae70d80   OPRGHDLR   (deferred)             
0: kd> !devnode 0 1
Dumping IopRootDeviceNode (= 0x8a4f1828)
DevNode 0x8a4f1828 for PDO 0x8a4f1970
  InstancePath is "HTREE\ROOT\0"
  State = DeviceNodeStarted (0x308)
  Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a54ac30 for PDO 0x8a54ad90
    InstancePath is "Root\ACPI_HAL\0000"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
    DevNode 0x8a4eb4d0 for PDO 0x8a5465d8
      InstancePath is "ACPI_HAL\PNP0C08\0"
      ServiceName is "ACPI"
      State = DeviceNodeStarted (0x308)
      Previous State = DeviceNodeEnumerateCompletion (0x30d)
      DevNode 0x8a5448a8 for PDO 0x8a4bf3d0
        InstancePath is "ACPI\PNP0C14\AWW"
        ServiceName is "WmiAcpi"
        State = DeviceNodeInitialized (0x302)
        Previous State = DeviceNodeUninitialized (0x301)
      DevNode 0x8a544778 for PDO 0x8a545f18
        InstancePath is "ACPI\PNP0A08\0"
        ServiceName is "pci"
        State = DeviceNodeInitialized (0x302)
        Previous State = DeviceNodeUninitialized (0x301)
      DevNode 0x8a4beed8 for PDO 0x8a4a8f18
        InstancePath is "ACPI\PNP0C0C\aa"
        State = DeviceNodeDriversAdded (0x303)
        Previous State = DeviceNodeInitialized (0x302)
      DevNode 0x8a4beda8 for PDO 0x8a4bc7e0
        InstancePath is "ACPI\PNP0103\2&daba3ff&0"
        State = DeviceNodeInitialized (0x302)
        Previous State = DeviceNodeUninitialized (0x301)
      DevNode 0x8a4bec78 for PDO 0x8a4a8b10
        InstancePath is "ACPI\AMDI0030\0"
        State = DeviceNodeInitialized (0x302)
        Previous State = DeviceNodeUninitialized (0x301)
        Problem = CM_PROB_DISABLED
      DevNode 0x8a4beb48 for PDO 0x8a4bbee8
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4bea18 for PDO 0x8a544288
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4ecb18 for PDO 0x8a4a8d90
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4ec9e8 for PDO 0x8a4eb6f8
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4ec8b8 for PDO 0x8a4f41f8
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4ec788 for PDO 0x8a545278
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4ec658 for PDO 0x8a4ec170
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4ec528 for PDO 0x8a4bb4f0
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a479ed8 for PDO 0x8a4bb3d0
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a479da8 for PDO 0x8a4bb218
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a479c78 for PDO 0x8a4bb0f8
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a479b48 for PDO 0x8a4a92c0
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a479a18 for PDO 0x8a4a91a0
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4798e8 for PDO 0x8a4a9690
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4e5008 for PDO 0x8a4a9570
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4e5848 for PDO 0x8a4a9450
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4e5718 for PDO 0x8a544c48
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4e55e8 for PDO 0x8a544b28
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
      DevNode 0x8a4e54b8 for PDO 0x8a544a08
        State = DeviceNodeUninitialized (0x301)
        Previous State = Unknown State (0x0)
  DevNode 0x8a54a8b8 for PDO 0x8a54aa18
    InstancePath is "Root\dmio\0000"
    ServiceName is "dmio"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a54a660 for PDO 0x8a54a7c0
    InstancePath is "Root\firadisk\0000"
    ServiceName is "FiraDisk"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a54a408 for PDO 0x8a54a568
    InstancePath is "Root\ftdisk\0000"
    ServiceName is "ftdisk"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a54a1b0 for PDO 0x8a54a310
    InstancePath is "Root\LEGACY_AFD\0000"
    ServiceName is "AFD"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4f0ed8 for PDO 0x8a4f0038
    InstancePath is "Root\LEGACY_BEEP\0000"
    ServiceName is "Beep"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4f0c80 for PDO 0x8a4f0de0
    InstancePath is "Root\LEGACY_CPUZ135\0000"
    ServiceName is "cpuz135"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4f0a28 for PDO 0x8a4f0b88
    InstancePath is "Root\LEGACY_DMBOOT\0000"
    ServiceName is "dmboot"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4f07d0 for PDO 0x8a4f0930
    InstancePath is "Root\LEGACY_DMLOAD\0000"
    ServiceName is "dmload"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4f0508 for PDO 0x8a4f0668
    InstancePath is "Root\LEGACY_FIPS\0000"
    ServiceName is "Fips"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4f02b0 for PDO 0x8a4f0410
    InstancePath is "Root\LEGACY_GPC\0000"
    ServiceName is "Gpc"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a549008 for PDO 0x8a4f01b8
    InstancePath is "Root\LEGACY_HTTP\0000"
    ServiceName is "HTTP"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a549db0 for PDO 0x8a549f10
    InstancePath is "Root\LEGACY_IPNAT\0000"
    ServiceName is "IpNat"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a549b58 for PDO 0x8a549cb8
    InstancePath is "Root\LEGACY_IPSEC\0000"
    ServiceName is "IPSec"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a549900 for PDO 0x8a549a60
    InstancePath is "Root\LEGACY_KSECDD\0000"
    ServiceName is "ksecdd"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a5496a8 for PDO 0x8a549808
    InstancePath is "Root\LEGACY_MNMDD\0000"
    ServiceName is "mnmdd"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a549450 for PDO 0x8a5495b0
    InstancePath is "Root\LEGACY_MOUNTMGR\0000"
    ServiceName is "mountmgr"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a5491f8 for PDO 0x8a549358
    InstancePath is "Root\LEGACY_NDIS\0000"
    ServiceName is "NDIS"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4efed8 for PDO 0x8a4ef038
    InstancePath is "Root\LEGACY_NDISTAPI\0000"
    ServiceName is "NdisTapi"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4efc80 for PDO 0x8a4efde0
    InstancePath is "Root\LEGACY_NDISUIO\0000"
    ServiceName is "Ndisuio"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4efa28 for PDO 0x8a4efb88
    InstancePath is "Root\LEGACY_NDPROXY\0000"
    ServiceName is "NDProxy"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4ef7d0 for PDO 0x8a4ef930
    InstancePath is "Root\LEGACY_NETBT\0000"
    ServiceName is "NetBT"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4ef578 for PDO 0x8a4ef6d8
    InstancePath is "Root\LEGACY_NULL\0000"
    ServiceName is "Null"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4ef320 for PDO 0x8a4ef480
    InstancePath is "Root\LEGACY_PARTMGR\0000"
    ServiceName is "PartMgr"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a548008 for PDO 0x8a4ef228
    InstancePath is "Root\LEGACY_PARVDM\0000"
    ServiceName is "ParVdm"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a548db0 for PDO 0x8a548f10
    InstancePath is "Root\LEGACY_RASACD\0000"
    ServiceName is "RasAcd"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a548b58 for PDO 0x8a548cb8
    InstancePath is "Root\LEGACY_RDPCDD\0000"
    ServiceName is "RDPCDD"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a548900 for PDO 0x8a548a60
    InstancePath is "Root\LEGACY_RWDRV\0000"
    ServiceName is "RwDrv"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a5486a8 for PDO 0x8a548808
    InstancePath is "Root\LEGACY_TCPIP\0000"
    ServiceName is "Tcpip"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a548450 for PDO 0x8a5485b0
    InstancePath is "Root\LEGACY_UCX01000\0000"
    ServiceName is "UCX01000"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a5481f8 for PDO 0x8a548358
    InstancePath is "Root\LEGACY_VGASAVE\0000"
    ServiceName is "VgaSave"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4eeed8 for PDO 0x8a4ee038
    InstancePath is "Root\LEGACY_VOLSNAP\0000"
    ServiceName is "VolSnap"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4eec80 for PDO 0x8a4eede0
    InstancePath is "Root\LEGACY_WANARP\0000"
    ServiceName is "Wanarp"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4eea28 for PDO 0x8a4eeb88
    InstancePath is "Root\LEGACY_WDF01_W8\0000"
    ServiceName is "WDF01_W8"
    State = DeviceNodeStarted (0x308)
    Previous State = DeviceNodeEnumerateCompletion (0x30d)
  DevNode 0x8a4ee7d0 for PDO 0x8a4ee930
    InstancePath is "Root\MEDIA\MS_MMACM"
    ServiceName is "audstub"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a4ee578 for PDO 0x8a4ee6d8
    InstancePath is "Root\MEDIA\MS_MMDRV"
    ServiceName is "audstub"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a4ee320 for PDO 0x8a4ee480
    InstancePath is "Root\MEDIA\MS_MMMCI"
    ServiceName is "audstub"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a547008 for PDO 0x8a4ee228
    InstancePath is "Root\MEDIA\MS_MMVCD"
    ServiceName is "audstub"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a547db0 for PDO 0x8a547f10
    InstancePath is "Root\MEDIA\MS_MMVID"
    ServiceName is "audstub"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a547b58 for PDO 0x8a547cb8
    InstancePath is "Root\MS_L2TPMINIPORT\0000"
    ServiceName is "Rasl2tp"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a547900 for PDO 0x8a547a60
    InstancePath is "Root\MS_NDISWANIP\0000"
    ServiceName is "NdisWan"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a5476a8 for PDO 0x8a547808
    InstancePath is "Root\MS_PPPOEMINIPORT\0000"
    ServiceName is "RasPppoe"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a547450 for PDO 0x8a5475b0
    InstancePath is "Root\MS_PPTPMINIPORT\0000"
    ServiceName is "PptpMiniport"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a5471f8 for PDO 0x8a547358
    InstancePath is "Root\MS_PSCHEDMP\0000"
    ServiceName is "PSched"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a4eded8 for PDO 0x8a4ed038
    InstancePath is "Root\MS_PSCHEDMP\0001"
    ServiceName is "PSched"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a4edc80 for PDO 0x8a4edde0
    InstancePath is "Root\MS_PSCHEDMP\0002"
    ServiceName is "PSched"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a4eda28 for PDO 0x8a4edb88
    InstancePath is "Root\MS_PTIMINIPORT\0000"
    ServiceName is "Raspti"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a4ed7d0 for PDO 0x8a4ed930
    InstancePath is "Root\RDPDR\0000"
    ServiceName is "rdpdr"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a4ed578 for PDO 0x8a4ed6d8
    InstancePath is "Root\RDP_KBD\0000"
    ServiceName is "TermDD"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a4ed320 for PDO 0x8a4ed480
    InstancePath is "Root\RDP_MOU\0000"
    ServiceName is "TermDD"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a546008 for PDO 0x8a4ed228
    InstancePath is "Root\SYSTEM\0000"
    ServiceName is "swenum"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a546db0 for PDO 0x8a546f10
    InstancePath is "Root\SYSTEM\0001"
    ServiceName is "update"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)
  DevNode 0x8a546b58 for PDO 0x8a546cb8
    InstancePath is "Root\SYSTEM\0002"
    ServiceName is "mssmbios"
    State = DeviceNodeInitialized (0x302)
    Previous State = DeviceNodeUninitialized (0x301)

 

Edited by Dietmar
Link to comment
Share on other sites

1 hour ago, Dietmar said:

@Mov AX, 0xDEAD

With new XP SP1 Sources I can compile acpi.sys.

My acpi.sys, compiled under XP SP3, is a little bit smaller than yours but shows the same output in Windbg,

and same Bsod.

i think i forgot about "C language" operator ! and & priority

fixed:

Quote

else if (! (((PDEVICE_EXTENSION)Pdo->DeviceExtension)->Flags & DEV_CAP_PCI_DEVICE) ) {
                //
                return STATUS_NOT_FOUND;
        }

or second, more reliable (not tested, VBox doesn't have non-pci devices with IRQ) variant:

Quote

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

        status = ACPIInternalIsPci(Pdo);
        if (NT_SUCCESS(status))
            if ( (!(((PDEVICE_EXTENSION)Pdo->DeviceExtension)->Flags & DEV_CAP_PCI)) &&
                 (!(((PDEVICE_EXTENSION)Pdo->DeviceExtension)->Flags & DEV_CAP_PCI_DEVICE)) )
                    return STATUS_NOT_FOUND;    // if not PCI device or bus

    }

    ASSERT(PciInterfacesInstantiated);

ACPIInternalIsPci() itself set DEV_CAP_PCI and DEV_CAP_PCI_DEVICE so we can trust him :)

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

@daniel_k@Mov AX, 0xDEAD

I asked @Dietmar to test this code

	        else if (! ((PDEVICE_EXTENSION)Pdo->DeviceExtension)->Flags & DEV_CAP_PCI_DEVICE ) {
                //
                return STATUS_NOT_FOUND;
        }
	

he reported that he still got a 7E BSOD, so this did not work.

edit:

I see now @Mov AX, 0xDEAD posted an update with an extra ( bracket, that might be why the above code didn't work.

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