Condividi tramite


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
STATUS_SUCCESS
Indica che WMI ha completato l'azione richiesta senza errori.
STATUS_INVALID_PARAMETER
Indica che l'azione, specificata in Action, non è valida.
STATUS_XXX
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)

Vedi anche

IRP_MN_REGINFO

IRP_MN_REGINFO_EX

IRP_MN_REMOVE_DEVICE

IRP_MN_SURPRISE_REMOVAL