共用方式為


撰寫 PnP 通知回呼常式的指導方針

PnP 管理員會在 IRQL = PASSIVE_LEVEL呼叫通知回呼常式。

若要確保 PnP 子系統的順暢作業,PnP 通知回呼常式必須遵循下列指導方針:

  1. 通知回呼常式不得封鎖。

  2. 通知回呼常式不得呼叫或導致呼叫產生 PnP 事件的同步常式,或任何封鎖等候裝置安裝或移除的常式。

    在通知回呼期間呼叫這類常式可能會導致系統死結。

    例如,驅動程式不得在通知回呼常式中呼叫 IoReportTargetDeviceChange 。 請改為呼叫 IoReportTargetDeviceChangeAsynchronous

  3. 通知回呼常式應該會針對未明確失敗的任何事件傳回成功。

    當驅動程式註冊事件類別目錄的通知時,PnP 管理員會通知該類別中所有事件的驅動程式,目前和未來。 如果驅動程式傳回它未處理之事件的錯誤狀態,則驅動程式會不小心造成新查詢事件失敗的風險。

    例如,當驅動程式失敗查詢通知給所建議的事件時,驅動程式會正確傳回錯誤狀態。

  4. 通知回呼常式應該是分頁程式碼。