Per Doron’s blog:
http://blogs.msdn.com/b/doronh/archive/2006/03/17/554179.aspx
I ran !poaction, !poreqlist, and !podev:
0: kd> !podev 8a101ad8
Device object is for:
DriverObject 89162420
Current Irp 00000000 RefCount 1 Type 00000022 DevFlags 00002050 DO_POWER_PAGABLE
Device queue is not busy.
Device Object Extension: 8a101ba8:
PowerFlags: 00000516 =>SystemState=6 DeviceState=1 syact dvact
Dope: 00000000:
0: kd> !poreqlist
All active Power Irps from PoRequestPowerIrp
PopReqestedPowerIrpList
FieldOffset = 00000004
Irp 83fc7c08 DevObj 83f29030 \Driver\usbuhci Ctx 00000002 Wait Wake S1
Irp 83237008 DevObj 83f20030 \Driver\usbuhci Ctx 00000002 Wait Wake S1
Irp 833174f0 DevObj 83ed6030 \Driver\usbuhci Ctx 00000002 Wait Wake S1
Irp 8331c710 DevObj 83367030 \Driver\usbuhci Ctx 00000002 Wait Wake S1
Irp 83277e70 DevObj 83ed4030 \Driver\usbehci Ctx 00000002 Wait Wake S1
Irp 8325ce70 DevObj 83316030 \Driver\usbehci Ctx 00000002 Wait Wake S1
Irp 83319990 DevObj 83376030 \Driver\usbuhci Ctx 00000002 Wait Wake S1
Irp 831430d0 DevObj 8413e720 \Driver\HDAudBus Ctx 00000003 Set Power D3 ShutdownType 5
Irp 83237950 DevObj 8a101ad8 \Driver\TS_II_BUS Ctx 00000003 Set Power D3 ShutdownType 5
You can see that my driver TS_II_BUS is in the “Set Power D3 ShutdownType 5” state…
0: kd> !poaction
PopAction: 8055c418
State…: 3 - Set System State
Updates…: 0 SHUTDOWN-set
Action…: ShutdownReset
Lightest State.: Shutdown
Flags…: c0000004 OverrideApps|DisableWakes|Critical
Irp minor…: SetPower
System State…: Shutdown
Hiber Context…: 00000000
Device State 82fcc9e0
Irp minor…: SetPower
System State…: Shutdown
Worker thread…: 8a1e7da8
Status…: 0
Waking…: FALSE
Cancelled…: FALSE
Ignore errors…: TRUE
Ignore not imp.: TRUE
Wait any…: FALSE
Wait all…: FALSE
Present Irp Q…: Head:82fccc5c Empty
Order:
Level 7 (82fccc04) 0/20 Paged, Root-Enum
Level 5 (82fccb74) 4/32 Paged, PnP
ReadySleep:
831d74b8: 8a1f97f0 \Driver\HDAudBus
831023d0: 83fc1ae0 \Driver\usbhub \Device\00000080
Level 4 (82fccb2c) 0/2 Paged, PnP, Video
WaitSleep:
830b9ea8: 8a17c1f0 \Driver\nv \Device\Video0
ReadySleep:
831dbae8: 831fb008 \Driver\nv \Device\VideoPdo0
Level 3 (82fccae4) 0/46 Non-Paged, Root-Enum
WaitSleep:
8320a348: 8a1ff008 \Driver\Ftdisk \Device\FtControl
ReadySleep:
8309a038: 8a1cf358 \Driver\dmio \Device\DmControl\DmPnP
83120868: 8a126a08 \Driver\Ftdisk \Device\HarddiskVolume2
83c7d068: 8a126b28 \Driver\Ftdisk \Device\HarddiskVolume1
830b15d8: 8a1ffd90 \Driver\PnpManager \Device\00000005
83078fd8: 8a1ffb10 \Driver\PnpManager \Device\00000006
830fa380: 8a1ff8d0 \Driver\PnpManager \Device\00000007
831da760: 8a1ff690 \Driver\PnpManager \Device\00000008
830dffb0: 8a1ff328 \Driver\PnpManager \Device\00000009
83011fd8: 8a1ce008 \Driver\PnpManager \Device\0000000a
830a54a0: 8a1cedc8 \Driver\PnpManager \Device\0000000b
8310d0b0: 8a1ceb88 \Driver\PnpManager \Device\0000000c
83049258: 8a1ce948 \Driver\PnpManager \Device\0000000d
8a1180c0: 8a1ce708 \Driver\PnpManager \Device\0000000e
831376b0: 8a1ce4c8 \Driver\PnpManager \Device\0000000f
831db0d0: 8a1ce288 \Driver\PnpManager \Device\00000010
8a116678: 8a1fe008 \Driver\PnpManager \Device\00000011
8a100778: 8a1fedc8 \Driver\PnpManager \Device\00000012
83012678: 8a1feb88 \Driver\PnpManager \Device\00000013
83029720: 8a1fe948 \Driver\PnpManager \Device\00000014
83039558: 8a1fe708 \Driver\PnpManager \Device\00000015
83034180: 8a1fe4c8 \Driver\PnpManager \Device\00000016
89159478: 8a1fe288 \Driver\PnpManager \Device\00000017
8315c008: 8a1cd008 \Driver\PnpManager \Device\00000018
831381f8: 8a1cddc8 \Driver\PnpManager \Device\00000019
830368e0: 8a1cdb88 \Driver\PnpManager \Device\0000001a
83076468: 8a1cd948 \Driver\PnpManager \Device\0000001b
83142008: 8a1cd708 \Driver\PnpManager \Device\0000001c
82ffba08: 8a1cd4c8 \Driver\PnpManager \Device\0000001d
83260660: 8a1cd288 \Driver\PnpManager \Device\0000001e
82ff41c8: 8a1fd008 \Driver\PnpManager \Device\0000001f
830d84f8: 8a1fddc8 \Driver\PnpManager \Device\00000020
83044a90: 8a1fdb88 \Driver\PnpManager \Device\00000021
83077b60: 8a1fd948 \Driver\PnpManager \Device\00000022
83015d68: 8a1fd708 \Driver\PnpManager \Device\00000023
830751c8: 8a1fd4c8 \Driver\PnpManager \Device\00000024
830495f0: 8a1fd288 \Driver\PnpManager \Device\00000025
831e0170: 8a1cc008 \Driver\PnpManager \Device\00000026
891510d8: 8a1ccdc8 \Driver\PnpManager \Device\00000027
830512d8: 8a1ccb88 \Driver\PnpManager \Device\00000028
830dc928: 8a1cc948 \Driver\PnpManager \Device\00000029
83102980: 8a1cc708 \Driver\PnpManager \Device\0000002a
830ba6b0: 8a1cc4c8 \Driver\PnpManager \Device\0000002b
831198b0: 8a1cc288 \Driver\PnpManager \Device\0000002c
831e3898: 8a1fbdc8 \Driver\rdpdr \Device\RdpDrDvMgr
830195b0: 8a1fb288 \Driver\mssmbios
Level 1 (82fcca54) 0/49 Non-Paged, PnP
WaitSleep:
83119378: 8a1cf598 \Driver\ACPI_HAL
83073e70: 8a1f8b48 \Driver\ACPI
83096c60: 8a1ea9f0 \Driver\pci
8311d978: 8a1ecdc8 \Driver\iaStor \Device\Ide\iaStor0
83160088: 8a1ecee8 \Driver\isapnp
830159d8: 8a1ec008 \Driver\pci
8305f330: 8a1ed828 \Driver\pci
8a0f2158: 8a1ed948 \Driver\pci
830e7b90: 8a1edca8 \Driver\usbuhci \Device\USBFDO-2
83062330: 8a1ee610 \Driver\pci
8305d460: 8a1ee730 \Driver\pci
ReadySleep:
831ef760: 8a1ea570 \Driver\ACPI \Device\00000051
8a0fcae8: 8a1ea690 \Driver\ACPI \Device\00000050
89156ab8: 8a1ea7b0 \Driver\ACPI \Device\0000004f
8327b370: 8a1ea8d0 \Driver\ACPI \Device\0000004e
831d7460: 8a1eca68 \Driver\ACPI \Device\00000053
831d4360: 8a1ecb88 \Driver\WmiAcpi
83119f98: 8a1ecca8 \Driver\ACPI \Device\00000067
8308b0f8: 8a18f2f0 \Driver\PartMgr
830086a8: 8a190008 \Driver\ACPI \Device\00000076
8320af40: 8a16f1c0 \Driver\ACPI \Device\00000075
82fbfe60: 8a16f520 \Driver\ACPI \Device\00000072
830551d0: 8a16f640 \Driver\ACPI \Device\00000071
831c00b8: 8a16f760 \Driver\ACPI \Device\00000070
8a108620: 8a16f008 \Driver\ACPI \Device\0000006f
83055ed8: 8a1fa708 \Driver\ACPI \Device\0000006e
8308e3c8: 8a1fa828 \Driver\ACPI \Device\0000006d
830c1588: 8a1fa948 \Driver\ACPI \Device\0000006c
830393d8: 8a1faa68 \Driver\isapnp \Device\0000006b
83000180: 8a1eb658 \Driver\pci \Device\NTPNP_PCI0026
8305df00: 8a17c4f0 \Driver\JRAID \Device\Scsi\JRAID1
83092d98: 8a191588 \Driver\JRAID \Device\Scsi\JRAID2
83091a58: 8a1ed008 \Driver\pci \Device\NTPNP_PCI0008
831f5f08: 8a1ee190 \Driver\pci \Device\NTPNP_PCI0007
83094738: 8a1ee2b0 \Driver\pci \Device\NTPNP_PCI0006
8311dda0: 8a1ee3d0 \Driver\pci \Device\NTPNP_PCI0005
8311d770: 8a1ee4f0 \Driver\pci
83066550: 8a1ee850 \Driver\pci
83061e30: 8a1ee970 \Driver\pci \Device\NTPNP_PCI0000
8311eed8: 8a1ca1a0 \Driver\ACPI \Device\0000004c
830cc7c0: 8a1ed168 \Driver\usbehci \Device\USBFDO-7
8300e5d8: 8a1ed288 \Driver\usbuhci \Device\USBFDO-6
830d1f10: 8a1ed3a8 \Driver\usbuhci \Device\USBFDO-5
830d0888: 8a1ed4c8 \Driver\usbuhci \Device\USBFDO-4
83305690: 8a1ed5e8 \Driver\pci
83098d38: 8a1ed708 \Driver\pci
832753e0: 8a1edb88 \Driver\usbehci \Device\USBFDO-3
83242760: 8a1eddc8 \Driver\usbuhci \Device\USBFDO-1
8311e330: 8a1edee8 \Driver\usbuhci \Device\USBFDO-0
Pending irps:
Irp: 83018288 Notify 00000000
Irp: 82ff5ae8 Notify 00000000
Completed irps:
Irp: 830dc778 Notify 00000000
Irp: 83ed6e70 Notify 00000000
Irp: 83120660 Notify 00000000
Irp: 82fcb570 Notify 00000000
Irp: 8313e008 Notify 00000000
Irp: 830bc478 Notify 00000000
Irp: 8304d6f8 Notify 00000000
Irp: 830a49c0 Notify 00000000
Irp: 82ff3290 Notify 00000000
I ran this to see that one of the pending irps is related to CompleteSystemPowerIrp.
0: kd> !irp 82ff5ae8
Irp is active with 2 stacks 2 is current (= 0x82ff5b7c)
No Mdl: No System Buffer: Thread 00000000: Irp stack trace.
cmd flg cl Device File Completion-Context
[16, 0] 0 0 8a1c7bb8 00000000 8050da0a-83042148
\Driver\pci nt!IopUnloadSafeCompletion
Args: 00000000 00000000 00000000 00000000
[16, 2] 0 e1 8a101ad8 00000000 8066ffda-82fcce48 Success Error Cancel pending
\Driver\TS_II_BUS nt!PopCompleteSystemPowerIrp
Args: 00000000 00000000 00000006 00000005
So, it looks like it’s waiting on the CompleteSystemPowerIrp IRP to be completed by the PCI driver? Is this because the device has been reset, and the PCI driver can’t talk to it? If so, is this ever recoverable? This seems to be a blocking irp, and I guess uncancellable? How will I be able to recover without making someone to and push the reset button (least desireable solution).
Any ideas anyone? 
Thanks!
Jason