API COM para WMI

Você pode usar a API COM (Component Object Model) do WMI para gravar aplicativos cliente de gerenciamento ou criar um novo provedor WMI. A referência de API COM fornece informações para administradores avançados do sistema, bem como desenvolvedores que estão gravando aplicativos cliente e provedor.

Para obter mais informações sobre como gravar aplicativos de gerenciamento corporativo WMI, consulte Criar um aplicativo WMI usando C++. Para obter mais informações sobre como gravar um provedor WMI, consulte Fornecer dados para o WMI.

Observação

O WMI só dá suporte ao desenvolvimento do C++ usando o Microsoft Visual C++ versão 6.0 e os sistemas de desenvolvimento posteriores. No entanto, você também pode usar outros compiladores, como os de Borland e Watcom.

 

Cada um dos diferentes objetos WMI herda de uma interface herdada da interface IUnknown. O COM determina como os implementadores de objetos, ou as interfaces, lidam com tarefas como gerenciamento de memória, gerenciamento de parâmetros e multithreading. Ao se adequar ao COM, a API COM para WMI garante que ela dê suporte à funcionalidade fornecida pelas interfaces de cada objeto WMI.

O WMI é acessado por meio destas interfaces COM específicas do WMI.

Interface Descrição
IEnumWbemClassObject Enumerador que funciona com objetos do tipo IWbemClassObject. É semelhante aos enumeradores COM padrão, como IEnumVariant.
IMofCompiler Implementada por Mofd.dll, essa interface fornece uma interface COM usada pelo compilador MOF e outros aplicativos que compilam arquivos MOF.
IUnsecuredApartment Usada para simplificar o processo de fazer chamadas assíncronas de um processo de cliente.
IWbemBackupRestore Faz backup e restaura o conteúdo do repositório WMI.
IWbemCallResult Usada para chamadas semissíncronas da interface IWbemServices. Ao fazer essas chamadas, o método chamado IWbemServices retorna imediatamente, juntamente com um objeto IWbemCallResult.
IWbemCausalityAnalysis Rastreia solicitações filho geradas a partir de uma solicitação pai.
IWbemClassObject Contém e manipulam definições de classe e instâncias de objeto de classe. Os desenvolvedores não precisam implementar essa interface; o WMI fornece sua implementação.
IWbemConfigureRefresher Usada pelo código do cliente para adicionar ou remover enumeradores, objetos e atualizadores aninhados em um atualizador.
IWbemContext Opcionalmente usada para comunicar informações de contexto adicionais aos provedores ao enviar chamadas IWbemServices ao Gerenciamento do Windows.
IWbemDecoupledBasicEventProvider Registra provedores separados com o WMI.
IWbemDecoupledRegistrar Associa provedores separados ao WMI. Essa interface permite que um provedor hospedado por processo defina o tempo de vida de interoperabilidade da interface e coexista com outros provedores.
IWbemEventConsumerProvider Fornece a interface primária para um provedor de consumidor de evento. Por meio dessa interface e do método FindConsumer, um provedor de consumidor de evento pode indicar de qual evento os consumidores devem receber um determinado evento.
IWbemEventProvider Usada para iniciar a comunicação com um provedor de evento.
IWbemEventProviderQuerySink Opcionalmente implementada por provedores de eventos que desejam saber quais tipos de filtros de consultas de eventos estão ativos no momento para otimizar o desempenho.
IWbemEventProviderSecurity Opcionalmente implementada por provedores de eventos que desejam restringir o acesso do consumidor ao evento.
IWbemEventSink Inicia a comunicação com um provedor de evento usando um conjunto restrito de consultas. Essa interface estende IWbemObjectSink, fornecendo novos métodos que lidam com segurança e desempenho.
IWbemHiPerfProvider Permite que os provedores forneçam objetos e enumeradores atualizáveis.
IWbemHiPerfEnum Usada em operações de atualização para fornecer acesso rápido a enumerações de objetos de instância.
IWbemLocator Obtém o ponteiro de namespace inicial para a interface IWbemServices do WMI em um computador host específico.
IWbemObjectAccess Fornece acesso a métodos e propriedades de um objeto. Um objeto IWbemObjectAccess é um contêiner de uma instância atualizada por um atualizador.
IWbemObjectSink Usada para receber os resultados de IWbemServices e determinados tipos de notificações de eventos.
IWbemObjectTextSrc Usada para converter instâncias IWbemClassObject em formatos de texto diferentes e a partir desses formatos.
IWbemPropertyProvider Dá suporte à recuperação e atualização de propriedades individuais em uma instância de uma classe WMI.
IWbemProviderIdentity Implementada por um provedor de eventos se o provedor se registrar usando mais de um Nome (várias instâncias de __Win32Provider) com o mesmo valor CLSID. A classe fornece um mecanismo para distinguir qual provedor nomeado deve ser usado.
IWbemProviderInit Usada para inicializar provedores.
IWbemProviderInitSink Implementada pelo WMI e chamada por provedores para relatar o status de inicialização.
IWbemQualifierSet Atua como um contêiner para todo o conjunto de qualificadores nomeados em uma única propriedade ou um objeto inteiro (uma classe ou instância).
IWbemQuery Fornece um ponto de entrada por meio do qual uma consulta WQL (Linguagem WQL) pode ser analisada.
IWbemRefresher Fornece um ponto de entrada por meio do qual objetos atualizáveis, como enumeradores ou objetos de atualização, podem ser atualizados.
IWbemServices Usada por clientes e provedores para acessar serviços WMI. A interface é implementada apenas pelo WMI e é a interface WMI primária.
IWbemStatusCodeText Extrai descrições de cadeia de texto de códigos de erro ou o nome do subsistema em que o erro ocorreu.
IWbemUnboundObjectSink Implementada por todos os consumidores de eventos lógicos. É uma interface de coletor simples que aceita a entrega de objetos de evento.

 

Observação

Muitas das funções COM do WMI retornam códigos de erro numéricos documentados como constantes nomeadas. Essas constantes são definidas em Wbemcli.h na pasta PSDK WMI\Include. Para obter mais informações, consulte Códigos de retorno do WMI.

 

Para obter mais informações sobre os seguintes tópicos para programação COM, consulte Desenvolvimento de componentes:

  • Interfaces e design de objeto.
  • Implementar IUnknown.
  • Gerenciamento de memória
  • Manipular a contagem de referências.

Referência do WMI