EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND回呼函式 (wdfdevice.h)
[適用於 KMDF 和 UMDF]
驅動程式的 EvtDeviceSelfManagedIoSuspend 事件回呼函式會暫停裝置的自我管理 I/O 作業。
語法
EVT_WDF_DEVICE_SELF_MANAGED_IO_SUSPEND EvtWdfDeviceSelfManagedIoSuspend;
NTSTATUS EvtWdfDeviceSelfManagedIoSuspend(
[in] WDFDEVICE Device
)
{...}
參數
[in] Device
架構裝置物件的句柄。
傳回值
如果作業成功,EvtDeviceSelfManagedIoSuspend 回呼函式必須傳回STATUS_SUCCESS,或NT_SUCCESS ( 狀態) 等於 TRUE 的另一個狀態值。 否則,它必須傳回狀態值,NT_SUCCESS (狀態) 等於 FALSE。 如果NT_SUCCESS (狀態) 等於 FALSE,架構會停止裝置並移除其裝置物件。
如果NT_SUCCESS (状态) 等於 FALSE,架構會呼叫驅動程式的 EvtDeviceSelfManagedIoFlush 和 EvtDeviceSelfManagedIoCleanup 回 呼函式。
如需此回呼函式傳回值的詳細資訊,請參閱 報告裝置失敗。
備註
若要註冊 EvtDeviceSelfManagedIoSuspend 回 呼函式,驅動程式必須呼叫 WdfDeviceInitSetPnpPowerEventCallbacks。
如果驅動程式已註冊 EvtDeviceSelfManagedIoSuspend 回呼函式,架構會基於下列其中一個原因來呼叫它:
- 裝置即將進入低電源狀態。
- 裝置正在移除或意外移除。
- 隨插即用 管理員即將在系統連結的裝置之間轉散發系統的硬體資源。
如果裝置即將進入低電源狀態,架構會在呼叫驅動程式的 EvtDeviceSelfManagedIoSuspend 回呼函式之前先呼叫驅動程式的 EvtDeviceD0Exit 回 呼函式。
如果回呼函式傳回狀態值,NT_SUCCESS (狀態) 等於 FALSE,而且如果架構嘗試降低裝置的電源,架構就會停止裝置並移除其裝置物件。
EvtDeviceSelfManagedIoSuspend 回呼函式必須執行任何動作,才能停止裝置的自我管理 I/O 作業。
如需架構何時呼叫此回呼函式的詳細資訊,請參閱 PnP 和電源管理案例。
如需提供此回呼函式之驅動程式的詳細資訊,請參閱 使用 Self-Managed I/O。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最低 KMDF 版本 | 1.0 |
最低UMDF版本 | 2.0 |
標頭 | wdfdevice.h (包含 Wdf.h) |
IRQL | PASSIVE_LEVEL |