API WMI против Windows

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

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

5 ответов


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

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

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


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


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


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


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