Condividi tramite


Metodo IWbemEventProviderQuerySink::NewQuery (wbemprov.h)

Chiamare il metodo IWbemEventProviderQuerySink::NewQuery quando un consumer di eventi logici registra un filtro di query di eventi pertinente con Gestione Windows. Il metodo NewQuery determina il modo in cui un provider risponde a una nuova query registrata da un'applicazione client. Quando WMI riceve una query di evento nuova o modificata da un consumer, WMI chiama NewQuery per eseguire l'eco della query al provider di eventi. Il provider genera quindi la notifica richiesta.

Sintassi

HRESULT NewQuery(
  [in] unsigned long dwId,
  [in] WBEM_WSTR     wszQueryLanguage,
  [in] WBEM_WSTR     wszQuery
);

Parametri

[in] dwId

Identificatore generato da Gestione Windows per la query. Il provider può tenere traccia di questo in modo che durante una chiamata successiva a CancelQuery in modo che il provider sappia quale query è stata annullata.

[in] wszQueryLanguage

Linguaggio del filtro di query seguente. Per questa versione di WMI, sarà sempre "WQL".

[in] wszQuery

Testo del filtro della query di eventi, registrato da un consumer logico. Il provider di eventi può esaminare il testo del filtro di query tramite il parametro wszQuery e il linguaggio del filtro di query nel parametro wszQueryLanguage per individuare le notifiche degli eventi richieste dal consumer.

Valore restituito

Questo metodo restituisce un valore HRESULT che indica lo stato della chiamata al metodo. Nell'elenco seguente sono elencati i codici restituiti restituiti da NewQuery. Inoltre, un provider di eventi di terze parti potrebbe restituire qualsiasi codice restituito WMI o COM valido che può essere passato tramite NewQuery come valore restituito.

Commenti

Se un consumer registra una query di filtro eventi con Gestione Windows e la query contiene riferimenti agli eventi forniti dal provider di eventi corrente, Gestione Windows può inviare una notifica al provider di eventi della query.

Se il provider implementa l'interfaccia IWbemEventProviderQuerySink , Gestione Windows fornirà una copia del testo della query nel provider. Il provider deve analizzare la query e determinare se può eseguire qualsiasi ottimizzazione interna.

Gestione Windows non prevede che un provider modifichi in alcun modo il suo comportamento. Si tratta invece di una chiamata di consulenza per assistere il provider con l'ottimizzazione interna.

Ad esempio, se il provider è in grado di fornire molte centinaia di eventi, ma il sovraccarico necessario per fornire tutti questi eventi è notevole, il provider può ottenere un notevole risparmio se sa che la maggior parte di questi eventi non è richiesta dal set corrente di consumer di eventi. Se il provider implementa IWbemEventProviderQuerySink, saprà il set corrente di eventi richiesti da tutti i consumer. Può essere in grado di evitare di configurare i meccanismi per la distribuzione della maggior parte dei tipi di eventi supportati fino a quando i consumer non iniziano effettivamente a richiedere tali eventi.

Per ogni nuovo filtro di query consumer, verrà effettuata una chiamata separata a questo metodo con un dwId univoco. Tenere presente che Gestione Windows riserva il diritto di chiamare NewQuery più volte per lo stesso valore dwId; ad esempio, se è presente una modifica dello schema altrove nel sistema. Per questa versione di WMI, il linguaggio di query è sempre "WQL".

Il metodo IWbemEventProviderQuerySink::NewQuery può essere chiamato prima del metodo IWbemEventProvider::P rovideEvents .

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione wbemprov.h (include Wbemidl.h)
Libreria Wbemuuid.lib
DLL Wbemsvc.dll

Vedi anche

IWbemEventProviderQuerySink

IWbemEventProviderQuerySink::CancelQuery