Determinación del estado de inserción o extracción

Puede modelar un proveedor de clases como proveedor de inserción o extracción, lo cual especifica cómo un proveedor espera interactuar con WMI. Los proveedores de extracción reciben una solicitud de WMI y satisfacen la solicitud generando los datos dinámicamente o recuperandolos de una caché local. Los proveedores de extracción también deben implementar un gran número de interfaces.

Un proveedor de extracción genera definiciones de clase dinámicamente. Normalmente, los datos administrados por un proveedor de extracción cambian con frecuencia, lo que requiere que el proveedor genere la clase dinámicamente o recupere la clase de una caché local cada vez que una aplicación emite una solicitud. Un proveedor de extracción debe implementar sus propios mecanismos de recuperación, almacenamiento en caché y notificación de eventos. Dado que la mayoría de los proveedores son proveedores de extracción, en la documentación de este archivo se supone que está creando un proveedor de extracción a menos que se indique explícitamente lo contrario.

Por el contrario, WMI usa datos del repositorio de WMI para controlar todas las solicitudes de aplicación de los proveedores de inserción. Los proveedores de inserción también usan menos métodos de interfaz y, por tanto, son más fáciles de implementar. Un proveedor de inserción usa el repositorio de WMI como área de almacenamiento para obtener información sobre el objeto administrado y actualiza esa información solo durante la inicialización. Por ejemplo, el proveedor de clases WDM incluido en la sección WMI del Kit de desarrollo de software (SDK) de Microsoft Windows se modela como proveedor de inserción.

Mediante el uso del repositorio de WMI como área de almacenamiento, un proveedor de inserción presenta las siguientes ventajas sobre un proveedor de extracción:

  • El proveedor no necesita implementar una caché local para almacenar datos.
  • El proveedor no necesita admitir la recuperación de datos; en su lugar, el proveedor puede confiar en WMI para proporcionar compatibilidad con la recuperación.
  • Cuando una aplicación solicita datos que proporciona el proveedor, WMI cumple esa solicitud.
  • El proveedor también puede confiar en WMI para admitir la notificación de eventos.

Sin embargo, dado que un proveedor de inserción solo se actualiza durante la inicialización, es posible que los cambios en una clase no se reflejen en el repositorio de WMI durante algún tiempo. Por lo tanto, el modelo de proveedor de inserción funciona mejor con clases que cambian poco o incluso que son completamente estáticas.