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


Метод IWbemHiPerfProvider::CreateRefreshableEnum (wbemprov.h)

Метод IWbemHiPerfProvider::CreateRefreshableEnum создает новое обновляемое перечисление. WMI Refresher вызывает этот метод в ответ на запрос клиента к IWbemConfigureRefresher::AddEnum. Поставщик связывает предоставленный объект IWbemHiPerfEnum с предоставленным средством обновления. При каждом вызове метода Refresh указанного средства обновления поставщик гарантирует, что перечислитель содержит набор всех экземпляров класса, перечисленных в параметре wszClass , и что эти экземпляры содержат обновленную информацию. Один из возможных способов сделать это — сохранить в средстве обновления массив обновляемых перечислителей.

Примечание Если поставщик не реализует этот метод, он должен вернуть WBEM_E_PROVIDER_NOT_CAPABLE.
 

Синтаксис

HRESULT CreateRefreshableEnum(
  [in]  IWbemServices   *pNamespace,
  [in]  LPCWSTR         wszClass,
  [in]  IWbemRefresher  *pRefresher,
  [in]  long            lFlags,
  [in]  IWbemContext    *pContext,
  [in]  IWbemHiPerfEnum *pHiPerfEnum,
  [out] long            *plId
);

Параметры

[in] pNamespace

Указатель IWbemServices обратно на управление Windows, который может обслуживать любые запросы, сделанные поставщиком. Если pNamespace должен выполнить обратный вызов в управление Windows во время его выполнения, поставщик вызывает AddRef для этого указателя.

[in] wszClass

Константная строка, завершающаяся нулевым значением, из 16-разрядных символов Юникода, содержащая имя класса, экземпляры которого обновляются в параметре pHiPerfEnum .

[in] pRefresher

Указатель на объект IWbemRefresher , содержащий средство обновления, полученное путем вызова IWbemHiPerfProvider::CreateRefresher.

[in] lFlags

Зарезервировано. Этот параметр должен иметь значение 0 (ноль).

[in] pContext

Как правило, значение NULL; в противном случае — указатель на объект IWbemContext , необходимый одному или нескольким поставщикам динамических классов. Значения в объекте контекста должны быть указаны в документации конкретного поставщика. Дополнительные сведения об этом параметре см. в разделе Выполнение вызовов WMI.

[in] pHiPerfEnum

Указатель на объект IWbemHiPerfEnum , содержащий высокопроизводительное перечисление.

[out] plId

Указатель на целое число, возвращаемое поставщиком, которое однозначно идентифицирует обновляемое перечисление.

Возвращаемое значение

Этот метод возвращает HRESULT , указывающий состояние вызова метода. В следующем списке перечислены значения, содержащиеся в HRESULT.

Комментарии

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

Поставщик не должен обращаться к перечислительу, если WMI не вызовет метод IWbemRefresher::Refresh владельца. Как и в случае с обновляемыми объектами, поставщик не должен обновлять перечислитель, если объект, владеющий перечислителем, не обновит перечислитель.

Примеры

В следующем примере кода описывается реализация CreateRefreshableEnum.

HRESULT CHiPerfProvider::CreateRefreshableEnum(
  /* [in] */IWbemServices *pNamespace,
  /* [in] */LPCWSTR wszClass,
  /* [in] */IWbemRefresher *pRefresher,
  /* [in] */long lFlags,
  /* [in] */IWbemContext *pCtx,
  /* [in] */IWbemHiPerfEnum *pEnum,
  /* [out] */ long *plId
)
{
  // Use a private interface defined
  // to talk with the refresher.
  IMyRefresher* pMyRefr = NULL;

  HRESULT hres = pRefresher->QueryInterface(
    IID_IMyRefresher,
    (void**) &pMyRefr );

  if ( SUCCEEDED( hres ) )
  {
  LPLONG plLastId;
    // Generates a unique identifier
    *plId = InterlockedIncrement( &plLastId );

    // Use an internal method to add the
    // enumerator to an array.
    pMyRefr->AddEnum( wszClass, *plId, pEnum );

    pMyRefr->Release();
  }

  return hres;
}

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header wbemprov.h (включая Wbemidl.h)
Библиотека Wbemuuid.lib
DLL Wmiprvsd.dll

См. также раздел

Разработка поставщика WMI

IWbemHiPerfProvider

Преобразование поставщика экземпляра в поставщик High-Performance

Поставщик счетчиков производительности

Написание поставщика экземпляров