Registrar um provedor de alto desempenho
Como outros provedores de instância, você registra um provedor de alto desempenho com o WMI (Instrumentação de Gerenciamento do Microsoft Windows) criando uma instância das classes __Win32Provider e __InstanceProviderRegistration . A instância __Win32Provider define a implementação física do provedor e a instância __InstanceProviderRegistration define o conjunto de recursos do provedor. Para obter mais informações, consulte Registrar um provedor.
O procedimento a seguir descreve como registrar um provedor de instância de alto desempenho.
Para registrar um provedor de instância de alto desempenho
Crie uma instância da classe __Win32Provider que descreve o provedor.
Adicione uma propriedade ClientLoadableCLSID à instância __Win32Provider. Se o provedor e o cliente residirem no mesmo computador, o WMI carrega o provedor em processo no cliente usando ClientLoadableCLSID como identificador de classe. Quando o provedor e o cliente residem em computadores diferentes, o WMI carregará o provedor em processo no próprio WMI. O WMI também usa o ClientLoadableCLSID para dar suporte a operações de atualização.
Crie uma instância da classe __InstanceProviderRegistration que descreve o conjunto de recursos do provedor.
Certifique-se de marcar a classe com os qualificadores Dynamic e Provider. O qualificador Dynamic sinaliza que o WMI deve usar um provedor para recuperar as instâncias de classe. O qualificador Provider especifica o nome do provedor que o WMI deve usar.
Um provedor de alto desempenho também precisa declarar suporte a operações, operações de enumeração ou ambas. Use as propriedades SupportsGet e SupportsEnumeration em sua implementação.
O exemplo de código a seguir mostra como implementar as classes __Win32Provider e __InstanceProviderRegistration para um provedor de alto desempenho.
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[];
};
Tópicos relacionados