Inscription d’un fournisseur de High-Performance
Comme d’autres fournisseurs de instance, vous inscrivez un fournisseur hautes performances auprès de Microsoft Windows Management Instrumentation (WMI) en créant une instance des classes __Win32Provider et __InstanceProviderRegistration. Le __Win32Provider instance définit l’implémentation physique du fournisseur et le __InstanceProviderRegistration instance définit l’ensemble de fonctionnalités du fournisseur. Pour plus d’informations, consultez Inscription d’un fournisseur.
La procédure suivante décrit comment inscrire un fournisseur de instance hautes performances.
Pour inscrire un fournisseur de instance hautes performances
Créez un instance de la classe __Win32Provider qui décrit le fournisseur.
Veillez à ajouter une propriété ClientLoadableCLSID au instance __Win32Provider. Si le fournisseur et le client résident sur le même ordinateur, WMI charge le fournisseur en cours de traitement sur le client à l’aide de ClientLoadableCLSID comme identificateur de classe. Lorsque le fournisseur et le client résident sur des ordinateurs différents, WMI charge le fournisseur en cours de traitement sur WMI. WMI utilise également ClientLoadableCLSID pour prendre en charge les opérations d’actualisation.
Créez une instance de la classe __EventProviderRegistration qui décrit l’ensemble de fonctionnalités du fournisseur.
Veillez à étiqueter la classe avec les qualificateurs Dynamic et Provider. Le qualificateur Dynamic indique que WMI doit utiliser un fournisseur pour récupérer les instances de classe. Le qualificateur Provider spécifie le nom du fournisseur que WMI doit utiliser.
Un fournisseur hautes performances doit également indiquer la prise en charge des opérations, des opérations d’énumération ou des deux. Veillez à utiliser les propriétés SupportsGet et SupportsEnumeration dans votre implémentation.
L’exemple de code suivant montre comment implémenter les classes __Win32Provider et __InstanceProviderRegistration pour un fournisseur hautes performances.
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[];
};
Rubriques connexes