Funzione IoWMIRegistrationControl (wdm.h)
La routine IoWMIRegistrationControl registra o annulla la registrazione del chiamante come provider di dati WMI per un oggetto dispositivo specificato.
Sintassi
NTSTATUS IoWMIRegistrationControl(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG Action
);
Parametri
[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 una richiesta di IRP_MN_REGINFO o di IRP_MN_REGINFO_EX al driver da parte di WMI. |
WMIREG_ACTION_DEREGISTER | Specifica che WMI deve rimuovere il chiamante dall'elenco di provider WMI per DeviceObject. |
WMIREG_ACTION_REREGISTER | Specifica che WMI deve annullare la registrazione del driver e quindi registrare (ripetere la registrazione) del 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 di nuovo una query sul driver per un nuovo elenco di identificatori GUID per cui fornisce i dati. Ciò comporterà l'invio di una richiesta di IRP_MN_REGINFO o di IRP_MN_REGINFO_EX al driver da parte di WMI. |
Valore restituito
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 Action, non è valida. |
|
Indica che la richiesta non è riuscita per il motivo specificato dal valore NTSTATUS. Per informazioni dettagliate sul codice restituito dello stato effettivo, vedere Ntstatus.h. |
Commenti
Dopo che un driver chiama IoWMIRegistrationControl, WMI invia al driver un IRP_MN_REGINFO o IRP_MN_REGINFO_EX richiesta 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 determina il blocco del thread chiamante fino al completamento di tutte le richieste 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 da parte del gestore PnP, il driver deve chiamare IoWMIRegistrationControl e specificare WMIREG_ACTION_DEREGISTER in Azione nella chiamata. Si noti che se il driver chiama IoWMIRegistrationControl con Action impostato su WMIREG_ACTION_DEREGISTER in risposta a un IRP_MN_SURPRISE_REMOVAL IRP, il driver non deve effettuare la stessa chiamata a IoWMIRegistrationControl in risposta a un IRP_MN_REMOVE_DEVICE IRP.
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 |
Regole di conformità DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm) |