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