Funzione IoUnregisterPlugPlayNotificationEx (wdm.h)
La routine IoUnregisterPlugPlayNotificationEx annulla la registrazione della routine di callback di un driver per le notifiche degli eventi Plug and Play (PnP).
Sintassi
NTSTATUS IoUnregisterPlugPlayNotificationEx(
[in] PVOID NotificationEntry
);
Parametri
[in] NotificationEntry
Puntatore a un valore opaco che rappresenta la registrazione da annullare. Il chiamante ha ottenuto in precedenza questo valore chiamando la routine IoRegisterPlugPlayNotification .
Valore restituito
IoUnregisterPlugPlayNotificationEx restituisce STATUS_SUCCESS se il parametro NotificationEntry è valido.
Commenti
Un driver in modalità kernel chiama questa routine per rimuovere una registrazione per ricevere notifiche PnP. Vale a dire, una chiamata IoUnregisterPlugPlayNotificationEx annulla la registrazione di una routine di callback driver per una categoria di eventi PnP. Il driver ottenuto in precedenza questa registrazione chiamando la routine IoRegisterPlugPlayNotification .
Dopo che viene restituita una chiamata IoUnregisterPlugPlayNotificationEx , la registrazione specificata viene annullata e non è possibile eseguire ulteriori callback.
La routine IoUnregisterPlugPlayNotification è simile a IoUnregisterPlugPlayNotificationEx, ad eccezione del fatto che non può garantire che non possano verificarsi altri callback dopo la restituzione di una chiamata IoUnregisterPlugPlayNotification.
Spesso un driver chiama IoUnregisterPlugPlayNotificationEx da una routine di callback di notifica. Nella maggior parte dei casi, il driver può eliminare in modo sicuro la registrazione della routine di callback di notifica in questo modo. Tuttavia, non è sicuro che una routine di callback di notifica chiami IoUnregisterPlugPlayNotificationEx per annullare la registrazione se la seguente è true:
Il driver imposta il flag di PNPNOTIFY_DEVICE_INTERFACE_INCLUDE_EXISTING_INTERFACES nel valore del parametro EventCategoryFlags fornito alla chiamata IoRegisterPlugPlayNotification che registra la routine di callback di notifica.
La chiamata IoRegisterPlugPlayNotification che registra la routine di callback di notifica non è ancora stata restituita.
La routine di callback non deve chiamare alcuna routine che potrebbe bloccare l'esecuzione del thread in cui è in esecuzione la routine di callback. Se, ad esempio, una routine di callback non progettata correttamente inserisce un elemento di lavoro che chiama IoUnregisterPlugPlayNotificationEx nella coda dell'elemento di lavoro e quindi attende che un thread di lavoro completi l'elemento di lavoro, ciò comporta un deadlock del sistema operativo.
I driver devono annullare prima la registrazione di una routine di callback di notifica e quindi liberare qualsiasi buffer di contesto associato alla routine.
Un driver non può essere scaricato finché non rimuove tutte le registrazioni di notifica PnP perché ogni registrazione attiva contiene un riferimento conteggiato all'oggetto driver che rappresenta l'immagine caricata del driver.
Per altre informazioni, vedere Uso della notifica PnP.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile a partire da Windows 7. |
Piattaforma di destinazione | Universale |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regole di conformità DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per