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 |