Freigeben über


Registrieren für Benachrichtigung zur Änderung der Geräteschnittstelle

Ein Treiber registriert sich für Benachrichtigungen über Ereignisse zum Ein- und Entfernen der Geräteschnittstelle, indem er IoRegisterPlugPlayNotification aufruft.

Die folgenden Informationen gelten für das Aufrufen dieser Routine für Benachrichtigungen zum Ändern der Geräteschnittstelle:

  • Geben Sie eine EventCategory von EventCategoryDeviceInterfaceChange an.

  • EventCategoryData muss auf die GUID für eine Geräteschnittstellenklasse verweisen.

    Die GUID für eine Schnittstellenklasse wird in der Regel in einer Headerdatei mit den Strukturen, Konstanten usw. für die Schnittstelle definiert.

  • Geben Sie einen EventCategoryFlags mit PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES an.

    Dieses Flag weist den PnP-Manager an, die CallbackRoutine für zukünftige Geräteschnittstellenan- und -abgänge der angegebenen Klasse zu registrieren und die CallbackRoutine sofort für alle relevanten Geräteschnittstellen aufzurufen, die bereits aktiv sind.

    Ein Treiber kann IoGetDeviceInterfaces aufrufen, um eine Liste der vorhandenen Schnittstellen einer bestimmten Klasse abzurufen, und dann seine Rückrufroutine ohne dieses Flag registrieren. Die Verwendung des Flags ist jedoch einfacher und vermeidet ein potenzielles Zeitsteuerungsproblem.

  • Geben Sie ggf. einen vom Treiber definierten Kontext an, den der PnP-Manager an die Rückrufroutine übergibt.

Ein Treiber, der als Reaktion auf eine Benachrichtigung über die Geräteschnittstelle ein Handle für ein Gerät öffnet, sollte sich für EventCategoryTargetDeviceChange-Ereignisse auf dem Gerät registrieren. (Siehe Verwenden der PnP-Zielgeräteänderungsbenachrichtigung.)

Ein Treiber bricht die Benachrichtigungsregistrierung ab, indem er IoUnregisterPlugPlayNotification mit der von IoRegisterPlugPlayNotificationzurückgegebenen NotificationEntry aufruft.