Introduzione a WMI per i driver KMDF

[Si applica solo a KMDF]

Kernel-Mode Driver Framework supporta i driver che forniscono informazioni a Strumentazione gestione Windows (WMI). Tali driver sono denominati provider di dati WMI perché forniscono dati ai client WMI, che sono applicazioni che hanno registrato per ricevere informazioni da WMI.

I provider di dati WMI supportano blocchi di dati WMI, che possono rappresentare uno o più dei seguenti elementi:

  • Elementi di dati che contengono dati specifici del dispositivo inviati da un driver o ricevuti da un client WMI.

  • Metodi (funzioni) eseguiti dal driver per conto di un client WMI.

  • Eventi inviati dal driver ai client WMI registrati per ricevere notifiche di eventi specifici del dispositivo.

I blocchi di dati WMI vengono specificati come classi WMI nei file con estensione mof. Ogni blocco di dati WMI viene identificato da un GUID.

Tutti i driver devono supportare blocchi di dati WMI standard definiti da WMI per la classe di dispositivo. Questi blocchi di dati WMI sono definiti in Wmicore.mof.

Il driver può supportare anche blocchi di dati WMI definiti in un file con estensione mof. Per informazioni su come definire e pubblicare blocchi di dati WMI personalizzati, vedere le sezioni seguenti:

Funzioni di callback e oggetti WMI framework

Il framework definisce due oggetti che i driver possono usare per implementare provider di dati WMI. L'oggetto provider WMI rappresenta lo schema per blocchi di dati WMI forniti dal driver. L'oggetto istanza WMI rappresenta un'istanza di un blocco di dati associato a un determinato provider. I driver comunicano con i client WMI implementando le funzioni di callback degli eventi seguenti definite da questi due oggetti:

EvtWmiProviderFunctionControl
Abilita e disabilita il supporto del driver per la raccolta di dati WMI e l'invio di eventi WMI.

EvtWmiInstanceQueryInstance
Distribuisce i dati dell'istanza di un provider WMI a un client WMI.

EvtWmiInstanceSetInstance e EvtWmiInstanceSetItem
Impostare le informazioni nel blocco dati di un driver ai valori forniti dal client.

EvtWmiInstanceExecuteMethod
Esegue un metodo fornito dal driver, alla richiesta di un client.

Driver di esempio che implementano WMI

I driver di esempio FIREFLY, PCIDRV e Tostapane sono provider di dati WMI.