Tecniche generali per il test del supporto del driver WMI

Strumenti client WMI

Esistono diversi strumenti che è possibile usare per testare il supporto WMI nel driver.

Wbemtest
Il sistema operativo include lo strumento Wbemtest, che fornisce un GUI che è possibile usare per eseguire query per le classi e le istanze di classe WMI, modificare i valori delle proprietà, eseguire metodi e ricevere notifiche degli eventi. Connettersi allo spazio dei nomi "root\wmi" per testare il supporto del driver.

Wmic
Microsoft Windows XP e sistemi operativi successivi includono lo strumento Wmic, che fornisce una shell dei comandi che è possibile usare per inviare comandi correlati a WMI per testare il driver.

Wmimofck
Il comando wmimofck può essere usato per controllare la sintassi dei file MOF binari. È anche possibile usare il comando wmimofck -t per generare un file VBScript. È possibile usare questo script per testare la gestione delle query di istanza della classe WMI del driver. Il comando wmimofck -w genera pagine Web che possono testare le classi di query e impostazione, l'esecuzione di metodi e la ricezione di eventi. Si noti che le pagine Web non supportano l'esecuzione di metodi che usano parametri complessi o valori restituiti, ad esempio una matrice di classi incorporate. In questi casi è invece possibile usare Wbemtest. Per altre informazioni su Wmimofck, vedere Uso di wmimofck.exe .

È anche possibile testare il supporto WMI del driver scrivendo un'applicazione client WMI personalizzata usando l'API in modalità utente WMI.

Per altre informazioni su questa API in modalità utente, che consente alle applicazioni di fornire o usare informazioni WMI, vedere le informazioni di Strumentazione gestione Windows nella documentazione di Microsoft Windows SDK.

Un'applicazione client WMI esegue le attività seguenti per testare un driver:

  • Si connette a WMI.

    Per connettersi a WMI, l'applicazione può chiamare la funzione Component Object Model (COM), CoCreateInstance, per recuperare un puntatore all'interfaccia IWbemLocator . L'applicazione chiama quindi il metodo IWbemLocator::ConnectServer per connettersi a WMI. Da questa chiamata, l'applicazione riceve un puntatore all'interfaccia IWbemServices .

  • Accede alle informazioni nel driver.

    Per accedere alle informazioni e per registrare gli eventi, l'applicazione usa i metodi dell'interfaccia IWbemServices .

IRP WMI e registro eventi di sistema

Gli errori WMI che si verificano rigorosamente in modalità kernel vengono registrati nel registro eventi di sistema. È possibile usare il Visualizzatore eventi per esaminare il registro eventi di sistema. Per altre informazioni, vedere Errori di registrazione .

Le due origini principali di tali errori sono risposte non formattate alle richieste WMI e ai parametri non corretti per le notifiche degli eventi. Ad esempio, se il driver restituisce una struttura di dati WMIREGINFO non corretta in risposta a una richiesta di IRP_MN_REGINFO o IRP_MN_REGINFO_EX , il sistema logrà tale elemento nel registro eventi di sistema. Il sistema registra anche una chiamata non valida a IoWMIWriteEvent e WmiFireEvent per inviare una notifica di evento WMI.

WMI WDM Provider Log

Gli errori WMI che si verificano durante la gestione dal provider WDM WMI (Wmiprov.dll) vengono registrati nel file di log per il provider WDM WMI, Wmiprov.log. Questo è un file di testo disponibile in %windir%\system32\wbem\logs\wmiprov.log. Gli errori, ad esempio una risorsa MOF non valida o mancante per il driver, vengono registrati qui. Nel caso di una risorsa MOF non valida, il file %windir%\system32\mofcomp.log potrebbe avere informazioni aggiuntive correlate all'errore.

Nelle versioni di Windows precedenti a Windows Vista è possibile modificare le impostazioni di registrazione per tutti i provider WMI usando l'applicazione Wmimgmt.msc. In Windows 98/Me usare invece Wbemcntl. È possibile disabilitare o riabilitare la registrazione, modificare la directory in cui vengono mantenuti i file di log WMI e impostare le dimensioni massime per tali file. Per altre informazioni, vedere File di log WMI.