Aracılığıyla paylaş


PnP Özel Bildirimi'ni kullanma

Bir sürücü, bir cihazdaki özel olaylar hakkında bildirim almak için hedef cihaz değişikliği bildirim mekanizmasını kullanabilir.

Özel olayı tanımlayan programcı aşağıdakileri yapmalıdır:

  1. Özel olay için yeni bir GUID tanımlayın.

    GUID'yi Uuidgen veya Guidgen (Microsoft Windows SDK'sında bulunur) ile oluşturun. GUID'yi uygun bir üst bilgi dosyasında ve belgelerde yayımlayın.

  2. Özel olayı tetikleyen kod yazın.

    Çekirdek modunda bir sürücü, özel GUID ve cihaz için PDO'ya işaretçi ile birlikte IoReportTargetDeviceChange fonksiyonunu çağırır. Özel olaylar yalnızca çekirdek modundan tetiklenebilir.

Bir sürücü yazarı, bir yöntem gibi aşağıdaki şekillerde özel bildirim kullanır:

  1. Sürücü (veya uygulama), özel olayın bildirimine kaydolabilir.

    Çekirdek modunda bir sürücü, ioRegisterPlugPlayNotification'ü çağırır ve cihazda meydana gelen bir değişiklik için EventCategoryTargetDeviceChange'e kaydolar.

    Kullanıcı modunda, bir uygulama RegisterDeviceNotificationkullanarak kaydolr. Daha fazla bilgi için bkz. Windows SDK'sı.

  2. Çekirdek modu bileşeni özel olayı tetikler.

  3. PnP yöneticisi, cihazda kayıtlı bildirim yordamlarını çağırır.

    PnP yöneticisi kayıtlı kullanıcı modu geri çağırma yordamlarını çağırır ve ardından çekirdek modu geri çağırma yordamlarını çağırır.

  4. Kullanıcı modu bildirimi tamamlandığında, çekirdek modu sürücü bildirimi geri çağırma yordamları özel olayı yanıtlar.

    Bildirim geri çağırma yordamlarına yönelik genel yönergeler için PnP Bildirim Geri Çağırma Yordamları Yazma Yönergeleri'e bakın Bu yönergelere ek olarak, özel bir bildirim geri çağırma yordamı, geri çağırma iş parçacığı içinden bir cihaza bir tanıtıcı açmamalıdır.