Driver Access to Hardware

The following table lists all of the event callback functions that the framework device object defines, in alphabetical order. The table shows you the callback functions in which your driver can access the hardware that the callback function's WDFDEVICE handle represents. You can access the hardware because the device is in its working (D0) state.

Event callbacks functionsfor framework device objects Is hardware accessible?

EvtDeviceArmWakeFromS0

Yes

EvtDeviceArmWakeFromSx

Yes

EvtDeviceArmWakeFromSxWithReason

Yes

EvtDeviceD0Entry

Yes

EvtDeviceD0Exit

Yes

EvtDeviceDisableWakeAtBus

Parent bus might be at D0. The device might be at D0.

EvtDeviceDisarmWakeFromS0

Yes

EvtDeviceDisarmWakeFromSx

Yes

EvtDeviceEject

No

EvtDeviceEnableWakeAtBus

Parent bus is at D0, but the device might not be.

EvtDeviceFileCreate

Maybe

EvtDeviceFilterAddResourceRequirements

No

EvtDeviceFilterRemoveResourceRequirements

No

EvtDevicePrepareHardware

Yes

EvtDeviceRelationsQuery

Yes, but the device might be in a sleeping state.

EvtDeviceReleaseHardware

No

EvtDeviceRemoveAddedResources

Yes, but resources have not been assigned to the device.

EvtDeviceResourceRequirementsQuery

No

EvtDeviceResourcesQuery

No

EvtDeviceSelfManagedIoCleanup

No

EvtDeviceSelfManagedIoFlush

No

EvtDeviceSelfManagedIoInit

Yes

EvtDeviceSelfManagedIoRestart

Yes

EvtDeviceSelfManagedIoSuspend

No, if device has been surprise-removed; otherwise, yes.

EvtDeviceSetLock

No

EvtDeviceSurpriseRemoval

No

EvtDeviceUsageNotification

Yes

EvtDeviceWakeFromS0Triggered

Yes

EvtDeviceWakeFromSxTriggered

Yes

EvtDeviceWdmIrpPreprocess

Depends on the IRP.

EvtDevicePnpStateChange

Depends on the state.

EvtDevicePowerPolicyStateChange

Depends on the state.

EvtDevicePowerStateChange

Depends on the state.