使用 PnP 自訂通知

驅動程式可以使用目標裝置變更通知機制來通知裝置上的自訂事件。

定義自訂事件的程式設計人員必須執行下列動作:

  1. 定義自訂事件的新 GUID。

    使用UuidgenGuidgen產生 GUID (,這些 GUID 包含在Microsoft Windows SDK) 中。 在適當的標頭檔與檔中發佈 GUID。

  2. 撰寫程式碼以觸發自訂事件。

    在核心模式中,驅動程式會使用自訂 GUID 和裝置 PDO 的指標呼叫 IoReportTargetDeviceChange 。 自訂事件只能從核心模式觸發。

驅動程式寫入器會使用自訂通知搭配如下所示的程式:

  1. 驅動程式 (或應用程式) 註冊以通知自訂事件。

    在核心模式中,驅動程式會呼叫 IoRegisterPlugPlayNotification ,並在裝置上註冊 EventCategoryTargetDeviceChange

    在使用者模式中,應用程式會使用 RegisterDeviceNotification 註冊。 如需詳細資訊,請參閱 Windows SDK。

  2. 核心模式元件會觸發自訂事件。

  3. PnP 管理員會呼叫在裝置上註冊的通知常式。

    PnP 管理員會呼叫已註冊的使用者模式回呼常式,然後呼叫核心模式回呼常式。

  4. 當使用者模式通知完成時,核心模式驅動程式通知回呼常式 (s) 回應自訂事件。

    如需通知回呼常式的一般指導方針,請參閱 撰寫 PnP 通知 回呼常式的指導方針。 除了這些指導方針之外,自訂通知回呼常式不得從回呼常式執行緒內開啟裝置的控制碼。