Registro de un proveedor de alto rendimiento
Al igual que otros proveedores de instancias, se registra un proveedor de alto rendimiento con Instrumental de administración de Windows (WMI) de Microsoft mediante la creación de una instancia de las clases __Win32Provider y __InstanceProviderRegistration. La instancia de __Win32Provider define la implementación física del proveedor y la instancia de __InstanceProviderRegistration define el conjunto de características del proveedor. Para más información, consulte Registro de un proveedor.
En el procedimiento siguiente se describe cómo registrar un proveedor de instancias de alto rendimiento.
Para registrar un proveedor de instancias de alto rendimiento
Cree una instancia de la clase __Win32Provider que describa el proveedor.
Asegúrese de agregar una propiedad ClientLoadableCLSID a la instancia de __Win32Provider. Si el proveedor y el cliente se encuentran en el mismo equipo, WMI carga el proveedor en proceso en el cliente con ClientLoadableCLSID como identificador de clase. Cuando el proveedor y el cliente se encuentran en equipos distintos, WMI carga el proveedor en proceso en WMI. WMI también usa ClientLoadableCLSID para admitir operaciones de actualización.
Cree una instancia de la clase __InstanceProviderRegistration que describa el conjunto de características del proveedor.
Asegúrese de etiquetar la clase con los calificadores Dynamic y Provider. El calificador Dynamic indica que WMI debe usar un proveedor para recuperar las instancias de clase. El calificador Provider especifica el nombre del proveedor que WMI debe usar.
Un proveedor de alto rendimiento también necesita admitir operaciones, operaciones de enumeración o ambas. Asegúrese de usar las propiedades SupportsGet y SupportsEnumeration en la implementación.
En el ejemplo de código siguiente se muestra cómo implementar las clases __Win32Provider y __InstanceProviderRegistration para un proveedor de alto rendimiento.
instance of __Win32Provider as $P
{
Name="TestProv";
CLSID="{A41602A4-C038-11d1-AEB6-00C04FB68820}";
ClientLoadableCLSID="{423B32C9-B033-4242-EFB6-55C044242821}";
};
instance of __InstanceProviderRegistration
{
Provider = $P;
SupportsGet = TRUE;
SupportsEnumeration = TRUE;
};
[ dynamic,
provider("TestProv")
]
class TestClass
{
[key] string KeyVal;
string StrVal1;
sint32 IntVal1;
sint32 IntVal2;
sint32 IntArray2[];
};
Temas relacionados