Funzione IoReportTargetDeviceChange (wdm.h)

La routine IoReportTargetDeviceChange notifica al gestore PnP che si è verificato un evento personalizzato in un dispositivo.

Sintassi

NTSTATUS IoReportTargetDeviceChange(
  [in] PDEVICE_OBJECT PhysicalDeviceObject,
  [in] PVOID          NotificationStructure
);

Parametri

[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. L'evento deve contenere il GUID personalizzato per l'evento. Gli altri campi di NotificationStructure devono essere compilati in base alle esigenze dell'evento personalizzato.

Il gestore PnP compila NotificationStructure. Campo FileObject quando invia notifiche ai registranti.

Valore restituito

IoReportTargetDeviceChange restituisce STATUS_SUCCESS o uno stato di errore appropriato. I valori di stato dell'errore possibili includono quanto segue.

Codice restituito Descrizione
STATUS_INVALID_DEVICE_REQUEST
Il chiamante ha specificato un evento PnP di sistema, ad esempio GUID_TARGET_DEVICE_QUERY_REMOVE. Questa routine è solo per gli eventi personalizzati.

Commenti

Dopo che IoReportTargetDeviceChange notifica al gestore PnP che si è verificato un evento personalizzato in un dispositivo, il gestore 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 un evento di dispositivo personalizzato chiama 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 la forma asincrona 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 nel 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 IRQL > PASSIVE_LEVEL, chiamare IoReportTargetDeviceChangeAsynchronous.

IoReportTargetDeviceChange non è supportato in Windows 98/Me; restituisce STATUS_NOT_IMPLEMENTED.

Requisiti

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)

Vedi anche

IoReportTargetDeviceChangeAsynchronous

TARGET_DEVICE_CUSTOM_NOTIFICATION