// wdfdevice.h
EVT_WDF_DEVICE_SELF_MANAGED_IO_RESTART EvtWdfDeviceSelfManagedIoRestart;
NTSTATUS EvtWdfDeviceSelfManagedIoRestart(
[in] WDFDEVICE Device
)
{...}
View the official Windows Driver Kit DDI referenceNo description available.
[Applies to KMDF and UMDF]
A driver's EvtDeviceSelfManagedIoRestart event callback function restarts a device's self-managed I/O operations.
Device [in]A handle to a framework device object.
If the EvtDeviceSelfManagedIoRestart callback function encounters no errors, it must return STATUS_SUCCESS, or another status value for which NT_SUCCESS(status) equals TRUE. Otherwise it must return a status value for which NT_SUCCESS(status) equals FALSE. If NT_SUCCESS(status) equals FALSE, the framework stops the device and unloads the device's drivers.
If NT_SUCCESS(status) equals FALSE, the framework calls the driver's EvtDeviceSelfManagedIoFlush and EvtDeviceSelfManagedIoCleanup callback functions.
For more information about this callback function's return values, see Reporting Device Failures.
To register an EvtDeviceSelfManagedIoRestart callback function, a driver must call WdfDeviceInitSetPnpPowerEventCallbacks.
If the driver has registered an EvtDeviceSelfManagedIoRestart callback function, the framework calls it each time that the device returns from a low-power state to its working (D0) state. The framework calls the EvtDeviceSelfManagedIoRestart callback function only after calling the driver's EvtDeviceSelfManagedIoSuspend callback function.
The driver's EvtDeviceSelfManagedIoRestart callback function must do whatever is needed to resume the device's self-managed I/O operations.
For more information about when the framework calls this callback function, see PnP and Power Management Scenarios.
For more information about drivers that provide this callback function, see Using Self-Managed I/O.
The EvtDeviceSelfManagedIoRestart callback function is called at IRQL = PASSIVE_LEVEL. You should not make this callback function pageable.