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,架構會呼叫驅動程式的 EvtDeviceSelfManagedIoFlushEvtDeviceSelfManagedIoCleanup 回 呼函式。

如需此回呼函式傳回值的詳細資訊,請參閱 報告裝置失敗

備註

若要註冊 EvtDeviceSelfManagedIoSuspend 回 呼函式,驅動程式必須呼叫 WdfDeviceInitSetPnpPowerEventCallbacks

如果驅動程式已註冊 EvtDeviceSelfManagedIoSuspend 回呼函式,架構會基於下列其中一個原因來呼叫它:

  • 裝置即將進入低電源狀態。
  • 裝置正在移除或意外移除。
  • 隨插即用 管理員即將在系統連結的裝置之間轉散發系統的硬體資源。
因為您不知道哪一個事件會導致架構呼叫驅動程式,所以您必須假設裝置可能會回到其運作 (D0) 狀態。

如果裝置即將進入低電源狀態,架構會在呼叫驅動程式的 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

另請參閱

EvtDeviceSelfManagedIoCleanup

EvtDeviceSelfManagedIoFlush

EvtDeviceSelfManagedIoInit

EvtDeviceSelfManagedIoRestart