Introdução ao WMI para drivers KMDF

[Aplica-se somente ao KMDF]

Kernel-Mode Driver Framework dá suporte a drivers que fornecem informações para a WMI ( Instrumentação de Gerenciamento do Windows ). Esses drivers são chamados de provedores de dados WMI porque fornecem dados para clientes WMI, que são aplicativos que se registraram para receber informações do WMI.

Os provedores de dados WMI dão suporte a blocos de dados WMI, que podem representar um ou mais dos seguintes:

  • Itens de dados, que contêm dados específicos do dispositivo que um driver envia ou recebe de um cliente WMI.

  • Métodos (funções) que o driver executa em nome de um cliente WMI.

  • Eventos que o driver envia para clientes WMI que se registraram para receber notificação de eventos específicos do dispositivo.

Os blocos de dados WMI são especificados como classes WMI em arquivos .mof. Cada bloco de dados WMI é identificado por um GUID.

Todos os drivers devem dar suporte a quaisquer blocos de dados WMI padrão definidos pelo WMI para sua classe de dispositivo. Esses blocos de dados WMI são definidos em Wmicore.mof.

Seu driver também pode dar suporte a blocos de dados WMI definidos em um arquivo .mof. Para saber como definir e publicar blocos de dados WMI personalizados, confira as seguintes seções:

Objetos WMI de estrutura e funções de retorno de chamada

A estrutura define dois objetos que os drivers podem usar para implementar provedores de dados WMI. O objeto do provedor WMI representa o esquema para blocos de dados WMI fornecidos pelo driver. O objeto de instância WMI representa uma instância de um bloco de dados associado a um provedor específico. Os drivers se comunicam com clientes WMI implementando as seguintes funções de retorno de chamada de evento que esses dois objetos definem:

EvtWmiProviderFunctionControl
Habilita e desabilita o suporte do driver para coletar dados WMI e enviar eventos WMI.

EvtWmiInstanceQueryInstance
Fornece dados de instância de um provedor WMI para um cliente WMI.

EvtWmiInstanceSetInstance e EvtWmiInstanceSetItem
Defina informações no bloco de dados de um driver como valores fornecidos pelo cliente.

EvtWmiInstanceExecuteMethod
Executa um método fornecido pelo driver, a pedido de um cliente.

Drivers de exemplo que implementam wmi

Os drivers de exemplo FIREFLY, PCIDRV e Toaster são provedores de dados WMI.