共用方式為


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(status) 等於 false ,則架構會呼叫驅動程式的 EvtDeviceSelfManagedIoFlushEvtDeviceSelfManagedIoCleanup 回呼函式。

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

言論

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

如果驅動程式已註冊 EvtDeviceSelfManagedIoSuspend 回呼函式,架構會呼叫它,原因如下:

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

如果裝置即將進入低功率狀態,架構會在呼叫驅動程式的 EvtDeviceD0Exit 回呼函式之前,先呼叫驅動程式的 EvtDeviceSelfManagedIoSuspend 回呼函式。

如果回呼函式傳回狀態值,NT_SUCCESS(狀態)等於 FALSE,而且如果架構嘗試降低裝置的電源,架構會停止裝置並移除其裝置物件。

EvtDeviceSelfManagedIoSuspend 回呼函式必須執行停止裝置自我管理 I/O 作業所需的任何動作。

如需架構呼叫此回呼函式時的詳細資訊,請參閱 PnP 和 Power Management Scenarios

如需提供此回呼函式之驅動程式的詳細資訊,請參閱使用 Self-Managed I/O

要求

要求 價值
目標平臺 普遍
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
標頭 wdfdevice.h (包括 Wdf.h)
IRQL PASSIVE_LEVEL

另請參閱

EvtDeviceSelfManagedIoCleanup

EvtDeviceSelfManagedIoFlush

EvtDeviceSelfManagedIoInit

EvtDeviceSelfManagedIoRestart