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


Поддержка операций Partial-Instance

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

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

  • Повторно используйте тот же объект контекста, который WMI отправляет поставщику. WMI использует именованное значение "__GET_EXT_CLIENT_REQUEST", чтобы предотвратить взаимоблокировку и удалить этот клиент перед пересылкой объекта контекста поставщику.
  • Для повторных вызовов обратно в WMI, которые не требуют операции частичного экземпляра, убедитесь, что возвращаете тот же объект контекста без каких-либо изменений. WMI получает объект контекста без именованного набора значений __GET_EXT_CLIENT_REQUEST и удаляет все именованные значения, связанные с операциями с частичным экземпляром из объекта контекста, прежде чем передавать его другим поставщикам. Неизменение объекта контекста блокирует других поставщиков от получения операций извлечения частичного экземпляра, предназначенных для другого, не связанного объекта.
  • Чтобы выполнить повторную операцию частичного экземпляра при выполнении запроса, задайте отсутствующее "__GET_EXT_CLIENT_REQUEST" именованное значение и свойство clear. При необходимости можно изменить свойства в именованном значении "__GET_EXT_PROPERTIES", прежде чем отправлять объект контекста обратно в WMI, повторно вызвав его.
  • Не обращаться к объекту контекста после возвращения его в WMI во время повторного вызова; другие поставщики могут изменять списки свойств или другие значения во время повторного входа. Вы можете изучать или изменять объект контекста только во время вызова IWbemServices, который вы реализуете.