Win8 HCK test failure for "PCI Root Port Surprise Remove Test (PCI devices only)"

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:

  1. 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”.
  2. 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 fffff800ff105369 : 000000000000000a 0000000000000000
0000000000000002 0000000000000000 : nt!KeBugCheckEx
fffff8800305a7d0 fffff800ff103be0 : 0000000000000000 fffffa8004fa7400
0000000000000000 fffff8800305a910 : nt!KiBugCheckDispatch+0x69
fffff8800305a910 fffff880012385d3 : fffffa8004fa7400 0000000000164d12
fffffa8004fa7460 0000000000000019 : nt!KiPageFault+0x260
fffff8800305aaa0 fffff880012312de : fffffa8004fa7400 fffffa8004fa7400
fffffa8004fa7490 0000000000000018 : ACPI!ACPIVectorDisable+0xf
fffff8800305aad0 fffff88001230a23 : 0000000000000001 fffffa8004fa7458
0000000000008004 00000000000007ff : ACPI!ACPIEcServiceDevice+0x92
fffff8800305ab00 fffff88001230aa9 : 0000000000000001 fffffa80088b3ba0
0000000000000040 fffff88001210c64 : ACPI!ACPIEcQueueEcIrp+0x11f
fffff8800305ab40 fffff88001216f0b : fffffa8004f2b228 0000000000000001
0000000000000040 fffffa80088b3b68 : ACPI!ACPIEcOpRegionHandler+0x4d
fffff8800305ab90 fffff88001216638 : fffffa80088b3b68 0000000000000000
0000000000000000 fffff880012128ab : ACPI!InternalOpRegionHandler+0x8f
fffff8800305abe0 fffff8800120cafe : fffffa80088a4000 0000000000000000
0000000000008000 0000000000000000 : ACPI!WriteCookAccess+0x1d4

Ken

Because the tests have changed?

Note that in the title of the test it says “(PCI devices only)” – This would mean, no… you do not have to pass this test because you are not writing a driver for a PCI device.

BUT… your driver ALSO shouldn’t Blue Screen on this test. That’s very odd.

I hope somebody with specific experience with this test will comment…

Peter
OSR

Thanks Peter’s answer.

Today, I used pnptest from WinDDK 7600.16385.1(windows7) to test my ACPI
driver. Because in pnptest, there is a test for “Test Surprise Removal”.
I selected my device XXX from ACPI category and click “Test Surprise
Removal”. It reports “ACPI\XXX can not be disabled -so Surprise Remove test
is being skipped”.
In simple words, I guess “surprise remove” test is skipped in windows 7
WHQL testing for my driver.

But why “Surprise remove” testing exist in Win8 HCK test for my device?

K

2012/9/27

>


>
> Because the tests have changed?
>
>


>
> Note that in the title of the test it says “(PCI devices only)” – This
> would mean, no… you do not have to pass this test because you are not
> writing a driver for a PCI device.
>
> BUT… your driver ALSO shouldn’t Blue Screen on this test. That’s very
> odd.
>
> I hope somebody with specific experience with this test will comment…
>
> Peter
> OSR
>
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>



Best Regard
Ken
------------------
Hear and you forget; see and you remember; do and you understand.