API COM para WMI
Você pode usar a API COM (Component Object Model) do WMI para escrever aplicativos cliente de gerenciamento ou criar um novo provedor de WMI. A referência da API COM fornece informações para administradores de sistema avançados, bem como desenvolvedores que estão escrevendo aplicativos cliente e provedor.
Para obter mais informações sobre como escrever aplicativos de gerenciamento empresarial WMI, consulte Criando um aplicativo WMI usando C++. Para obter mais informações sobre como escrever um provedor WMI, consulte Fornecendo dados ao WMI.
Observação
O WMI suporta apenas o desenvolvimento em C++ usando o Microsoft Visual C++ versão 6.0 e sistemas de desenvolvimento posteriores. No entanto, você também pode usar outros compiladores, como os da Borland e Watcom.
Cada um dos diferentes objetos WMI herda de uma interface herdada da interfaceIUnknown. O COM dita como os implementadores de objetos, ou interfaces, lidam com tarefas como gerenciamento de memória, gerenciamento de parâmetros e multithreading. Em conformidade com COM, a API COM para WMI garante que suporta a funcionalidade fornecida pelas interfaces de cada objeto WMI.
O WMI é acessado através das seguintes interfaces COM específicas do WMI.
Interface | Descrição |
---|---|
IEnumWbemClassObject | Enumerador que trabalha com objetos do tipo IWbemClassObject. É semelhante aos enumeradores COM padrão, como IEnumVariant. |
IMofCompiler | Implementada por Mofd.dll, esta interface fornece uma interface COM que é usada pelo compilador MOF e quaisquer outros aplicativos que compilam arquivos MOF. |
IUnsecuredApartment | Usado 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 | Usado para chamadas de semissíncronas da interfaceIWbemServices. Ao fazer essas chamadas, o método chamado IWbemServices retorna imediatamente, juntamente com um objeto IWbemCallResult. |
IWbemCausalityAnalysis | Rastreia solicitações de filho geradas a partir de uma solicitação pai. |
IWbemClassObject | Contém e manipula definições de classe e instâncias de objeto de classe. Os desenvolvedores não precisam implementar essa interface; WMI fornece a sua implementação. |
IWbemConfigureRefresher | Usado pelo código do cliente para adicionar ou remover enumeradores, objetos e atualizações aninhadas em uma atualização. |
IWbemContext | Opcionalmente, usado para comunicar informações de contexto adicionais aos provedores ao enviar IWbemServices chamadas para o Gerenciamento do Windows. |
IWbemDecoupledBasicEventProvider | Registra provedores dissociados com WMI. |
IWbemDecoupledRegistrar | Associa provedores dissociados com 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 principal para um provedor consumidor de eventos. Por meio dessa interface e do método FindConsumer, um provedor de consumidor de evento pode indicar qual evento os consumidores devem receber um determinado evento. |
IWbemEventProvider | Usado para iniciar a comunicação com um provedor de eventos. |
IWbemEventProviderQuerySink | Opcionalmente, implementado por provedores de eventos que desejam saber quais tipos de filtros de consulta de eventos estão ativos no momento para otimizar o desempenho. |
IWbemEventProviderSecurity | Opcionalmente implementado por provedores de eventos que desejam restringir o acesso do consumidor ao seu evento. |
IWbemEventSink | Inicia a comunicação com um provedor de eventos usando um conjunto restrito de consultas. Esta interface estende-se 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 | Usado 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 interfaceIWbemServices para WMI em um computador host específico. |
IWbemObjectAccess | Fornece acesso aos métodos e propriedades de um objeto. Um objeto IWbemObjectAccess é um contêiner para uma instância atualizada por umde atualização de. |
IWbemObjectSink | Usado para receber os resultados de IWbemServices e certos tipos de notificações de eventos. |
IWbemObjectTextSrc | Usado para traduzir IWbemClassObject instâncias de e para diferentes formatos de texto. |
IWbemPropertyProvider | Suporta a recuperação e atualização de propriedades individuais em uma instância de uma classe WMI. |
IWbemProviderIdentity | Implementado por um provedor de eventos se o provedor se registrar usando mais de um Name (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 | Usado para inicializar provedores. |
IWbemProviderInitSink | Implementado pelo WMI e chamado pelos provedores para relatar o status de inicialização. |
IWbemQualifierSet | Atua como um contêiner para todo o conjunto de qualificadores nomeados para uma única propriedade ou objeto inteiro (uma classe ou instância). |
IWbemQuery | Fornece um ponto de entrada através do qual uma consulta WQL (WMI Query Language) pode ser analisada. |
IWbemRefresher | Fornece um ponto de entrada através do qual objetos atualizáveis, como enumeradores ou objetos de atualização, podem ser atualizados. |
IWbemServices | Usado 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 caracteres de texto de códigos de erro ou o nome do subsistema onde o erro ocorreu. |
IWbemUnboundObjectSink | Implementado 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 WMI COM retornam códigos de erro numéricos que são 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 WMI.
Para obter mais informações sobre os seguintes tópicos para programação COM, consulte Component Development:
- Interfaces e design de objetos.
- Implementação IUnknown.
- Gestão de memória
- Manipulação da contagem de referências.
Tópicos relacionados