Método CWbemProviderGlue::GetInstancesByQueryAsynch (wbemglue.h)
[A classe CWbemProviderGlue faz parte do WMI Provider Framework que agora é considerado em estado final e nenhum desenvolvimento, melhoria ou atualização adicional estará disponível para problemas não relacionados à segurança que afetarem essas bibliotecas. As APIs de MI devem ser usadas para todos os novos desenvolvimentos.]
O método GetInstancesByQueryAsynch recupera uma lista de instâncias com suporte de um provedor específico e que correspondem a uma consulta específica. Esse método permite que o provedor responda de forma assíncrona retornando uma instância de cada vez.
Sintaxe
HRESULT GetInstancesByQueryAsynch(
LPCWSTR query,
Provider *pRequester,
LPProviderInstanceCallback pCallback,
LPCWSTR pszNamespace,
MethodContext *pMethodContext,
void *pUserData
);
Parâmetros
query
Consulta a ser executada.
pRequester
Ponteiro da instância da classe que está sendo fornecida pelo provedor de estrutura. Esse ponteiro "this" é passado para a função pCallback caso a função de retorno de chamada exija isso.
pCallback
Ponteiro para uma função estática com esse protótipo.
static HRESULT WINAPI Classname::FunctionName(Provider *pProvider,
CInstance *pInstance,
MethodContext *pMethodContext,
void *pUserData );
em que Classname é o nome de uma classe derivada da classe Provider. É uma instância dessa classe que é o ponteiro "this" definido por pRequester.
pszNamespace
Namespace para consulta. Se NULL, o namespace padrão, root\cimv2, será usado.
pMethodContext
Ponteiro para o contexto atual. Um contexto deve ser fornecido para evitar deadlocks. Use o contexto passado para o provedor por Provider::EnumerateInstances ou Provider::ExecQuery ou obtenha-o da instância usando CInstance::GetMethodContext. Esse parâmetro não deve ser NULL.
pUserData
Ponteiro para dados definidos pelo usuário que são passados para a função apontada por pCallback. Se FOR NULL, não haverá dados definidos pelo usuário.
Valor retornado
O método retornará WBEM_S_NO_ERROR se a operação tiver sido bem-sucedida, WBEM_E_OUT_OF_MEMORY se a operação falhou devido à falta de memória ou a qualquer outro código de erro HRESULT.
Comentários
O método GetInstancesByQueryAsynch permite que os provedores de estrutura acessem dados de outros provedores sem precisar fazer uma chamada à API WMI. Os provedores de estrutura passam uma consulta para GetInstancesByQueryAsynch, que retorna as instâncias apropriadas.
Por motivos de desempenho, ao chamar essa função, especifique apenas as propriedades necessárias (por exemplo, especifique o nome SELECT em vez de SELECT *).
Como o retorno de chamada para o coletor pode não ser retornado no mesmo nível de autenticação exigido pelo cliente, é recomendável que você use a comunicação semissíncrona em vez de assíncrona. Se você precisar de comunicação assíncrona, consulte Chamando um método.
Para obter mais informações sobre como usar métodos de forma semissíncrona, consulte CWbemProviderGlue::GetInstancesByQuery e Chamando um método.
Requisitos
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | wbemglue.h (inclua FwCommon.h) |
Biblioteca | FrameDyn.lib |
DLL | FrameDynOS.dll; FrameDyn.dll |