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

IoRegisterPlugPlayNotification

IoUnregisterPlugPlayNotification