Метод 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 |