Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 Registrando 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 descrevendo o provedor.
Certifique-se de adicionar uma propriedade ClientLoadableCLSID à instância __Win32Provider. Se o provedor e o cliente residirem no mesmo computador, o WMI carregará o provedor em processo para o cliente usando ClientLoadableCLSID como o identificador de classe. Quando o provedor e o cliente residem em computadores diferentes, o WMI carrega o provedor em processo para o WMI. O WMI também usa 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 etiquetar a classe com os qualificadores Dinâmico e Provedor. O qualificador Dynamic sinaliza que o WMI deve usar um provedor para recuperar as instâncias de classe. O qualificador Provedor especifica o nome do provedor que o WMI deve usar.
Um provedor de alto desempenho também precisa declarar suporte para operações, operações de enumeração ou ambas. Certifique-se de usar as propriedades SupportsGet e SupportsEnumeration na 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