Uso della notifica personalizzata PnP
Un driver può usare il meccanismo di notifica delle modifiche del dispositivo di destinazione per ricevere una notifica di eventi personalizzati in un dispositivo.
Il programmatore che definisce l'evento personalizzato deve eseguire le operazioni seguenti:
Definire un nuovo GUID per l'evento personalizzato.
Generare il GUID con Uuidgen o Guidgen (inclusi nel Microsoft Windows SDK). Pubblicare il GUID in un file di intestazione e una documentazione appropriati.
Scrivere codice per attivare l'evento personalizzato.
In modalità kernel, un driver chiama IoReportTargetDeviceChange con il GUID personalizzato e un puntatore al PDO per il dispositivo. Gli eventi personalizzati possono essere attivati solo dalla modalità kernel.
Un writer di driver usa una notifica personalizzata con una procedura simile alla seguente:
Il driver (o l'applicazione) esegue la registrazione per la notifica dell'evento personalizzato.
In modalità kernel, un driver chiama IoRegisterPlugPlayNotification e registra per un EventCategoryTargetDeviceChange nel dispositivo.
In modalità utente, un'applicazione esegue la registrazione usando RegisterDeviceNotification. Per altre informazioni, vedere Windows SDK.
Un componente in modalità kernel attiva l'evento personalizzato.
Il gestore PnP chiama routine di notifica registrate nel dispositivo.
Il gestore PnP chiama le routine di callback in modalità utente registrate e quindi chiama le routine di callback in modalità kernel.
Al termine della notifica in modalità utente, le routine di callback di notifica del driver in modalità kernel rispondono all'evento personalizzato.
Vedere Linee guida per la scrittura di routine di callback di notifica PnP per linee guida generali per le routine di callback delle notifiche. Oltre a tali linee guida, una routine di callback di notifica personalizzata non deve aprire un handle a un dispositivo dall'interno del thread di routine di callback.