Классы служебной программы Provider Framework

[Классы WMI C++, которые являются частью платформы поставщика WMI, которая теперь рассматривается в окончательном состоянии, и никакие дальнейшие разработки, улучшения или обновления не будут доступны для проблем, не связанных с безопасностью, влияющих на эти библиотеки. API mi mi следует использовать для всех новых разработок.]

Библиотеки платформы поставщика Framedyd.dll (отладочная версия) и Framedyn.dll (версия выпуска) реализуют несколько вспомогательных классов поставщика. Некоторые функции в Framedyn.dll были удалены из файлов заголовков. Чтобы продолжать использовать эти функции, добавьте #define FRAMEWORK_ALLOW_DEPRECATED в код перед включением Fwcommon.h.

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

Чтобы использовать эту возможность, необходимо внести три следующих изменения в поставщик в MainDll.cpp:

  • В функции DllMain , где вызывается CWbemProviderGlue::FrameworkLoginDLL, необходимо добавить второй параметр, который является указателем на long.
  • В функции DllCanUnloadNow , где вызывается CWbemProviderGlue::FrameworkLogoffDLL, необходимо добавить второй параметр, который является указателем на long.
  • В функции DllGetClassObject , где создается экземпляр CWbemGlueFactory, необходимо добавить параметр, который является указателем на long.

Во всех трех случаях указатель на длину должен быть одинаковым.

Примечание

В Maindll.cpp подпрограммы DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer и DllMain должны быть заключены в блок try/catch.

 

Внимание!

Сборки отладки поставщика связываются с Framedyd.lib для Framedyd.dll. Framedyd.dll находится в каталоге \bin пакета средств разработки программного обеспечения (SDK) Microsoft Windows, который не включен в системный путь. При тестировании отладочной сборки поставщика с помощью службы управления Windows поставщик платформы не сможет загрузиться, так как Framedyd.dll или одна из его зависимостей не будет найдена. Поэтому необходимо либо скопировать Framedyd.dll из каталога \bin windows SDK в каталог \system32\wbem, либо добавить каталог Windows SDK \bin в путь поиска системы.

 

В следующей таблице перечислены служебные классы платформы поставщика.

Класс utility Описание
CHString Предоставляет функции сравнения строк и обработки для инструментария WMI.
CHStringArray Содержит для создания массивов CHString и управления ими.
TRefPointerCollection Предоставляет доступ к классу контейнера для указателей.
WBEMTime Упрощает преобразование между различными форматами среды выполнения Windows и ANSI C.
WBEMTimeSpan Содержит вспомогательные функции, используемые для вычисления и удержания разницы в интервале времени между двумя объектами WBEMTime .

 

Примечание

Классы CHString и CHStringArray аналогичны классам Microsoft Foundation (MFC) CString и CStringArray. Существуют версии WMI, чтобы разработчики могли получить доступ к методам обработки и сравнения строк без доступа к MFC. Классы WBEMTime и WBEMTimeSpan также аналогичны классам MFC CTime и CTimeSpan . Версии WMI способны сохранять время до точности наносекунд, а также могут выполнять преобразование в BSTR и из нее. Дополнительные сведения о классах CString, CStringArray, CTime и CTimeSpan см. в разделе Классы Microsoft Foundation на сайте MSDN.

 

Значения BSTR, возвращаемые методами WBEMTime, имеют формат даты и времени: "ггггммддHHMMSS.mmmmsUUU"

Значения BSTR, возвращаемые методами WBEMTimeSpan, находятся в формате интервала: "dddddddDHHMMSS.mmmmmm:000".

Хотя интервалы времени и времени хранятся внутри как наносекунды, они не обязательно хранятся с точностью наносекунд. Это связано с тем, что объекты WBEMTime можно создавать с помощью форматов времени, точных до секунды (struct tm и time_t). Добавление искусственных десятичных разрядов не повышает точность.