Registrando-se como um provedor de dados WMI
Um driver que dá suporte ao WMI deve se registrar como um provedor de dados WMI para disponibilizar seus dados e blocos de eventos para clientes WMI. Um driver normalmente se registra com wmi ao iniciar seu dispositivo, depois que o dispositivo é inicializado a ponto de o driver pode lidar com IRPs WMI. Durante o processo de registro, o driver passa ao WMI um ponteiro para o objeto do dispositivo e informações sobre os dados e os blocos de eventos aos quais ele dá suporte.
Um driver é registrado no WMI em duas fases:
O driver chama IoWMIRegistrationControl com a ação WMIREG_ACTION_REGISTER e um ponteiro para o objeto de dispositivo passado para a rotina AddDevice do driver.
O driver lida com a solicitação IRP_MN_REGINFO ou IRP_MN_REGINFO_EX que o WMI envia em resposta à chamada IoWMIRegistrationControl do driver. O membro Parameters.WMI.DataPath do IRP é definido como WMIREGISTER e Parameters.WMI.ProviderId é definido como o ponteiro do objeto do dispositivo do driver. O driver fornece ao WMI informações de registro sobre seus blocos de dados e eventos, usando a Biblioteca WMI conforme descrito em Usando a biblioteca WMI para registrar blocos ou manipulando as solicitações de IRP_MN_REGINFO ou IRP_MN_REGINFO_EX conforme descrito em Manipulando IRP_MN_REGINFO e IRP_MN_REGINFO_EX para registrar blocos.