Condividi tramite


Registrazione di un provider di High-Performance

Analogamente ad altri provider di istanze, si registra un provider ad alte prestazioni con Strumentazione gestione Microsoft Windows (WMI) creando un'istanza delle classi __Win32Provider e __InstanceProviderRegistration. L'istanza __Win32Provider definisce l'implementazione fisica del provider e l'istanza di __InstanceProviderRegistration definisce il set di funzionalità del provider. Per altre informazioni, vedere Registrazione di un provider.

La procedura seguente descrive come registrare un provider di istanze ad alte prestazioni.

Per registrare un fornitore di istanze ad alte prestazioni

  1. Creare un'istanza della classe __Win32Provider che descrive il provider.

    Assicurarsi di aggiungere una proprietà ClientLoadableCLSID all'istanza di __Win32Provider. Se il provider e il client si trovano nello stesso computer, WMI carica il provider in-process nel client usando ClientLoadableCLSID come identificatore di classe. Quando il provider e il client si trovano in computer diversi, WMI carica il provider in-process in WMI. WMI usa anche ClientLoadableCLSID per supportare le operazioni di aggiornamento.

  2. Creare un'istanza della classe __InstanceProviderRegistration che descrive il set di funzionalità del provider.

    Assicurarsi di contrassegnare la classe con i qualificatoriDynamic e provider. Il qualificatore Dynamic segnala che WMI deve usare un provider per recuperare le istanze della classe. Il qualificatore del provider specifica il nome del provider che dovrebbe essere utilizzato da WMI.

    Un provider ad alte prestazioni deve anche dichiarare il supporto per le operazioni, le operazioni di enumerazione o entrambe. Assicurarsi di usare le proprietà SupportsGet e SupportsEnumeration nell'implementazione.

Nell'esempio di codice seguente viene illustrato come implementare le classi __Win32Provider e __InstanceProviderRegistration per un provider ad alte prestazioni.

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[];
};

Trasformare un provider di istanze in un provider di High-Performance