Share via


Scrittura di un provider di classi

Un provider di classi gestisce una classe o una serie di classi per WMI. Un provider di classi può essere push o pull; ovvero, può archiviare i propri dati o consentire a WMI di archiviare i dati nel servizio di gestione di Windows. Anche se un provider di classi è installato in un computer specifico, può modificare le definizioni di classe in un'intera organizzazione. Pertanto, la maggior parte degli sviluppatori non crea spesso provider di classi.

Prima di costruire un provider di classi, verificare che le classi supportate siano effettivamente generate in modo dinamico. Nella maggior parte dei casi, l'elenco delle classi è lento e finito. In questo caso, non è necessario creare un provider di classi. È invece possibile inserire le definizioni della classe nel repository WMI usando l'API WMI o un file MOF.

La procedura seguente descrive come implementare un provider di classi.

Per implementare un provider di classi

  1. Determinare se il provider è un provider push o pull.

    Un provider pull fornisce dati in modo dinamico in risposta a una richiesta di applicazione, mentre i provider di push archiviano i dati una volta nel repository WMI. Per altre informazioni, vedere Determinazione dello stato push o pull.

  2. Progettare e registrare il provider di classi con WMI.

    I provider di classi si registrano con WMI creando un'istanza __Win32Provider e un'istanza di __ClassProviderRegistration . Per altre informazioni, vedere Registrazione di un provider di classi.

  3. Implementare l'interfaccia IWbemProviderInit per il provider.

    WMI usa IWbemProviderInit per caricare e inizializzare un provider. Se si progetta un provider push, IWbemProviderInit è l'unica interfaccia implementata. Per altre informazioni, vedere Inizializzazione di un provider.

    Nota

    I provider di classi sono fortemente invitati a usare il modello di multithreading "Entrambi".

     

  4. Aggiungere qualsiasi codice aggiuntivo necessario per il provider.

    Quando si progetta il provider, è più probabile che sia necessario chiamare interfacce WMI. Per altre informazioni, vedere Chiamata di un metodo e gestione dei livelli di sicurezza in un provider.

    Quando si recuperano informazioni per un client, potrebbe essere necessario accedere ai livelli di sicurezza per tale client. Per altre informazioni, vedere Rappresentazione di un client.

  5. Implementare l'interfaccia IWbemServices per il provider.

    L'interfaccia IWbemServices è l'interfaccia primaria per un provider di classi pull. Per altre informazioni, vedere Implementazione dell'interfaccia primaria per un provider di classi.

  6. Sostituire il provider preesistente con il nuovo codice.

    Non è necessario eseguire questo passaggio se non si dispone di un provider preesistente da copiare. Per altre informazioni, vedere Aggiornamento di un provider.