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 permitan 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 un conjunto complementario de interfaces únicas.

Sin embargo, todos los proveedores se inicializan mediante la interfaz IWbemProviderInit e informan a WMI de su estado de inicialización con la interfaz IWbemProviderInitSink.

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

Para inicializar un proveedor

  1. Implemente IWbemProviderInit::Initialize para su 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 informar de una inicialización correcta

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

    Al devolver WBEM_S_INITIALIZED, un proveedor indica una preparación para controlar 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 en WBEM_E_FAILED. Proveedores de vistas de WMI que devuelven WBEM_E_FAILED cuando no funcionan.

    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.

Desarrollo de un proveedor WMI

Establecer descriptores de seguridad del espacio de nombres

Protección del proveedor