Funzione IoWMIRegistrationControl (wdm.h)
Il IoWMIRegistrationControl routine registra o annulla la registrazione del chiamante come provider di dati WMI per un oggetto dispositivo specificato.
NTSTATUS IoWMIRegistrationControl(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG Action
);
[in] DeviceObject
Puntatore a un oggetto dispositivo. Questo oggetto è una struttura di sistema DEVICE_OBJECT.
[in] Action
Azione che DEVE essere eseguita da WMI. L'azione richiesta è indicata da uno dei valori seguenti.
Valore azione | Significato |
---|---|
WMIREG_ACTION_REGISTER | Specifica che WMI deve registrare il chiamante come provider WMI per DeviceObject. Ciò comporterà l'invio di un IRP_MN_REGINFO o di una richiesta di IRP_MN_REGINFO_EX al driver. |
WMIREG_ACTION_DEREGISTER | Specifica che WMI deve rimuovere il chiamante dall'elenco dei provider WMI per DeviceObject. |
WMIREG_ACTION_REREGISTER | Specifica che WMI deve annullare la registrazione del driver e quindi registrare (registrare nuovamente) il driver. La registrazione del driver comporta l'invio di una richiesta di IRP_MN_REGINFO o IRP_MN_REGINFO_EX al driver in WMI. |
WMIREG_ACTION_UPDATE_GUIDS | Specifica che WMI deve eseguire nuovamente una query sul driver per un nuovo elenco di identificatori GUID per cui fornisce i dati. Ciò comporterà l'invio di un IRP_MN_REGINFO o di una richiesta di IRP_MN_REGINFO_EX al driver. |
IoWMIRegistrationControl restituisce un codice di stato dall'elenco seguente:
Codice restituito | Descrizione |
---|---|
|
Indica che WMI ha completato l'azione richiesta senza errori. |
|
Indica che l'azione, specificata in 'azione, non è valida. |
|
Indica che la richiesta non è riuscita per il motivo specificato dal valore NTSTATUS. Per informazioni dettagliate sul codice restituito di stato effettivo, vedere Ntstatus.h. |
Dopo che un driver chiama IoWMIRegistrationControl, WMI invia al driver una richiesta di IRP_MN_REGINFO o IRP_MN_REGINFO_EX in modo che il driver possa fornire informazioni a WMI. Per altre informazioni, vedere Registrazione come provider di dati WMI.
Se il chiamante specifica WMIREG_ACTION_DEREGISTER per Action, IoWMIRegistrationControl blocca il thread chiamante fino al completamento di tutte le richieste di IRP_MJ_SYSTEM_CONTROL inviate in precedenza all'oggetto dispositivo specificato. In tal caso, se un driver chiama IoWMIRegistrationControl all'interno di una routine dispatch per una richiesta di IRP_MJ_SYSTEM_CONTROL, il thread chiamante verrà deadlock.
Se un dispositivo viene rimosso improvvisamente (ad esempio, in una rimozione a sorpresa), causando l'invio di un IRP_MN_SURPRISE_REMOVAL IRP, il driver deve chiamare IoWMIRegistrationControl e specificare WMIREG_ACTION_DEREGISTER in Action nella chiamata. Si noti che se il driver chiama IoWMIRegistrationControl con Action impostato su WMIREG_ACTION_DEREGISTER in risposta a un IRP IRP_MN_SURPRISE_REMOVAL, il driver non deve effettuare la stessa chiamata a IoWMIRegistrationControl in risposta a un IRP_MN_REMOVE_DEVICE IRP.
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 |
regole di conformità DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm) |