Verwenden der PnP-Zielgeräteänderungsbenachrichtigung
Ein Treiber wird für die EventCategoryTargetDeviceChange-Benachrichtigung auf einem Gerät registriert, sodass der Treiber benachrichtigt werden kann, wenn das Gerät entfernt werden soll. Wenn ein Treiber beispielsweise ein Handle für ein Gerät öffnet, sollte sich der Treiber für die EventCategoryTargetDeviceChange-Benachrichtigung auf dem Gerät registrieren, damit der Treiber seinen Handle schließen kann, wenn der PnP-Manager das Gerät entfernen muss.
Treiber können auch die EventCategoryTargetDeviceChange-Benachrichtigung für benutzerdefinierte Benachrichtigungen verwenden. (Siehe Verwenden einer benutzerdefinierten PnP-Benachrichtigung.)
Wichtig
Die Registrierung für PnP-Zielgeräteänderungsbenachrichtigungen dient nicht dazu, Listener über Änderungen des Energiezustands des Zielgeräts zu benachrichtigen. Wenn ein Treiber über eine Leistungsänderung des Zielgeräts bescheid wissen muss, sollte der Treiber stattdessen eine Leistungsbeziehung zwischen Geräten definieren.
Um eine Energiebeziehung zu definieren, ruft der Treiber IoInvalidateDeviceRelations auf, wobei der Type-Parameter auf PowerRelations festgelegt ist, und antwortet dann auf die IRP_MN_QUERY_DEVICE_RELATIONS Abfrage des PnP-Managers für PowerRelations mit den richtigen Informationen.
In den folgenden Unterabschnitten wird erläutert, wie Sie sich für Benachrichtigungen zu Zielgeräteänderungen registrieren und wie Sie Zielgeräteänderungsereignisse in einer PnP-Benachrichtigungsrückrufroutine behandeln:
Registrieren für Benachrichtigung zum Ändern des Zielgeräts
Behandeln eines GUID_TARGET_DEVICE_QUERY_REMOVE-Ereignisses
Behandeln eines GUID_TARGET_DEVICE_REMOVE_COMPLETE-Ereignisses
Behandeln eines GUID_TARGET_DEVICE_REMOVE_CANCELLED-Ereignisses