CWbemProviderGlue::GetInstancesByQueryAsynch method (wbemglue.h)
[The CWbemProviderGlue class is part of the WMI Provider Framework which is now considered in final state, and no further development, enhancements, or updates will be available for non-security related issues affecting these libraries. The MI APIs should be used for all new development.]
The GetInstancesByQueryAsynch method retrieves a list of instances supported by a particular provider, and that match a particular query. This method allows the provider to respond asynchronously by returning one instance at a time.
Syntax
HRESULT GetInstancesByQueryAsynch(
LPCWSTR query,
Provider *pRequester,
LPProviderInstanceCallback pCallback,
LPCWSTR pszNamespace,
MethodContext *pMethodContext,
void *pUserData
);
Parameters
query
Query to be executed.
pRequester
Pointer of the instance of the class being provided by the framework provider. This "this" pointer is passed to the pCallback function in case the callback function requires it.
pCallback
Pointer to a static function with this prototype.
static HRESULT WINAPI Classname::FunctionName(Provider *pProvider,
CInstance *pInstance,
MethodContext *pMethodContext,
void *pUserData );
where Classname is the name of a class derived from class Provider. It is an instance of this class that is the "this" pointer defined by pRequester.
pszNamespace
Namespace for query. If NULL, the default namespace, root\cimv2, is used.
pMethodContext
Pointer to the current context. A context must be provided to prevent deadlocks. Either use the context passed into the provider by Provider::EnumerateInstances or Provider::ExecQuery, or else obtain it from the instance using CInstance::GetMethodContext. This parameter must not be NULL.
pUserData
Pointer to user-defined data that is passed to the function pointed to by pCallback. If NULL, there is no user-defined data.
Return value
The method returns WBEM_S_NO_ERROR if the operation was successful, WBEM_E_OUT_OF_MEMORY if the operation failed due to lack of memory, or any other HRESULT error code.
Remarks
The GetInstancesByQueryAsynch method allows framework providers to access data from other providers without having to make a WMI API call. Framework providers pass a query to GetInstancesByQueryAsynch, which returns the appropriate instances.
For performance reasons, when calling this function, specify only the properties you need (for example, specify SELECT name instead of SELECT *).
Because the callback to the sink might not be returned at the same authentication level as the client requires, it is recommended that you use semisynchronous communication instead of asynchronous. If you require asynchronous communication see Calling a Method.
For more information about using methods semisynchronously see CWbemProviderGlue::GetInstancesByQuery and Calling a Method.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows Vista |
Minimum supported server | Windows Server 2008 |
Target Platform | Windows |
Header | wbemglue.h (include FwCommon.h) |
Library | FrameDyn.lib |
DLL | FrameDynOS.dll; FrameDyn.dll |