API COM para WMI

Puede usar la API Component Object Model (COM) de WMI para escribir aplicaciones cliente de administración o crear un nuevo proveedor de WMI. La referencia de API COM proporciona información para administradores avanzados del sistema, así como para desarrolladores que escriben aplicaciones cliente y proveedor.

Para más información sobre cómo escribir aplicaciones de administración empresarial de WMI, consulte Creación de una aplicación de WMI mediante C++. Para más información sobre cómo escribir un proveedor de WMI, consulte Proporcionar datos a WMI.

Nota

WMI solo admite el desarrollo con C++ mediante Microsoft Visual C++ versión 6.0 y sistemas de desarrollo posteriores. Sin embargo, también puede usar otros compiladores como los de Borland y Watcom.

 

Cada uno de los distintos objetos de WMI hereda de una interfaz heredada en última instancia de la interfaz IUnknown. COM determina cómo los implementadores de objetos, o las interfaces, controlan tareas como la administración de memoria, la administración de parámetros y el multithreading. Al guardar conformidad con COM, la API COM para WMI garantiza que admita la funcionalidad proporcionada por las interfaces de cada objeto WMI.

Se accede a WMI mediante las siguientes interfaces COM específicas de WMI.

Interfaz Descripción
IEnumWbemClassObject Enumerador que funciona con objetos de tipo IWbemClassObject. Es similar a los enumeradores COM estándar, como IEnumVariant.
IMofCompiler Implementada por Mofd.dll, esta interfaz proporciona una interfaz COM que usa el compilador MOF y cualquier otra aplicación que compile archivos MOF.
IUnsecuredApartment Se usa para simplificar el proceso de hacer llamadas asincrónicas desde un proceso de cliente.
IWbemBackupRestore Realiza una copia de seguridad del repositorio WMI y lo restaura.
IWbemCallResult Se usa para llamadas semisincrónicas de la interfaz IWbemServices. Al hacer estas llamadas, el método IWbemServices devuelve inmediatamente resultados, junto con un objeto IWbemCallResult.
IWbemCausalityAnalysis Realiza un seguimiento de las solicitudes secundarias que se generan a partir de una solicitud principal.
IWbemClassObject Contiene y manipula las definiciones de clase y las instancias de objeto de clase. Los desarrolladores no necesitan implementar esta interfaz, puesto que ya la implementa WMI.
IWbemConfigureRefresher Se usa en el código de cliente para agregar o quitar enumeradores, objetos y actualizadores anidados en un actualizador.
IWbemContext Opcionalmente se usa para comunicar información de contexto adicional a los proveedores al enviar llamadas de IWbemServices a la administración de Windows.
IWbemDecoupledBasicEventProvider Registra proveedores desacoplados con WMI.
IWbemDecoupledRegistrar Asocia proveedores desacoplados con WMI. Esta interfaz permite a un proveedor hospedado por procesos definir la duración de la interoperabilidad de la interfaz y coexistir con otros proveedores.
IWbemEventConsumerProvider Proporciona la interfaz principal para un proveedor de consumidores de eventos. Mediante esta interfaz y el método FindConsumer, un proveedor de consumidores de eventos puede indicar qué consumidores de eventos deben recibir un evento determinado.
IWbemEventProvider Se usa para iniciar la comunicación con un proveedor de eventos.
IWbemEventProviderQuerySink Opcionalmente, la implementan los proveedores de eventos que quieren saber qué tipos de filtros de consulta de eventos están activos actualmente para optimizar el rendimiento.
IWbemEventProviderSecurity Opcionalmente, la implementan los proveedores de eventos que quieren restringir el acceso del consumidor a su evento.
IWbemEventSink Inicia la comunicación con un proveedor de eventos mediante un conjunto restringido de consultas. Esta interfaz amplía IWbemObjectSink, lo que proporciona nuevos métodos que tratan sobre la seguridad y el rendimiento.
IWbemHiPerfProvider Permite a los proveedores proporcionar objetos y enumeradores actualizables.
IWbemHiPerfEnum Se usa en las operaciones del actualizador para proporcionar acceso rápido a las enumeraciones de objetos de instancia.
IWbemLocator Obtiene el puntero del espacio de nombres inicial a la interfaz IWbemServices para WMI en un equipo host específico.
IWbemObjectAccess Proporciona acceso a los métodos y propiedades de un objeto. Un objeto IWbemObjectAccess es un contenedor de una instancia actualizada por un actualizador.
IWbemObjectSink Se usa para recibir los resultados de IWbemServices y determinados tipos de notificaciones de eventos.
IWbemObjectTextSrc Se usa para traducir instancias de IWbemClassObject a y desde formatos de texto diferentes.
IWbemPropertyProvider Admite la recuperación y actualización de propiedades individuales en una instancia de una clase WMI.
IWbemProviderIdentity La implementa un proveedor de eventos si el proveedor se registra usando más de un nombre (varias instancias de __Win32Provider) con el mismo valor de CLSID. La clase proporciona un mecanismo para distinguir qué proveedor con nombre se debe usar.
IWbemProviderInit Se usa para inicializar proveedores.
IWbemProviderInitSink WMI la implementa y los proveedores la llaman para notificar el estado de inicialización.
IWbemQualifierSet Actúa como contenedor del conjunto de calificadores con nombre para una sola propiedad o un objeto completo (una clase o instancia).
IWbemQuery Proporciona un punto de entrada mediante el cual se puede analizar una consulta del lenguaje de consulta WMI (WQL).
IWbemRefresher Proporciona un punto de entrada mediante el cual se pueden actualizar objetos actualizables, como enumeradores u objetos de actualizador.
IWbemServices La usan los clientes y proveedores para acceder a servicios de WMI. Solo WMI implementa la interfaz y es la interfaz de WMI principal.
IWbemStatusCodeText Extrae descripciones de cadena de texto de códigos de error o el nombre del subsistema donde se produjo el error.
IWbemUnboundObjectSink La implementan todos los consumidores de eventos lógicos. Es una interfaz de receptor simple que acepta la entrega de objetos de evento.

 

Nota

Muchas de las funciones de COM para WMI devuelven códigos de error numéricos que se documentan como constantes con nombre. Estas constantes se definen en Wbemcli.h en la carpeta PSDK WMI\Include. Para más información, consulte Códigos de retorno de WMI.

 

Para más información sobre los temas siguientes de la programación con COM, consulte Desarrollo de componentes:

  • Interfaces y diseño de objetos.
  • Implementación de IUnknown.
  • Administración de memoria
  • Control del recuento de referencias.

Referencia de WMI