From: Sushma on
Hello All,

For my disk upper filter I turned on the driver verifier. While
changing the power states (standby,hibernate or
reboot) I get DRIVER_VERIFIER_IOMANAGER_VIOLATION bug check. The I/O
error code is 0x21A (The previously-set IRP_MJ_POWER status has been
converted to STATUS_NOT_SUPPORTED).

In my filter driver I do not handle any power IRPs. Do I need to
handle any power IRPs in filter driver. Here is the
bug check analysis for your information. This happens only in Win7.

Thank you.

Regards,
Sushma


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

DRIVER_VERIFIER_IOMANAGER_VIOLATION (c9)
The IO manager has caught a misbehaving driver.
Arguments:
Arg1: 0000021a, The previously-set IRP_MJ_POWER status has been
converted to STATUS_NOT_SUPPORTED.
Arg2: 82628049, The address in the driver's code where the error was
detected.
Arg3: 922cedb8, IRP address.
Arg4: 00000000

Debugging Details:
------------------


BUGCHECK_STR: 0xc9_21a

DRIVER_VERIFIER_IO_VIOLATION_TYPE: 21a

FAULTING_IP:
nt!PoCallDriver+10
82628049 5d pop ebp

FOLLOWUP_IP:
CLASSPNP!ClasspPowerDownCompletion+1ec
8418c72b ff75f4 push dword ptr [ebp-0Ch]

IRP_ADDRESS: 922cedb8

DEVICE_OBJECT: 823be030

CUSTOMER_CRASH_COUNT: 1

DEFAULT_BUCKET_ID: VERIFIER_ENABLED_VISTA_MINIDUMP

PROCESS_NAME: System

CURRENT_IRQL: 2

LAST_CONTROL_TRANSFER: from 8294ef03 to 826f6d10

STACK_TEXT:
9241f65c 8294ef03 000000c9 0000021a 82628049 nt!KeBugCheckEx+0x1e
9241f67c 829512cd 82628049 9241f6b4 82628049 nt!
VerifierBugCheckIfAppropriate+0x30
9241f694 8295132a 0000021a 82628049 00000000 nt!ViErrorFinishReport
+0xc9
9241f6e8 829581e9 0000021a 922cedb8 922cef00 nt!VfErrorReport1+0x4d
9241f70c 82950edb 922cef24 922cef00 00000001 nt!
VfPowerVerifyIrpStackDownward+0xbe
9241f728 8294f426 9052ae40 82376160 922cef24 nt!
VfMajorVerifyIrpStackDownward+0x3e
9241f78c 8294ed33 85786008 922cedb8 9241f7bc nt!IovpCallDriver1+0x468
9241f79c 82949670 82376160 922cef1c 82376160 nt!VfBeforeCallDriver
+0xe7
9241f7bc 82656473 922cef00 823be0e8 82376160 nt!IovCallDriver+0x206
9241f7d0 82628049 9241f814 8418c72b 82376160 nt!IofCallDriver+0x1b
9241f7d8 8418c72b 82376160 922cedb8 8418c53f nt!PoCallDriver+0x10
9241f814 82949cd4 00000000 922cef00 823be338 CLASSPNP!
ClasspPowerDownCompletion+0x1ec
9241f844 82682b33 00000000 8c60a660 9241f8bc nt!
IovpLocalCompletionRoutine+0x14b
9241f88c 82949b64 c00000bb 823be35c 8c60a7a8 nt!IopfCompleteRequest
+0x128
9241f8f4 93b0fa45 931d5660 8c60a660 82376160 nt!IovCompleteRequest
+0x133
9241f908 829496c3 82376160 8c60a660 823be0e8 USBSTOR!USBSTOR_Scsi
+0x3ef
9241f92c 82656473 00000000 823be338 82376160 nt!IovCallDriver+0x258
9241f940 8418bd85 823be0e8 922cedb8 0000000e nt!IofCallDriver+0x1b
9241f960 8418b975 823be030 922cedb8 0000000e CLASSPNP!
ClasspPowerHandler+0x406
9241f978 8418b8dd 823be030 922cedb8 823345b0 CLASSPNP!
ClassSpinDownPowerHandler+0x8c
9241f994 841873bf 823be030 922cedb8 922cedb8 CLASSPNP!
ClassDispatchPower+0x6c
9241f9a8 82625d16 823be030 922cedb8 9052ae16 CLASSPNP!
ClassGlobalDispatch+0x20
9241f9c0 829496b3 922cef40 823be030 922cedb8 nt!IopPoHandleIrp+0x28
9241f9dc 82656473 00000000 922cef64 823be030 nt!IovCallDriver+0x248
9241f9f0 82628049 9241fa18 8295b34b 823be030 nt!IofCallDriver+0x1b
9241f9f8 8295b34b 823be030 922cedb8 9317c578 nt!PoCallDriver+0x10
9241fa18 82625d16 905940d8 922cedb8 9052ae16 nt!ViFilterDispatchPower
+0x5e
9241fa30 829496b3 922cef64 90594020 9241fa98 nt!IopPoHandleIrp+0x28
9241fa4c 82656473 00000000 922cef88 90594020 nt!IovCallDriver+0x248
9241fa60 82628049 9241fa88 835d5b57 90594020 nt!IofCallDriver+0x1b
9241fa68 835d5b57 90594020 922cedb8 835de398 nt!PoCallDriver+0x10
9241fa88 835d5e11 823951b8 9318d600 922cedb8 Wdf01000!
FxPkgFdo::_PowerPassDown+0x4e
9241fa9c 835ccf27 00000001 823951b8 00000005 Wdf01000!
FxPkgFdo::PowerReleasePendingDeviceIrp+0x39
9241fab4 835cd6f1 9241fb44 835cbd81 823951b8 Wdf01000!
FxPkgPnp::PowerGotoDxIoStopped+0x148
9241fabc 835cbd81 823951b8 823952c4 823951b8 Wdf01000!
FxPkgPnp::PowerGotoDNotZeroIoStopped+0xd
9241fb44 835ccbb2 0000031c 823952c4 823951b8 Wdf01000!
FxPkgPnp::PowerEnterNewState+0x11c
9241fb68 835cd5bb 9241fb80 8c6b7aa8 823951b8 Wdf01000!
FxPkgPnp::PowerProcessEventInner+0x171
9241fb8c 835d5d61 00000001 823951b8 9241fbac Wdf01000!
FxPkgPnp::PowerProcessEvent+0x15c
9241fb9c 835d5fa1 9241fbe0 823951b8 9241fbb8 Wdf01000!
FxPkgFdo::LowerDevicePower+0x19
9241fbac 835d5fce 9241fbe0 9241fbd8 835c9e02 Wdf01000!
FxPkgFdo::DispatchDeviceSetPower+0x9d
9241fbb8 835c9e02 823951b8 9241fbe0 922cedb8 Wdf01000!
FxPkgFdo::_DispatchSetPower+0x23
9241fbd8 835a6a3f 922cedb8 9241fc00 835a6c63 Wdf01000!
FxPkgPnp::Dispatch+0x207
9241fbe4 835a6c63 9318d600 922cedb8 9050af90 Wdf01000!
FxDevice::Dispatch+0x7f
9241fc00 82625d16 9318d600 922cedb8 9052ae16 Wdf01000!
FxDevice::DispatchWithLock+0x7b
9241fc18 829496b3 922cef88 9318d600 922cedb8 nt!IopPoHandleIrp+0x28
9241fc34 82656473 00000000 922cefac 9318d600 nt!IovCallDriver+0x248
9241fc48 82628049 9241fc70 8295b34b 9318d600 nt!IofCallDriver+0x1b
9241fc50 8295b34b 9318d600 922cedb8 890f7948 nt!PoCallDriver+0x10
9241fc70 82625d16 904f9590 922cedb8 9052ae16 nt!ViFilterDispatchPower
+0x5e
9241fc88 829496b3 922cefac 904f94d8 922cedb8 nt!IopPoHandleIrp+0x28
9241fca4 82656473 00000000 895d6200 904f94d8 nt!IovCallDriver+0x248
9241fcb8 82628049 9241fce4 836bbcfb 904f94d8 nt!IofCallDriver+0x1b
9241fcc0 836bbcfb 904f94d8 922cedb8 895d6148 nt!PoCallDriver+0x10
9241fce4 836ba2e5 005d6148 00000000 8275af40 partmgr!PmPower+0xa8
9241fcf8 82625823 895d6148 922cedb8 00000000 partmgr!PmGlobalDispatch
+0x1d
9241fd50 8282866d 8573c900 b6d292fa 00000000 nt!PopIrpWorker+0x351
9241fd90 826da0d9 826254d2 8573c900 00000000 nt!PspSystemThreadStartup
+0x9e
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x19

STACK_COMMAND: kb
SYMBOL_STACK_INDEX: b
SYMBOL_NAME: CLASSPNP!ClasspPowerDownCompletion+1ec
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: CLASSPNP
IMAGE_NAME: CLASSPNP.SYS
DEBUG_FLR_IMAGE_TIMESTAMP: 4a5bbf18
FAILURE_BUCKET_ID: 0xc9_21a_VRF_CLASSPNP!ClasspPowerDownCompletion
+1ec
BUCKET_ID: 0xc9_21a_VRF_CLASSPNP!ClasspPowerDownCompletion+1ec
Followup: MachineOwner
---------
From: Sushma on
I forgot to mention that my filter driver is KMDF filter driver.
From: Doron Holan [MSFT] on
KMDf will handle the power handling for you

--

This posting is provided "AS IS" with no warranties, and confers no rights.


"Sushma" <sushma.yella(a)gmail.com> wrote in message
news:1d8e3357-1292-4685-a9a5-e568b7338f24(a)f17g2000prh.googlegroups.com...
> I forgot to mention that my filter driver is KMDF filter driver.

From: Sushma on
> KMDf will handle the power handling for you

Thanks for the reply.

I had registered EvtDevicePrepareHardware and EvtDeviceReleaseHardware
callbacks in my filter driver. Also, I had registered FilterEvtIoRead
and FilterEvtIoWrite to the default queue.

But now I removed everything and only have DriverEntry() and
AddDevice(). In AddDevice() I create frame work device object. I still
see BSOD when sending the PC to low power states.

Another strange thing I observed is that when I install this filter as
disk lower filter driver I do not see any BSOD.
Do I need to set any attributes if I install my filter as disk upper
filter?

Is this an OS bug or anything else. Can some one comment on this?

Thank you.

Regards,
Sushma




From: Sushma on
I'm running out of ideas. Can some one look into this and let me if
this is a OS bug.