Does framework does any extra checks in addition to EvtDeviceQueryRemove() when pnp manager sends IR

Hi Doron,

I got the o/p of wdglogdump. It is attached towards the end of the mail.

In the o/p below, I have marked the log where device disable fails in “red
colour”.

It says that EvtQueryRemove() failed for !devobj 0x95758F00.

This is weird. Because, below is the code for EvtQueryRemove() for that
device.

The function has been hard-coded to return STATUS_SUCCESS.

NTSTATUS

PDHandleQueryRemoveFdo(

IN IN WDFDEVICE Device

)

{

PDEVICE_EXTENSION_FDO pDxf = (PDEVICE_EXTENSION_FDO)GetFDOContext(Device);

NTSTATUS status;

NVPRINT (DBGLEVEL_TEMP, (“PDHandleQueryRemoveFdo entered\n”));

#ifdef TRACKIRP

IRPLISTTRAVERSE (pDxf);

#endif

NVPRINT (DBGLEVEL_TEMP, (“Exiting PDHandleQueryRemoveFdo\n”));

return (STATUS_SUCCESS);

} // PDHandleQueryRemoveFdo

Failing to understand whats happening here. Does framework perform any
operation underneath before returning failure though the driver returned

success??

Thanks,

-Praveen

There are 56 log entries

— start of log —

1: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated

2: FxPkgPnp::Dispatch - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00, IRP_MJ_PNP,
0x00000000(IRP_MN_START_DEVICE) IRP 0x8AEC6F20

3: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering PnP State WdfDevStatePnpInitStarting from WdfDevStatePnpInit

4: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering PnP State WdfDevStatePnpHardwareAvailable from
WdfDevStatePnpInitStarting

5: FxPkgPnp::PnpMatchResources - Not enough interrupt objects created by
WDFDEVICE 0x6A8334D0

6: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x6A8334D0 !devobj
0x95758F00 entering power policy state WdfDevStatePwrPolStarting from
WdfDevStatePwrPolObjectCreated

7: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x6A8334D0 !devobj
0x95758F00 entering power idle state FxIdleStarted from FxIdleStopped

8: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering Power State WdfDevStatePowerStartingCheckDeviceType from
WdfDevStatePowerObjectCreated

9: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering Power State WdfDevStatePowerD0Starting from
WdfDevStatePowerStartingCheckDeviceType

10: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering Power State WdfDevStatePowerD0StartingConnectInterrupt from
WdfDevStatePowerD0Starting

11: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering Power State WdfDevStatePowerD0StartingDmaEnable from
WdfDevStatePowerD0StartingConnectInterrupt

12: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering Power State WdfDevStatePowerD0StartingStartSelfManagedIo from
WdfDevStatePowerD0StartingDmaEnable

13: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x6A8334D0 !devobj
0x95758F00 entering power idle state FxIdleStartedPowerUp from FxIdleStarted

14: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x6A8334D0 !devobj
0x95758F00 entering power idle state FxIdleDisabled from
FxIdleStartedPowerUp

15: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering Power State WdfDevStatePowerDecideD0State from
WdfDevStatePowerD0StartingStartSelfManagedIo

16: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering Power State WdfDevStatePowerD0 from WdfDevStatePowerDecideD0State

17: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x6A8334D0 !devobj
0x95758F00 entering power policy state WdfDevStatePwrPolStartingSucceeded
from WdfDevStatePwrPolStarting

18: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x6A8334D0 !devobj
0x95758F00 entering power policy state WdfDevStatePwrPolStartingDecideS0Wake
from WdfDevStatePwrPolStartingSucceeded

19: FxPkgPnp::PowerPolicyEnterNewState - WDFDEVICE 0x6A8334D0 !devobj
0x95758F00 entering power policy state WdfDevStatePwrPolStarted from
WdfDevStatePwrPolStartingDecideS0Wake

20: FxPowerIdleMachine::ProcessEventLocked - WDFDEVICE 0x6A8334D0 !devobj
0x95758F00 entering power idle state FxIdleDisabled from FxIdleDisabled

21: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering PnP State WdfDevStatePnpEnableInterfaces from
WdfDevStatePnpHardwareAvailable

22: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering PnP State WdfDevStatePnpStarted from WdfDevStatePnpEnableInterfaces

23: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering PnP State WdfDevStatePnpInit from WdfDevStatePnpObjectCreated

24: FxChildList::ProcessBusRelations - PDO created successfully, WDFDEVICE
6AC754B8 !devobj 8DC71030

25: FxPkgPnp::Dispatch - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030,
IRP_MJ_PNP, 0x00000000(IRP_MN_START_DEVICE) IRP 0x8E3BCF00

26: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering PnP State WdfDevStatePnpInitStarting from WdfDevStatePnpInit

27: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering PnP State WdfDevStatePnpHardwareAvailable from
WdfDevStatePnpInitStarting

28: FxPkgPnp::NotPowerPolicyOwnerEnterNewState - WDFDEVICE 0x6AC754B8
!devobj 0x8DC71030 entering not power policy owner state
WdfDevStatePwrPolStarting from WdfDevStatePwrPolObjectCreated

29: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering Power State WdfDevStatePowerStartingCheckDeviceType from
WdfDevStatePowerObjectCreated

30: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering Power State WdfDevStatePowerStartingChild from
WdfDevStatePowerStartingCheckDeviceType

31: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering Power State WdfDevStatePowerD0Starting from
WdfDevStatePowerStartingChild

32: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering Power State WdfDevStatePowerD0StartingConnectInterrupt from
WdfDevStatePowerD0Starting

33: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering Power State WdfDevStatePowerD0StartingDmaEnable from
WdfDevStatePowerD0StartingConnectInterrupt

34: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering Power State WdfDevStatePowerD0StartingStartSelfManagedIo from
WdfDevStatePowerD0StartingDmaEnable

35: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering Power State WdfDevStatePowerDecideD0State from
WdfDevStatePowerD0StartingStartSelfManagedIo

36: FxPkgPnp::PowerEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering Power State WdfDevStatePowerD0BusWakeOwner from
WdfDevStatePowerDecideD0State

37: FxPkgPnp::NotPowerPolicyOwnerEnterNewState - WDFDEVICE 0x6AC754B8
!devobj 0x8DC71030 entering not power policy owner state
WdfDevStatePwrPolStarted from WdfDevStatePwrPolStarting

38: FxPkgPnp::NotPowerPolicyOwnerEnterNewState - WDFDEVICE 0x6AC754B8
!devobj 0x8DC71030 entering not power policy owner state
WdfDevStatePwrPolStartingSucceeded from WdfDevStatePwrPolStarted

39: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering PnP State WdfDevStatePnpEnableInterfaces from
WdfDevStatePnpHardwareAvailable

40: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering PnP State WdfDevStatePnpStarted from WdfDevStatePnpEnableInterfaces

41: FxPkgPdo::_PnpQueryId - WDFDEVICE 6AC754B8 does not have a string for
PnP query IdType #-1, 0xc00000bb(STATUS_NOT_SUPPORTED)

42: FxPkgPnp::Dispatch - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030,
IRP_MJ_PNP, 0x00000001(IRP_MN_QUERY_REMOVE_DEVICE) IRP 0x85EECF00

43: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering PnP State WdfDevStatePnpQueryRemoveStaticCheck from
WdfDevStatePnpStarted

44: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering PnP State WdfDevStatePnpQueryRemoveAskDriver from
WdfDevStatePnpQueryRemoveStaticCheck

45: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering PnP State WdfDevStatePnpQueryRemovePending from
WdfDevStatePnpQueryRemoveAskDriver

46: FxPkgPnp::Dispatch - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00,
IRP_MJ_PNP, 0x00000001(IRP_MN_QUERY_REMOVE_DEVICE) IRP 0x8E212F20

47: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering PnP State WdfDevStatePnpQueryRemoveStaticCheck from
WdfDevStatePnpStarted

48: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering PnP State WdfDevStatePnpQueryRemoveAskDriver from
WdfDevStatePnpQueryRemoveStaticCheck

49: FxPkgPnp::PnpEventQueryRemoveAskDriver - EvtDeviceQueryRemove failed,
0xc0000001(STATUS_UNSUCCESSFUL)

50: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering PnP State WdfDevStatePnpStarted from
WdfDevStatePnpQueryRemoveAskDriver

51: FxPkgPnp::Dispatch - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00,
IRP_MJ_PNP, 0x00000003(IRP_MN_CANCEL_REMOVE_DEVICE) IRP 0x9CD5AF20

52: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering PnP State WdfDevStatePnpStartedCancelRemove from
WdfDevStatePnpStarted

53: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6A8334D0 !devobj 0x95758F00
entering PnP State WdfDevStatePnpStarted from
WdfDevStatePnpStartedCancelRemove

54: FxPkgPnp::Dispatch - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030,
IRP_MJ_PNP, 0x00000003(IRP_MN_CANCEL_REMOVE_DEVICE) IRP 0x8B726F00

55: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering PnP State WdfDevStatePnpQueryCanceled from
WdfDevStatePnpQueryRemovePending

56: FxPkgPnp::PnpEnterNewState - WDFDEVICE 0x6AC754B8 !devobj 0x8DC71030
entering PnP State WdfDevStatePnpStarted from WdfDevStatePnpQueryCanceled

d> !WDFDEVICE 0x6A8334D0

Dumping WDFDEVICE 0x6a8334d0

=================================

WDM PDEVICE_OBJECTs:self 95758f00, attached 8300b7e0, pdo 82ffd700

Pnp state: 119 ( WdfDevStatePnpStarted )

Power state: 307 ( WdfDevStatePowerD0 )

Power Pol state: 565 ( WdfDevStatePwrPolStarted )

Default WDFIOTARGET: 7224a6b0

No pended pnp or power irps

Device is the power policy owner for the stack