Função IoWMIRegistrationControl (wdm.h)
A rotina IoWMIRegistrationControl registra ou cancela o registro do chamador como um provedor de dados WMI para um objeto de dispositivo especificado.
Sintaxe
NTSTATUS IoWMIRegistrationControl(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG Action
);
Parâmetros
[in] DeviceObject
Um ponteiro para um objeto de dispositivo. Esse objeto é uma estrutura do sistema DEVICE_OBJECT .
[in] Action
A ação que o WMI deve executar. A ação solicitada é indicada por um dos valores a seguir.
Valor da ação | Significado |
---|---|
WMIREG_ACTION_REGISTER | Especifica que o WMI deve registrar o chamador como um provedor WMI para DeviceObject. Isso resultará no envio de uma solicitação de IRP_MN_REGINFO ou IRP_MN_REGINFO_EX para o driver. |
WMIREG_ACTION_DEREGISTER | Especifica que o WMI deve remover o chamador de sua lista de provedores WMI para DeviceObject. |
WMIREG_ACTION_REREGISTER | Especifica que o WMI deve cancelar o registro do driver e registrar (registrar novamente) o driver. Registrar novamente o driver resulta no envio de uma solicitação de IRP_MN_REGINFO ou IRP_MN_REGINFO_EX ao driver. |
WMIREG_ACTION_UPDATE_GUIDS | Especifica que o WMI deve consultar novamente o driver para obter uma nova lista de identificadores GUID para os quais ele fornece dados. Isso resultará no envio de uma solicitação de IRP_MN_REGINFO ou IRP_MN_REGINFO_EX para o driver. |
Retornar valor
IoWMIRegistrationControl retorna um código status da seguinte lista:
Código de retorno | Descrição |
---|---|
|
Indica que o WMI concluiu a ação solicitada sem erros. |
|
Indica que a ação, especificada em Ação, era inválida. |
|
Indica que a solicitação falhou pelo motivo especificado pelo valor NTSTATUS. Consulte Ntstatus.h para obter informações detalhadas sobre o código de retorno de status real. |
Comentários
Depois que um driver chama IoWMIRegistrationControl, o WMI envia ao driver uma solicitação de IRP_MN_REGINFO ou IRP_MN_REGINFO_EX para que o driver possa fornecer informações ao WMI. Para obter mais informações, consulte Registrando-se como um provedor de dados WMI.
Se o chamador especificar WMIREG_ACTION_DEREGISTER para Action, IoWMIRegistrationControl fará com que o thread de chamada seja bloqueado até que todas as solicitações IRP_MJ_SYSTEM_CONTROL que foram enviadas anteriormente para o objeto de dispositivo especificado tenham sido concluídas. Nesse caso, se um driver chamar IoWMIRegistrationControl dentro de uma rotina de expedição para uma solicitação de IRP_MJ_SYSTEM_CONTROL , o thread de chamada será deadlock.
Se um dispositivo for removido repentinamente (por exemplo, em uma remoção surpresa), fazendo com que o gerenciador PnP envie um IRP_MN_SURPRISE_REMOVAL IRP, o driver deverá chamar IoWMIRegistrationControl e especificar WMIREG_ACTION_DEREGISTER em Ação na chamada. Observe que, se o driver chamar IoWMIRegistrationControl com Action definido como WMIREG_ACTION_DEREGISTER em resposta a um IRP IRP_MN_SURPRISE_REMOVAL , o driver não deverá fazer a mesma chamada para IoWMIRegistrationControl em resposta a um IRP IRP_MN_REMOVE_DEVICE .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Regras de conformidade da DDI | HwStorPortProhibitedDDIs(storport), IrqlIoPassive5(wdm), LowerDriverReturn(wdm), PowerIrpDDis(wdm) |