傳送等候/喚醒 IRP

次要電源 IRP 程式碼 IRP_MN_WAIT_WAKE 提供來喚醒裝置或喚醒系統。 可以喚醒本身或系統傳送 IRP_MN_WAIT_WAKE 要求的裝置驅動程式。 系統只會將 IRP_MN_WAIT_WAKE 要求傳送給一律喚醒系統的裝置,例如電源開啟開關。

驅動程式會基於下列兩個原因之一傳送 IRP_MN_WAIT_WAKE 要求:

  1. 其裝置必須能夠從睡眠狀態返回工作狀態,以回應外部喚醒訊號。

    例如,數據機的驅動程式可能會先將其傳送等候/喚醒 IRP,再將其設定為電源狀態 D1 以節省能源。 等候/喚醒 IRP 可讓數據機回應來電。

  2. 其裝置必須能夠喚醒系統,以回應喚醒訊號。

    當系統進入睡眠狀態時,數據機可能會處於狀態 D1,且 IRP_MN_WAIT_WAKE 擱置中。 在此情況下,來電會喚醒系統以及數據機。

無論裝置是否已準備好喚醒本身或系統,其驅動程式必須採取的動作都相同。 主要差異在於裝置和系統硬體如何回應初始喚醒訊號。 在任一情況下,驅動程式行為都相同。