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


Метод CWbemProviderGlue::GetAllDerivedInstancesAsynch (wbemglue.h)

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

Метод GetAllDerivedInstancesAsynch извлекает список экземпляров, поддерживаемых определенным поставщиком и производных от определенного базового класса. Этот метод позволяет поставщику асинхронно реагировать, возвращая по одному экземпляру за раз.

Синтаксис

HRESULT GetAllDerivedInstancesAsynch(
  LPCWSTR                    pszBaseClassName,
  Provider                   *pRequester,
  LPProviderInstanceCallback pCallback,
  LPCWSTR                    pszNamespace,
  MethodContext              *pMethodContext,
  void                       *pUserData
);

Параметры

pszBaseClassName

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

pRequester

Указатель на функцию обратного вызова, на которую указывает pCallback.

pCallback

Указатель на статическую функцию с этим прототипом.

  static HRESULT WINAPI Classname::FunctionName(
     Provider *pProvider,
     CInstance *pInstance,
     MethodContext *pMethodContext,
     void *pUserData );

Где Classname — это имя класса, производного от класса Provider. Это экземпляр этого класса, который является указателем "this", определенным pRequester. Эта функция вызывается для возврата каждого экземпляра, поддерживаемого поставщиком, заданным параметром pszClassName.

pszNamespace

Пространство имен класса, указанное в параметре pszClassName. Если этот параметр имеет значение NULL, используется пространство имен по умолчанию root\cimv2.

pMethodContext

Указатель на текущий контекст. Для предотвращения взаимоблокировок необходимо указать контекст. Либо используйте контекст, переданный поставщику ::EnumerateInstances или Provider::ExecQuery, либо получите его из экземпляра с помощью CInstance::GetMethodContext. Этот параметр не должен иметь значение NULL.

pUserData

Указатель на определяемые пользователем данные, передаваемые в функцию, на которую указывает pCallback.

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

Метод возвращает WBEM_S_NO_ERROR , если операция была успешной, WBEM_E_OUT_OF_MEMORY , если операция завершилась сбоем из-за нехватки памяти или любого другого кода ошибки HRESULT.

Комментарии

Метод GetAllDerivedInstancesAsynch выполняет почти ту же функцию, что и GetAllDerivedInstances. Однако вместо возврата одного произвольно большого массива экземпляров поставщик передает экземпляр функции, заданной pCallBack , каждый раз, когда экземпляр извлекается из поставщика. Это позволяет поставщику использовать меньше памяти и быстрее начать возвращать экземпляры клиенту.

Этот метод семантически эквивалентен запросу SELECT * FROM pszBaseClassName.

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

Дополнительные сведения об использовании методов полусинхронно см. в разделах CWbemProviderGlue::GetAllDerivedInstances и Вызов метода.

Требования

   
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header wbemglue.h (включая FwCommon.h)
Библиотека FrameDyn.lib
DLL FrameDynOS.dll; FrameDyn.dll