Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le classi WMI del driver non vengono visualizzate nello spazio dei nomi \root\wmi
Usare wmimofckdriver.bmf per verificare se il formato di file MOF binario è corretto. È possibile trovare altri messaggi di errore in mofcomp.log.
Controllare il registro eventi di sistema per verificare se il driver restituisce una struttura di dati WMIREGINFO in formato non valido in risposta alla richiesta di registrazione.
Verificare che il driver restituisca i valori corretti per RegistryPath e MofResourceName all'interno della struttura WMIREGINFO .
Se il driver fornisce i dati MOF in un file separato, verificare che il valore del Registro di sistema MofImagePath per il driver sia impostato correttamente.
Controllare la presenza di errori nel log del provider WDM WMI .
Usare Mofcomp per ricompilare e ricaricare il file di testo MOF. Ad esempio, il comando mofcomp -N:root/wmi driver.mof tenterà di ricompilare e ricaricare i dati MOF nel file driver.mof. Controllare i messaggi di errore generati da Mofcomp in mofcomp.log. Si noti che se il file MOF usa direttive del preprocessore, ad esempio #define, sarà necessario usare il file MOF già pre-elaborato e non il file di origine originale.
Avviso Se l'operazione ha esito positivo, registra effettivamente i nuovi dati della classe WMI con il sistema. È necessario eliminare queste classi (ad esempio usando Wbemtest) per verificare se i dati MOF del driver vengono letti correttamente.
Se il passaggio precedente ha esito positivo, il problema più probabile è che i membri di WMIREGINFO, ad esempio MofResourceName, vengano specificati in modo non corretto. In alternativa, il problema potrebbe essere che il file MOF specifica una classe derivata da una classe di base che non esiste.
Se il driver usa dati MOF dinamici (vedere Implementazione di dati MOF dinamici), verificare che il driver riceva richieste IRP WMI per il GUID MSWmi_MofData_GUID e che venga completato correttamente l'IRP e senza errori registrati.
Impossibile accedere alle proprietà o ai metodi WMI del driver
Usare wmimofck driver.bmf per verificare se il formato di file MOF binario è corretto. Per altre informazioni, vedere Uso di wmimofck.exe.
Controllare la presenza di errori nel registro eventi di sistema. Per altre informazioni, vedere WMI IRP e registro eventi di sistema.
Controllare la presenza di errori nel log del provider WDM WMI .
Assicurarsi che il driver riceva un IRP WMI ogni volta che si usa Wbemtest per eseguire query sulle classi del driver. In caso contrario, verificare che il GUID specificato nel file MOF corrisponda al GUID previsto dal driver. Verificare anche che il driver riceva la richiesta di registrazione WMI, che abbia esito positivo e che il driver registri i GUID corretti.
Se il driver riceve l'IRP, assicurarsi che l'IRP venga completato correttamente e che il driver restituisca il tipo corretto di struttura WNODE_XXX .
Se Wbemtest restituisce un errore, fare clic sul pulsante Altre informazioni e selezionare la proprietà Description per una descrizione dell'errore.
Per i metodi, verificare che il driver supporti la gestione dei IRP_MN_QUERY_ALL_DATA e delle richieste di IRP_MN_QUERY_SINGLE_INSTANCE per il GUID del metodo. WMI eseguirà sempre una di queste due richieste prima di eseguire un metodo.
Gli eventi WMI del driver non vengono ricevuti
Controllare la presenza di errori nel registro eventi di sistema . Ad esempio, se il driver specifica un nome di evento statico quando si chiama IoWMIWriteEvent ma il driver non ha registrato alcun nome di evento statico, verrà generata una voce nel registro eventi di sistema.
Controllare la presenza di errori nel log del provider WDM WMI .
Se il driver invia un riferimento a un evento, il driver deve ricevere una richiesta di IRP_MN_QUERY_SINGLE_INSTANCE immediatamente dopo l'invio del riferimento all'evento. Se il driver non riceve l'IRP, è possibile che la struttura WNODE_EVENT_REFERENCE sia stata formattata in modo non corretto. Se il driver riceve l'IRP, deve essere completato con lo stato STATUS_SUCCESS.
Se il driver usa IoWMIWriteEvent per inviare l'evento o il riferimento all'evento, assicurarsi che la struttura dell'evento ( WNODE_SINGLE_INSTANCE o WNODE_EVENT_REFERENCE) sia compilata correttamente. In particolare, se il GUID dell'evento è registrato per i nomi di istanza statici, assicurarsi che siano specificati l'indice dell'istanza e l'ID provider corretti. Se il GUID dell'evento è registrato per i nomi di istanze dinamiche, assicurarsi che il nome dell'istanza sia incluso quando viene inviato l'evento. Se si usa la struttura WNODE_EVENT_REFERENCE per specificare l'evento, verificare che Wnode.Guid corrisponda a TargetGuid.
Se il driver usa WmiFireEvent per inviare l'evento, assicurarsi che il valore corretto venga passato per i parametri Guid e InstanceIndex .
Le modifiche apportate alle impostazioni di sicurezza per le richieste WMI non hanno effetto
- Scaricare e ricaricare il provider WDM WMI. Per i blocchi di dati WMI registrati con il flag di WMIREG_FLAG_EXPENSIVE, il provider mantiene un handle aperto al blocco di dati purché siano presenti consumer per tale blocco. Le nuove impostazioni di sicurezza non saranno effettive fino alla chiusura dell'handle da parte del provider. Scaricamento e ricaricamento del provider assicura che l'handle sia stato chiuso. Per altre informazioni sul flag WMIREG_FLAG_EXPENSIVE, vedere WMIREGGUID.