Dela via


Registrering för meddelande om ändring av enhetsgränssnitt

En drivrutin registrerar sig för meddelanden om ankomst och borttagning av enhetsgränssnitt genom att anropa IoRegisterPlugPlayNotification.

Följande information gäller för att anropa den här rutinen för meddelande om ändring av enhetsgränssnitt:

  • Ange en EventCategory för EventCategoryDeviceInterfaceChange.

  • EventCategoryData måste peka på GUID för en enhetsgränssnittsklass.

    GUID för en gränssnittsklass definieras vanligtvis i en rubrikfil med strukturer, konstanter och så vidare för gränssnittet.

  • Ange en EventCategoryFlags för PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES.

    Den här flaggan instruerar PnP-hanteraren att registrera CallbackRoutine för framtida ankomster och avgångar för enhetsgränssnittet för den angivna klassen och anropa CallbackRoutine omedelbart för alla relevanta enhetsgränssnitt som redan är aktiva.

    En drivrutin kan anropa IoGetDeviceInterfaces för att hämta en lista över befintliga gränssnitt för en specifik klass och sedan registrera sin återanropsrutin utan den här flaggan, men att använda flaggan är enklare och undviker ett potentiellt tidsproblem.

  • Ange en drivrutinsdefinierad kontext, om det är lämpligt, som PnP-chefen skickar till callback-funktionen.

En drivrutin som öppnar ett handtag till en enhet som svar på ett meddelande om ankomst från enhetsgränssnittet bör registrera sig för EventCategoryTargetDeviceChange-händelser på enheten. (Se Använda meddelande om ändring av PnP-målenhet.)

En drivrutin avbryter aviseringsregistreringen genom att anropa IoUnregisterPlugPlayNotification med NotificationEntry som returneras av IoRegisterPlugPlayNotification.