Hello,
I have a ACPI logic device (not actual hard device) which provide
some methods. I wrote a ACPI PnP WDM driver and expose a control device
object for user app’s IOCTL communication. Our driver is almost 99% same as
WDK’s sample code src\general\toaster\wdm\filter except a IOCTL is added
for invoke ACPI method. The driver pass Win7 WHQL testing.
But when I testing driver on win8’s HCK, I got failures as:
- For X86
One of “PCI Root Port Surprise Remove Test (PCI devices only)” is
failed, error log is “Failed to receive IRP_MN_REMOVE_DEVICE after
receiving IRP_MN_SURPRISE_REMOVAL”. - For X64:
When running “PCI Root Port Surprise Remove Test”, BSOD is given
for ACPI.sys driver.The error stack is in below.
My questions:
1, Why our driver pass win7 WHQL but can not pass win8?
2, Our driver is major for ACPI logic device but not real hardware,
do we really need “PCI Root Port Surprise Remove Test”?
==========================
DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
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 kernel debugger is available get stack backtrace.
Arguments:
Arg1: 0000000000000000, memory referenced
Arg2: 0000000000000002, IRQL
Arg3: 0000000000000000, value 0 = read operation, 1 = write operation
Arg4: fffff880012385d3, address which referenced memory
Debugging Details:
READ_ADDRESS: 0000000000000000
fffff8800305a7c8 fffff800
ff105369 : 000000000000000a 00000000
00000000
0000000000000002 00000000
00000000 : nt!KeBugCheckEx
fffff8800305a7d0 fffff800
ff103be0 : 0000000000000000 fffffa80
04fa7400
0000000000000000 fffff880
0305a910 : nt!KiBugCheckDispatch+0x69
fffff8800305a910 fffff880
012385d3 : fffffa8004fa7400 00000000
00164d12
fffffa8004fa7460 00000000
00000019 : nt!KiPageFault+0x260
fffff8800305aaa0 fffff880
012312de : fffffa8004fa7400 fffffa80
04fa7400
fffffa8004fa7490 00000000
00000018 : ACPI!ACPIVectorDisable+0xf
fffff8800305aad0 fffff880
01230a23 : 0000000000000001 fffffa80
04fa7458
0000000000008004 00000000
000007ff : ACPI!ACPIEcServiceDevice+0x92
fffff8800305ab00 fffff880
01230aa9 : 0000000000000001 fffffa80
088b3ba0
0000000000000040 fffff880
01210c64 : ACPI!ACPIEcQueueEcIrp+0x11f
fffff8800305ab40 fffff880
01216f0b : fffffa8004f2b228 00000000
00000001
0000000000000040 fffffa80
088b3b68 : ACPI!ACPIEcOpRegionHandler+0x4d
fffff8800305ab90 fffff880
01216638 : fffffa80088b3b68 00000000
00000000
0000000000000000 fffff880
012128ab : ACPI!InternalOpRegionHandler+0x8f
fffff8800305abe0 fffff880
0120cafe : fffffa80088a4000 00000000
00000000
0000000000008000 00000000
00000000 : ACPI!WriteCookAccess+0x1d4
–
Ken