Sviluppo di un provider WMI
Un provider è un oggetto Component Object Model (COM) che funge da intermediario tra WMI e un oggetto gestito. Ad esempio, quando un'applicazione o uno script richiede dati su disco usando la classe WMI Win32_LogicalDisk , i dati vengono ottenuti dinamicamente tramite il provider Win32 preinstallato.
Se si desidera fornire dati tramite WMI ad altre applicazioni, è possibile creare un provider di codice non gestito scrivendo un server COM o tramite le procedure guidate WMI ATL in Visual Studio. È possibile scrivere un provider di codice gestito usando WMI in .NET Framework. Gli argomenti di questa sezione descrivono il processo di scrittura di un provider COM non gestito.
Nota
Per assicurarsi che tutte le definizioni di classe WMI per gli oggetti gestiti vengano ripristinate nel repository WMI se WMI ha un errore e viene riavviato, usare l'istruzione #pragma preprocessore di ripristino automatico nel file MOF (Managed Object Format).
Un provider è costituito da classi definite nello schema MOF (Managed Object Format) e in un file DLL che esegue le funzioni del provider. Ad esempio, il MOF che definisce le classi del provider Win32 è CIMWin32.mof e la DLL è CIMWin32.dll, entrambe sono disponibili in %windir%\System32\Wbem.
Lo schema MOF per il provider può contenere diversi tipi di provider. Ad esempio, il provider di log eventi include tipi di provider di eventi, metodi e metodi in un file MOF denominato Ntevt.mof. È consigliabile assemblare tutti gli schemi di registrazione e le classi per i provider correlati in un file anziché creare un file per classe.
Oltre a usare provider preinstallati, è possibile creare un provider personalizzato per fornire informazioni su un dispositivo hardware o sulle operazioni del software.
Nella tabella seguente sono elencate le attività di base che creano un provider.
Attività | Descrizione |
---|---|
Progettazione di classi MOF (Managed Object Format) | Sviluppare un modello per le entità che si desidera gestire tramite WMI e creare un file MOF (Managed Object Format) per descrivere lo schema. |
Fornitura di dati a WMI scrivendo un provider | Creare il provider più di base associato a WMI. |
Incorporando un provider in un'applicazione | Includere il provider come componente all'interno di un'applicazione se non viene eseguito tutto il tempo. |
Registrazione di un provider | Registrare il provider con COM e WMI. |
Inizializzazione di un provider | Implementare le interfacce IWbemProviderInit e IWbemProviderInitSink. |
Esecuzione di chiamate a WMI | Chiamare interfacce WMI da un provider. |
Rappresentazione di un client | Impostare la sicurezza per accedere a un'applicazione client. |
Aggiornamento di un provider | Migliorare il provider in base alle esigenze. |
Scaricare un provider | Rimuovere il provider dalla memoria durante l'arresto o quando il provider è inattiva. |
Debug di providere configurazione del provider e classi di risoluzione dei problemi | Eseguire il debug del provider usando le strutture fornite da WMI. |
Recupero e fornitura di dati in un computer a 64 bit | Valutare se è necessario un provider di compatibilità dell'applicazione a 32 bit o se il provider a 64 bit può fornire dati a entrambi i client. |
Gli argomenti seguenti illustrano i passaggi necessari per scrivere diversi tipi di provider: