Manipulando solicitações WMI

Todos os drivers devem definir um ponto de entrada de tabela de expedição para uma rotina DispatchSystemControl para lidar com solicitações WMI. Se um driver se registrar como um provedor de dados WMI, ele deverá lidar com todas as solicitações WMI. Caso contrário, o driver deve encaminhar todas as solicitações WMI para o próximo driver inferior.

Todos os IRPs WMI têm o código principal IRP_MJ_SYSTEM_CONTROL e um dos seguintes códigos secundários:

O componente do modo kernel WMI envia IRPs WMI a qualquer momento após o registro bem-sucedido de um driver como um provedor de dados WMI, normalmente quando um consumidor de dados no modo de usuário solicita informações WMI para o dispositivo de um driver. Se um driver se registrar como um provedor de dados WMI chamando IoWMIRegistrationControl, ele deverá lidar com cada solicitação WMI subsequente de uma das seguintes maneiras:

  • Chame a rotina da biblioteca WMI no modo kernel WmiSystemControl. Um driver pode chamar WmiSystemControl para lidar com solicitações relacionadas apenas a blocos que não usam nomes de instância dinâmica e que baseiam nomes de instância estática em uma única cadeia de caracteres de nome base ou na ID da instância do dispositivo de um PDO. Para obter mais informações, consulte Chamando WmiSystemControl para lidar com IRPs WMI.

  • Em sua rotina DispatchSystemControl , processe e conclua qualquer solicitação marcada com o ponteiro para seu objeto de dispositivo que o driver passou em sua chamada para IoWMIRegistrationControl e encaminhe outras solicitações de IRP_MJ_SYSTEM_CONTROL para o próximo driver inferior. Para obter mais informações, consulte Processando IRPs WMI em uma rotina DispatchSystemControl.

Para obter uma lista dos IRPs secundários do WMI, consulte IRPs menores do WMI