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.
Temas relacionados