IWbemServices::ExecNotificationQuery 方法 (wbemcli.h)
IWbemServices::ExecNotificationQuery 方法會執行查詢來接收事件。 呼叫會立即傳回,而且用戶可以在抵達時輪詢傳回的事件列舉值。 釋放傳回的列舉值會取消查詢。
語法
HRESULT ExecNotificationQuery(
[in] const BSTR strQueryLanguage,
[in] const BSTR strQuery,
[in] long lFlags,
[in] IWbemContext *pCtx,
[out] IEnumWbemClassObject **ppEnum
);
參數
[in] strQueryLanguage
有效的 BSTR ,其中包含 Windows 管理所支援的其中一種查詢語言。 這不可以是 NULL。 目前僅支援 WMI 查詢語言 (WQL) 。
[in] strQuery
包含事件相關查詢文字的有效 BSTR 。 這不可以是 NULL。 如需建置 WMI 查詢字串的詳細資訊,請參閱 使用 WQL 查詢和 WQL 參考。
[in] lFlags
此參數必須同時設定為 WBEM_FLAG_RETURN_IMMEDIATELY 和 WBEM_FLAG_FORWARD_ONLY ,否則呼叫會失敗。
WBEM_FLAG_FORWARD_ONLY
此旗標會導致傳回順向列舉值。 順向列舉值通常更快,而且使用記憶體比傳統列舉值少,但不允許呼叫 Clone 或 Reset。
WBEM_FLAG_RETURN_IMMEDIATELY
用戶必須指定此旗標,否則呼叫會失敗。 這是因為會持續收到事件,這表示使用者必須輪詢傳回的列舉值。 無限期地封鎖此呼叫,同時等候可能的事件會封鎖線程無限期的時間。 如需詳細資訊,請參閱 呼叫方法。
[in] pCtx
通常 為 NULL。 否則,這是 IWbemContext 物件的指標,可供提供所要求事件的提供者使用。 內容物件中的值必須在有問題的提供者檔中指定。 如需此參數的詳細資訊,請參閱 呼叫 WMI。
[out] ppEnum
如果沒有發生錯誤,此參數會接收列舉值,讓呼叫端擷取查詢結果集中的實例。 呼叫端會定期呼叫 IEnumWbemClassObject::Next 以查看是否有任何事件可用。 請注意,在此用法中, Reset 不會將列舉值移回事件順序的開頭;它沒有任何作用。 參數可以繼續接收事件,直到在傳回的列舉值上呼叫 Release 為止。
傳回值
這個方法會傳回 HRESULT ,指出方法呼叫的狀態。 下列清單列出 HRESULT 中包含的值。
失敗時,您可以從 COM 函式 GetErrorInfo 取得任何可用資訊。
如果網路問題造成您失去與 Windows 管理的遠端連線,也可以傳回 COM 特定的錯誤碼。
備註
WQL 查詢中可以使用 的 AND 和 OR 關鍵詞數目有一些限制。 複雜查詢中使用的大量 WQL 關鍵詞可能會導致 WMI 將WBEM_E_QUOTA_VIOLATION錯誤碼傳回為 HRESULT 值。 WQL 關鍵字的限制取決於查詢的複雜程度。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista |
最低支援的伺服器 | Windows Server 2008 |
目標平台 | Windows |
標頭 | wbemcli.h (包含 Wbemidl.h) |
程式庫 | 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 |