WMI vs Windows API


Есть ли какие-либо преимущества или недостатки использования WMI вместо Windows API для доступа к информации системы? как скорость, дополнительные разрешения, использование памяти.

Или зависит от класса WMI и того, как WMI реализует доступ к информации?

5 7

5 ответов:

Основным недостатком WMI является скорость, он медленно запрашивает данные, и если вы пытаетесь использовать его во время запуска, это может задержать запуск, так как служба WMI занимает много времени.

Тем не менее, информация WMI богаче, так как иногда вам нужно сделать несколько вызовов API, чтобы получить один и тот же объем, некоторые сведения намного проще получить, а синтаксис фильтрации может значительно сократить объем кода, который вы должны написать.

Если скорость не является серьезной проблемой, я бы всегда склоняйтесь к WMI.

Недостаток: скорость
преимущество: обертывает собственный API, так как вызовы API меняются, если WMI не изменился также, вы будете (могли бы) получить преимущества. Это также сэкономит вам некоторое кодирование.

И более богатые данные. Поскольку программисты могут писать собственные поставщики WMI, вы можете получать данные из сторонних программ. Это то, что Microsoft делает в своем интерфейсе Центра безопасности-получение данных от сторонних антивирусных программ и брандмауэров.

Преимущество WMI: может получить информацию об удаленных машинах так же легко, как текущая машина

И олицетворение!
Вы можете запустить программу с непрофильным пользователем, но получить доступ к удаленной машине, указав учетные данные.