WdfIoTargetSendReadSynchronously hanging

Hi All,

I am doing a physical read and write operation from a volume filter driver when the volume Is getting removed. but I have observed that my read call was hanging
when I called WdfIoTargetSendReadSynchronously to read when the device is powering down. I am calling this function at WdfPowerDeviceD3Final.

Also what is the diffrence between WdfPowerDeviceD3 and WdfPowerDeviceD3Final ? can I call this at WdfPowerDeviceD3 ?

I appreciate any help in trouble shooting this problem. thanks in advance.

Call stack : -

fffffadfe4a8c390 fffff8000103b093 : 0000000000000000 fffff80001038863 0000000000000000 fffffadfe4084ba1 : nt!KiSwapContext+0x85
fffffadfe4a8c510 fffff8000103c433 : 0000000000000000 0000000000000000 000000000000000d fffffadfe7aed7a0 : nt!KiSwapThread+0xc3
fffffadfe4a8c550 fffffadfe40e713a : fffffadf00000000 0000000000000000 0000000000000000 fffffadfe4a8c700 : nt!KeWaitForSingleObject+0x528
fffffadfe4a8c5e0 fffffadfe40e30fd : 0000000000000000 fffffadf00000000 fffffadfe6e09203 fffffadfe4a8c6d0 : wdf01000!FxIoTarget::SubmitSync+0x2c2
fffffadfe4a8c690 fffffadfe40e34fc : fffffadfe5ff54c0 fffffadfe4a8ca20 0000000000002a00 0000000000002a00 : wdf01000!imp_WdfIoTargetWdmGetTargetFileHandle+0x505
fffffadfe4a8c8f0 fffffadfe3d2a114 : 00000520191f6da8 fffffadfe6e09250 fffffadfe4a8ca20 0000000000002a00 : wdf01000!imp_WdfIoTargetSendReadSynchronously+0x38
fffffadfe4a8c940 fffffadfe3d2948e : 0000000000000000 0000000000002a00 000000003e480000 0000000000000000 : mydriver!ReadFromPhysicalLocation+0x154 [e:\ad2d_beta_refresh\source\native\cavoltrc\sys\appint.cpp @ 2770]
fffffadfe4a8c9e0 fffffadfe3d24438 : fffffadfe415a250 fffffadfe5f82390 fffffadfe3d2d168 0000000000000005 : mydriver!WriteSnapShotBitmapBufferToVolume+0xde [e:\ad2d_beta_refresh\source\native\cavoltrc\sys\appint.cpp @ 2290]
fffffadfe4a8ce60 fffffadfe4145d6d : fffffadfe7711020 0000000000000001 0000000000000000 fffffadfe5fc6fc8 : mydriver!CAVolTrcFltrD0Exit+0x88 [e:\ad2d_beta_refresh\source\native\cavoltrc\sys\cavoltrc.cpp @ 718]
fffffadfe4a8ce90 fffffadfe41456eb : 0000000000000000 0000000000000000 fffffadfe415a660 fffffadfe7afd8e0 : wdf01000!FxPkgPnp::PowerGotoD3Stopped+0x141
fffffadfe4a8cf00 fffffadfe414538e : fffffadfe7711020 0000000000000080 fffffadfe415a4e0 0000000000000080 : wdf01000!FxPkgPnp::PowerEnterNewState+0x1db
fffffadfe4a8d030 fffffadfe414506c : 0000000000000000 0000000000000080 000000000000055b fffffadfe7711020 : wdf01000!FxPkgPnp::PowerProcessEventInner+0x13e
fffffadfe4a8d0a0 fffffadfe4152ba2 : 0000000000000000 000000000000055b 0000000000000000 000000000000055b : wdf01000!FxPkgPnp::PowerProcessEvent+0x1d4
fffffadfe4a8d130 fffffadfe4152abb : 000000000000055b 0000000000000000 0000000000000502 fffff8000103aeb7 : wdf01000!FxPkgPnp::NotPowerPolOwnerStopping+0xe
fffffadfe4a8d160 fffffadfe414e950 : fffffadfe7711020 0000000000000002 000000000000010e fffffadfe4157050 : wdf01000!FxPkgPnp::NotPowerPolicyOwnerEnterNewState+0x1c7
fffffadfe4a8d1e0 fffffadfe414e372 : 0000000000000000 0000000000000002 000000000000010e fffffadfe40db8e9 : wdf01000!FxPkgPnp::PowerPolicyProcessEventInner+0x3f8
fffffadfe4a8d250 fffffadfe414b659 : 0000000000000000 fffffadfe7711020 000000000000010e 000000000000010e : wdf01000!FxPkgPnp::PowerPolicyProcessEvent+0x1e2
fffffadfe4a8d2e0 fffffadfe414a841 : 000000000000010e fffffadfe4a8d440 000000000000010c 0000000000000000 : wdf01000!FxPkgPnp::PnpEventQueriedRemoving+0x15
fffffadfe4a8d310 fffffadfe414a4fe : fffffadfe7711020 fffffadfe4a8d440 0000000000000200 fffffadfe4159450 : wdf01000!FxPkgPnp::PnpEnterNewState+0x1a5
fffffadfe4a8d380 fffffadfe414a201 : 0000000000000000 0000000000000200 fffffadfe4a8d560 fffffadfe7711020 : wdf01000!FxPkgPnp::PnpProcessEventInner+0x122
fffffadfe4a8d3f0 fffffadfe414225b : 0000000000000000 0000000000000001 0000000000000000 fffffadfe4a8d560 : wdf01000!FxPkgPnp::PnpProcessEvent+0x1b1
fffffadfe4a8d480 fffffadfe4140dd6 : fffffadfe791c602 fffffadfe5c6f010 0000000000000000 fffffadfe7711020 : wdf01000!FxPkgPnp::_PnpRemoveDevice+0xb3
fffffadfe4a8d4f0 fffffadfe4110245 : fffffadfe5c6f010 fffffadfe5c6f010 fffffadfe6d1b040 fffffadfe5c6f010 : wdf01000!FxPkgPnp::Dispatch+0x1b2
fffffadfe4a8d560 fffffadfe411014b : fffffadfe5c6f010 fffffadfe5c6f010 fffffadfe6d1b040 fffffadfe67235b0 : wdf01000!FxDevice::Dispatch+0xa9
fffffadfe4a8d590 fffffadfe4030aae : fffffadfe4a8d700 fffffadfe5c6f010 fffffadfe6723700 fffffadfe60b41c8 : wdf01000!FxDevice::DispatchWithLock+0x93
fffffadfe4a8d5d0 fffffadfe3eaa9c8 : fffffadfe4a8d700 fffffadfe4a8da20 0000000000000000 fffffadfe60b41c8 : volsnap!VolSnapPnp+0x19e
fffffadfe4a8d640 fffffadfe3eaa614 : fffffadfe75e1550 fffffadfe4a8da00 fffffadfe4a8d718 fffffadfe75e1550 : Ntfs!NtfsCommonPnp+0x318
fffffadfe4a8d6e0 fffffadfe3f10922 : fffffadfe4a8d804 fffffadfe5c6f010 fffffadfe5c6f010 fffffadfe67231d0 : Ntfs!NtfsFsdPnp+0x154
fffffadfe4a8d760 fffff80001289203 : fffffadfe60b4040 fffffadfe5c6f010 fffffadfe5c6f010 0000000000000000 : fltMgr!FltpDispatch+0x1c2
fffffadfe4a8d7c0 fffff80001015161 : fffffadfe60b4040 0000000000000002 fffffadfe60b4040 fffffadfe62f7301 : nt!IopSynchronousCall+0x144
fffffadfe4a8d830 fffff8000130bfbc : 00000f21853a36f2 0000000000000000 fffffa800430b8f0 0000000080000001 : nt!IopRemoveLockedDeviceNode+0xe31
fffffadfe4a8db00 fffff8000130e530 : fffffadfe3b6caf8 0000000000000000 fffffa8003a6db80 fffffa8002dea924 : nt!IopDeleteLockedDeviceNodes+0x135
fffffadfe4a8db60 fffff8000127e922 : 4d43e38900000000 fffffadfe7b20700 0000000000000001 fffffa8003611c10 : nt!PiProcessQueryRemoveAndEject+0x1471
fffffadfe4a8dc90 fffff80001038b53 : fffffadfe6ec8210 fffff8000127a580 fffffadfe7aed7a0 fffff80001192558 : nt!PiWalkDeviceList+0x25f
fffffadfe4a8dd00 fffff800012b2e7e : fffffadfe7aed7a0 0000000000000080 fffffadfe7aed7a0 fffffadfe7aedbf0 : nt!ExpWorkerThread+0x13a
fffffadfe4a8dd70 fffff80001044196 : fffff80001175180 fffffadfe7aed7a0 fffffadfe7aedbf0 fffffadfe7a40270 : nt!PspSystemThreadStartup+0x3e
fffffadfe4a8ddd0 0000000000000000 : 0000000000000000 0000000000000000 0000000000000000 0000000000000000 : nt!KxStartSystemThread+0x16

regards,
Vijay