Метод IWbemObjectSink::Indicate (wbemcli.h)
Метод Indicate вызывается источником для предоставления уведомления. Как правило, WMI вызывает клиентную реализацию этого интерфейса после выполнения клиентом одного из асинхронных методов IWbemServices. В других случаях различные типы поставщиков вызывают реализацию, экспортированную WMI для доставки событий. Поэтому в некоторых случаях клиентскому коду может потребоваться реализовать этот интерфейс, а в других случаях использовать реализацию другого компонента.
Используйте этот интерфейс и метод в сочетании с асинхронными методами интерфейса IWbemServices .
Клиенты и поставщики должны реализовать этот интерфейс для получения уведомлений или выполнения асинхронных методов IWbemServices. Дополнительные сведения см. в разделе Вызов метода .
Синтаксис
HRESULT Indicate(
[in] long lObjectCount,
[in] IWbemClassObject **apObjArray
);
Параметры
[in] lObjectCount
Количество объектов в следующем массиве указателей.
[in] apObjArray
Массив указателей на интерфейсы IWbemClassObject . Сама память массива доступна только для чтения и принадлежит вызывающей объекту метода . Так как это параметр in, реализация имеет возможность вызывать IWbemClassObject::AddRef для любого указателя объекта в массиве и удерживать его перед возвратом, если объекты будут использоваться после возврата метода, в соответствии с правилами COM. Если объекты используются только на протяжении всего вызова Indicate , то вызывать AddRef для каждого указателя объекта не нужно.
Возвращаемое значение
Этот метод возвращает HRESULT , указывающий состояние вызова метода. В следующем списке перечислены значения, содержащиеся в HRESULT.
Комментарии
При реализации приемника подписки на события (IWbemObjectSink или IWbemEventSink) не вызывайте WMI из метода Indicate объекта приемника. Например, вызов IWbemServices::CancelAsyncCall из реализации Параметра Указывает может помешать состоянию WMI. Чтобы отменить подписку на события, установите флаг и вызовите IWbemServices::CancelAsyncCall из другого потока или объекта. Для реализаций, не связанных с приемником событий, таких как объект, перечисление и извлечение запросов, можно вызвать обратно в WMI.
Реализации приемника должны обрабатывать уведомление о событии в пределах 100 MSEC, так как поток WMI, доставляющий уведомление о событии, не может выполнять другие действия, пока объект приемника не завершит обработку. Если уведомление требует большого объема обработки, приемник может использовать внутреннюю очередь для обработки другим потоком.
Когда поставщик событий вызывает Команду Показать , чтобы предоставить событие, вызов может завершиться сбоем с WBEM_E_SERVER_TOO_BUSY. Поставщик может ответить на это сообщение, повторно запуская событие.
Требования
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | wbemcli.h (включая Wbemidl.h) |
Библиотека | Wbemuuid.lib |
DLL | Fastprox.dll |