Как использовать методы CIM, которые не реализованы WMI?
Проект, над которым я сейчас работаю, связан с большим количеством аппаратных средств. Таким образом, я использую много кода, связанного с WMI. Я заметил на нескольких страницах MSDN, таких как Win32_Fan, что есть некоторые методы CIM, которые не реализованы и поэтому не могут быть использованы. Например, я хочу использовать метод CIM_Fan SetSpeed. Страница MSDN этого метода говорит следующее:
Этот метод в настоящее время не реализован WMI. Чтобы использовать этот метод, вы должны реализовать его у своего провайдера.
Эта документация получена из описаний классов CIM, опубликованных DMTF. Возможно, Microsoft внесла изменения для исправления незначительных ошибок, соответствия стандартам документации Microsoft SDK или предоставления дополнительной информации.
У меня есть ряд вопросов относительно этой информации:
Прежде всего, я не думаю, что я вполне понимаю, что они имеют в виду, говоря, что я должен реализовать метод в своем собственном поставщике. Нужно ли мне на самом деле изменять скрипты, которые запускают мой компьютер?
Во-вторых, я не понимаю, как использовать метод CIM, с точки зрения синтаксиса.
Если у кого-то есть идеи относительно ответа на любой из них, это будет высоко оценено.
1 ответ
Вы можете использовать: Открыть Hardware Monitor, который предоставляет все необходимые вам классы. Это также предлагает намного больше информации, не доступной из коробки.
Для работы с WMI вы также можете использовать библиотеку ORMi. Крайне прост в использовании, например, это приносит информацию о процессорах:
var processors = helper.Query("SELECT * FROM Win32_Processor");
Или с напечатанными объектами:
[WMIClass("Win32_Processor")]
public class Processor
{
[WMIIgnore]
public string NonRequiredProp { get; set; }
public string Name { get; set; }
[WMIProperty("NumberOfCores")]
public int Cores { get; set; }
public string Description { get; set; }
}
И тогда запрос:
List<Processor> procesors = helper.Query<Processor>().ToList();