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


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

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

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

Синтаксис

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

Параметры

pszClassName

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

pRequester

Указатель "This" для функции обратного вызова, на которую указывает 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.

Комментарии

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

Примечание Так как обратный вызов в приемник может быть возвращен не на том же уровне проверки подлинности, который требуется клиенту, рекомендуется использовать полусинхронный режим вместо асинхронного взаимодействия. Дополнительные сведения см. в разделе Вызов метода .
 
Этот метод семантически эквивалентен запросу SELECT * FROM pszBaseClassName WHERE __Class = pszBaseClassName.

Требования

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