Método IWbemServices::ExecNotificationQuery (wbemcli.h)

O método IWbemServices::ExecNotificationQuery executa uma consulta para receber eventos. A chamada retorna imediatamente e o usuário pode sondar o enumerador retornado para eventos à medida que eles chegam. A liberação do enumerador retornado cancela a consulta.

Sintaxe

HRESULT ExecNotificationQuery(
  [in]  const BSTR           strQueryLanguage,
  [in]  const BSTR           strQuery,
  [in]  long                 lFlags,
  [in]  IWbemContext         *pCtx,
  [out] IEnumWbemClassObject **ppEnum
);

Parâmetros

[in] strQueryLanguage

BSTR válido que contém um dos idiomas de consulta compatíveis com o Gerenciamento do Windows. Isso não pode ser NULL. Atualmente, há suporte apenas para a WQL ( Linguagem de Consulta WMI ).

[in] strQuery

BSTR válido que contém o texto da consulta relacionada ao evento. Isso não pode ser NULL. Para obter mais informações sobre como criar cadeias de caracteres de consulta do WMI, veja Como consultar com WQL e a referência da WQL.

[in] lFlags

Esse parâmetro deve ser definido como WBEM_FLAG_RETURN_IMMEDIATELY e WBEM_FLAG_FORWARD_ONLY ou a chamada falhará.

WBEM_FLAG_FORWARD_ONLY

Esse sinalizador faz com que um enumerador somente de encaminhamento seja retornado. Os enumeradores somente de encaminhamento geralmente são muito mais rápidos e usam menos memória do que os enumeradores convencionais, mas não permitem chamadas para Clonar ou Redefinir.

WBEM_FLAG_RETURN_IMMEDIATELY

O usuário deve especificar esse sinalizador ou a chamada falhará. Isso ocorre porque os eventos são recebidos continuamente, o que significa que o usuário deve sondar o enumerador retornado. Bloquear essa chamada indefinidamente enquanto aguarda um possível evento bloqueia o thread por um período indefinido. Para obter mais informações, confira Como chamar um método.

[in] pCtx

Normalmente NULL. Caso contrário, esse é um ponteiro para um objeto IWbemContext que pode ser usado pelo provedor que fornece os eventos solicitados. Os valores no objeto de contexto devem ser especificados na documentação do provedor em questão. Para obter mais informações sobre esse parâmetro, consulte Fazendo chamadas para WMI.

[out] ppEnum

Se nenhum erro ocorrer, esse parâmetro receberá o enumerador que permite ao chamador recuperar as instâncias no conjunto de resultados da consulta. O chamador chama periodicamente IEnumWbemClassObject::Next para ver se algum evento está disponível. Observe que, nesse uso, Redefinir não move o enumerador de volta para o início da sequência de eventos; não tem efeito. O parâmetro pode continuar a receber eventos até que Release seja chamado no enumerador retornado.

Retornar valor

Esse método retorna um HRESULT que indica o status da chamada de método. A lista a seguir lista o valor contido em um HRESULT.

Em caso de falha, você pode obter todas as informações disponíveis da função COM GetErrorInfo.

Códigos de erro específicos do COM também poderão ser retornados se problemas de rede fizerem com que você perca a conexão remota com o Gerenciamento do Windows.

Comentários

Existem limites para o número das palavras-chave AND e OR que podem ser usadas nas consultas WQL. Um grande número de palavras-chave WQL usadas em uma consulta complexa pode fazer com que o WMI retorne o código de erro WBEM_E_QUOTA_VIOLATION como um valor HRESULT. O limite de palavras-chave WQL depende da complexidade da consulta.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho wbemcli.h (include Wbemidl.h)
Biblioteca Wbemuuid.lib
DLL Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll

Confira também

IWbemServices

IWbemServices::ExecNotificationQueryAsync

Como consultar com WQL

Receber eventos pela duração do aplicativo

Como recuperar um código de erro