Share via


IWbemEventProviderQuerySink::NewQuery 方法 (wbemprov.h)

當邏輯事件取用者向 Windows 管理註冊相關的事件查詢篩選時,呼叫 IWbemEventProviderQuerySink::NewQuery 方法。 NewQuery 方法會決定提供者如何回應用戶端應用程式註冊的新查詢。 當 WMI 從取用者收到新的或修改的事件查詢時,WMI 會呼叫 NewQuery ,以回應事件提供者的查詢。 提供者接著會產生要求的通知。

語法

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

參數

[in] dwId

查詢的 Windows 管理產生的標識碼。 提供者可以追蹤這一點,以便在稍後呼叫 CancelQuery 期間,讓提供者知道哪一個查詢已取消。

[in] wszQueryLanguage

下列查詢篩選的語言。 針對此版本的 WMI,它一律為 「WQL」。

[in] wszQuery

邏輯取用者註冊的事件查詢篩選文字。 事件提供者可以透過 wszQuery 參數檢查查詢篩選的文字,以及 wszQueryLanguage 參數中查詢篩選的語言,以探索取用者要求的事件通知。

傳回值

這個方法會傳回 HRESULT ,指出方法呼叫的狀態。 下列清單列出 NewQuery 傳回的傳回碼。 此外,第三方事件提供者可以傳回任何有效的 WMI 或 COM 傳回碼,這些傳回碼可以傳遞至 NewQuery 做為傳回值。

備註

如果取用者向 Windows 管理註冊事件篩選查詢,而查詢包含目前事件提供者所提供的事件參考,Windows 管理可以通知事件提供者查詢。

如果提供者實作 IWbemEventProviderQuerySink 介面,Windows 管理會將查詢文字的複本提供給提供者。 提供者應該剖析查詢,並判斷是否可以執行任何內部優化。

Windows 管理不預期提供者以任何方式改變其行為。 相反地,這是協助提供者進行內部優化的建議呼叫。

例如,如果提供者能夠提供數百個事件,但提供所有事件所需的額外負荷很大,如果提供者知道目前的事件取用者集合不需要這些事件,就可以大幅節省成本。 如果提供者實作 IWbemEventProviderQuerySink,它會知道所有取用者所要求的目前事件集。 在取用者實際開始要求這類事件之前,它可能可以避免設定提供它所支援的大部分事件類型的機制。

針對每個新的取用者查詢篩選條件,將會針對這個方法進行唯一 dwId 的個別呼叫。 請注意,Windows 管理保留針對相同 dwId 值多次呼叫 NewQuery 的權利;例如,如果系統中有其他位置的架構變更。 針對此版本的 WMI,查詢語言一律為 “WQL”。

IWbemEventProviderQuerySink::NewQuery 方法可以在 IWbemEventProvider::P rovideEvents 方法之前呼叫。

規格需求

需求
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
目標平台 Windows
標頭 wbemprov.h (包含 Wbemidl.h)
程式庫 Wbemuuid.lib
Dll Wbemsvc.dll

另請參閱

IWbemEventProviderQuerySink

IWbemEventProviderQuerySink::CancelQuery