Compartir a través de


Inicialización de un proveedor

Una de las primeras tareas que debe codificar para un proveedor es el proceso de inicialización, que cubre las tareas que el proveedor debe realizar que le permita enviar y recibir información de WMI, controlar un objeto administrado y realizar otras tareas. Cada tipo de proveedor tiene un conjunto diferente de tareas que debe realizar y tiene un conjunto complementario de interfaces únicas.

Sin embargo, todos los proveedores inicializan a través de la interfaz IWbemProviderInit e informan al WMI de su estado de inicialización a través de la interfaz IWbemProviderInitSink .

En el procedimiento siguiente se describe cómo inicializar un proveedor.

Para inicializar un proveedor

  1. Implemente IWbemProviderInit::Initialize para el proveedor.

    Cuando WMI determina que un cliente requiere los servicios de un proveedor, WMI carga el proveedor llamando al método IWbemProviderInit::Initialize .

  2. Implemente cualquier interfaz única para el tipo de proveedor.

  3. Informe a WMI de que el proveedor ha terminado con la inicialización llamando a IWbemProviderInitSink::SetStatus.

    Todas las implementaciones de IWbemProviderInit::Initialize deben llamar a IWbemProviderInitSink::SetStatus para notificar el estado de inicialización a WMI. El método SetStatus permite a WMI determinar si un proveedor está listo para recibir solicitudes y el tipo de solicitudes que el proveedor está listo para recibir.

En el procedimiento siguiente se describe cómo notificar una inicialización correcta.

Para notificar una inicialización correcta

  • Establezca el parámetro IStatus de SetStatus en WBEM_S_INITIALIZED.

    Al devolver WBEM_S_INITIALIZED, un proveedor indica que está listo para gestionar las solicitudes de aplicaciones, WMI y otros proveedores. Después de recibir WBEM_S_INITIALIZED, WMI realiza una llamada al método IWbemProviderInit::QueryInterface en el proveedor. Esta consulta recupera un puntero a la interfaz principal del proveedor.

En el procedimiento siguiente se describe cómo notificar un error durante la inicialización.

Para notificar un error durante la inicialización

  • Establezca el parámetro IStatus de SetStatus a WBEM_E_FAILED. WMI considera a los proveedores de vistas que devuelven WBEM_E_FAILED como no funcionales.

    WMI libera el puntero IWbemProviderInit después de que WMI haya obtenido un puntero a la interfaz principal del proveedor o después de que se haya producido un error en la inicialización.

Desarrollar un proveedor WMI

Establecer descriptores de seguridad de espacio de nombres

Protección del proveedor