Funzione IoReportTargetDeviceChange (wdm.h)
La routine IoReportTargetDeviceChange notifica al gestore PnP che si è verificato un evento personalizzato in un dispositivo.
NTSTATUS IoReportTargetDeviceChange(
[in] PDEVICE_OBJECT PhysicalDeviceObject,
[in] PVOID NotificationStructure
);
[in] PhysicalDeviceObject
Puntatore al PDO del dispositivo segnalato.
[in] NotificationStructure
Puntatore a una struttura di TARGET_DEVICE_CUSTOM_NOTIFICATION fornita dal chiamante che descrive l'evento personalizzato. Il gestore PnP invia questa struttura ai driver registrati per la notifica dell'evento.
NotificationStructure. FileObject deve essere NULL. NotificationStructure. evento deve contenere il GUID personalizzato per l'evento. Gli altri campi del NotificationStructure devono essere compilati in base alle esigenze dell'evento personalizzato.
Il gestore PnP compila il NotificationStructure.campo FileObject quando invia notifiche ai registranti.
IoReportTargetDeviceChange restituisce STATUS_SUCCESS o uno stato di errore appropriato. I possibili valori di stato degli errori includono quanto segue.
Codice restituito | Descrizione |
---|---|
|
Il chiamante ha specificato un evento PnP di sistema, ad esempio GUID_TARGET_DEVICE_QUERY_REMOVE. Questa routine è solo per gli eventi personalizzati. |
Dopo IoReportTargetDeviceChange notifica al gestore PnP che si è verificato un evento personalizzato in un dispositivo, il manager PnP invia una notifica dell'evento ai driver registrati per la notifica nel dispositivo. Non utilizzare questa routine per segnalare gli eventi PnP di sistema, ad esempio GUID_TARGET_DEVICE_REMOVE_COMPLETE.
Un driver che definisce una chiamata di evento del dispositivo personalizzato IoReportTargetDeviceChange per informare il gestore PnP che si è verificato l'evento personalizzato. La notifica personalizzata può essere usata per eventi come una modifica dell'etichetta del volume.
Un driver deve chiamare il formato asincrono di questa routine, IoReportTargetDeviceChangeAsynchronous, invece di questa routine, per evitare deadlock.
Alcuni componenti in modalità kernel possono chiamare questa routine sincrona. Ad esempio, un file system può chiamare IoReportTargetDeviceChange per segnalare un evento personalizzato "get off the volume" quando un componente tenta di aprire il volume per l'accesso esclusivo. I client che eseguono la registrazione per la notifica sui volumi del file system sono attenti a non richiedere un'apertura esclusiva in una routine di callback di notifica PnP.
La struttura di notifica personalizzata contiene un evento definito dal driver con il proprio GUID. I writer di driver possono generare GUID con Uuidgen.exe o Guidgen.exe (inclusi in Microsoft Windows SDK).
I chiamanti di IoReportTargetDeviceChange devono essere in esecuzione in IRQL = PASSIVE_LEVEL nel contesto di un thread di sistema. Per segnalare una modifica del dispositivo di destinazione da > PASSIVE_LEVEL IRQL, chiamare IoReportTargetDeviceChangeAsynchronous.
IoReportTargetDeviceChange non è supportato in Windows 98/Me; restituisce STATUS_NOT_IMPLEMENTED.
Requisito | Valore |
---|---|
client minimo supportato | Disponibile a partire da Windows 2000. |
piattaforma di destinazione | Universale |
intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (vedere la sezione Osservazioni) |
regole di conformità DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |