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


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

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

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

Синтаксис

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

Параметры

query

Выполняемый запрос.

pRequester

Указатель экземпляра класса, предоставляемого поставщиком платформы. Этот указатель "this" передается в функцию pCallback на случай, если функция обратного вызова этого требует.

pCallback

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

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

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

pszNamespace

Пространство имен для запроса. Если значение РАВНО NULL, используется пространство имен по умолчанию root\cimv2.

pMethodContext

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

pUserData

Указатель на определяемые пользователем данные, передаваемые в функцию, на которую указывает pCallback. Если значение РАВНО NULL, пользовательские данные отсутствуют.

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

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

Комментарии

Метод GetInstancesByQueryAsynch позволяет поставщикам платформы получать доступ к данным от других поставщиков без вызова API WMI. Поставщики платформы передают запрос в GetInstancesByQueryAsynch, который возвращает соответствующие экземпляры.

Для повышения производительности при вызове этой функции укажите только необходимые свойства (например, укажите имя SELECT вместо SELECT *).

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

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

Требования

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