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 Windows. Anche se un provider di classi è installato in un computer specifico, può modificare le definizioni di classe in un'intera azienda. Pertanto, la maggior parte degli sviluppatori spesso non crea 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 è a modifica lenta e finito. In questo caso, non è necessario creare un provider di classi. È invece possibile inserire le definizioni di classe nel repository WMI usando l'API WMI o un file MOF.
La procedura seguente descrive come implementare un provider di classi.
Implementare un provider di classi
Determinare se il provider è di tipo push o pull.
Un provider di pull fornisce i 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 ulteriori informazioni, consultare Determinazione dello stato di push o pull.
Progetta e registra il tuo provider di classi con WMI.
I provider di classi si registrano con WMI creando un'istanza di __Win32Provider e un'istanza di __ClassProviderRegistration. Per ulteriori informazioni, vedere La registrazione di un fornitore di classi.
Implementare l'interfaccia IWbemProviderInit per il provider.
WMI usa IWbemProviderInit per caricare e inizializzare un provider. Se si progetta un provider di push, IWbemProviderInit è l'unica interfaccia che verrà implementata. Per altre informazioni, vedere Inizializzazione di un provider.
Nota
I provider di classi sono fortemente invitati a usare il modello di multithreading "Both".
Aggiungere qualsiasi codice aggiuntivo necessario per il proprio provider.
Quando si progetta il provider, è molto probabile che sia necessario chiamare interfacce WMI. Per altre informazioni, vedere Chiamare un metodo e Mantenere i 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 ulteriori informazioni, vedere Impersonificazione di un cliente.
Implementare l'interfaccia IWbemServices per il tuo provider.
L'interfacciaIWbemServicesè l'interfaccia principale per un provider di classi pull. Per altre informazioni, vedere Implementazione dell'interfaccia primaria per un provider di classi.
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.