Поделиться через


Реализация интерфейса высокой производительности

Поскольку WMI загружает внутрипроцессный поставщик высокопроизводительных данных в WMI или клиентское приложение, необходимо разработать поставщик высокой производительности в качестве внутреннего сервера. Кроме того, необходимо реализовать методы поставщика высокой производительности в интерфейсах IWbemHiPerfProvider и IWbemRefresher.

Вы должны реализовать высокопроизводительный поставщик в качестве внутреннего сервера. Одна из функций, которые следует учитывать при реализации безопасности внутрипроцессного сервера, заключается в том, как поставщик определяет свое расположение. При загрузке в WMI WMI WMI создает экземпляр поставщика с помощью CLSID. При загрузке в клиентское приложение клиентское приложение создает экземпляр поставщика с помощью свойства ClientLoadableCLSID . Предоставляя разные значения CLSID и ClientLoadableCLSID, поставщик может определить, загружается ли он в WMI или клиентское приложение. При расположении в процессе WMI поставщик должен выполнять все необходимые олицетворения клиента с помощью ClientLoadableCLSID. При расположении в клиентском процессе поставщик наследует маркер доступа вызываемого потока. Дополнительные сведения о реализации внутрипроцессного сервера см. в документации по объектной модели компонентов (COM ).

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

Способ Функция
IWbemHiPerfProvider::QueryInstances Запросы
IWbemHiPerfProvider::GetObjects Извлечение объектов
IWbemHiPerfProvider::CreateRefresher Создает средство обновления
IWbemHiPerfProvider::CreateRefreshableObject Создает объект обновляемого экземпляра
IWbemHiPerfProvider::CreateRefreshableEnum Создает обновляемый перечислитель
IWbemHiPerfProvider::StopRefreshing Остановка обновления перечислителя или объекта экземпляра
IWbemRefresher::Refresh Создает средство обновления

 

Создание поставщика экземпляров в поставщик высокой производительности