WbebemServices::ExecQuery 方法 (wbemcli.h)

IWbemServices::ExecQuery方法會執行查詢來擷取物件。

如需可執行檔有效查詢類型,請參閱 使用 WQL 查詢

語法

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

參數

[in] strQueryLanguage

包含 Windows 管理所支援其中一種查詢語言的有效 BSTR 。 這必須是 「WQL」,這是 WMI 查詢語言的縮寫。

[in] strQuery

包含查詢文字的有效 BSTR 。 此參數不可為 Null。 如需建置 WMI 查詢字串的詳細資訊,請參閱 使用 WQL 進行查詢WQL 參考。

[in] lFlags

下列旗標會影響這個方法的行為。 此參數的建議值 是WBEM_FLAG_RETURN_IMMEDIATELYWBEM_FLAG_FORWARD_ONLY 以獲得最佳效能。

WBEM_FLAG_USE_AMENDED_QUALIFIERS

如果設定此旗標,WMI 會擷取儲存在目前連線地區設定之當地語系化命名空間中的修改限定詞。 如果未設定,只會擷取儲存在立即命名空間中的限定詞。

WBEM_FLAG_FORWARD_ONLY

此旗標會導致傳回順向列舉值。 順向列舉值通常比傳統列舉值更快,而且使用較少的記憶體,但不允許呼叫 CloneReset

WBEM_FLAG_BIDIRECTIONAL

此旗標會導致 Windows 管理保留列舉物件的指標,直到用戶端釋放列舉值為止。

WBEM_FLAG_RETURN_IMMEDIATELY

此旗標會導致此為半同步呼叫。 如需詳細資訊,請參閱 呼叫方法

WBEM_FLAG_ENSURE_LOCATABLE

此旗標可確保任何傳回的物件都有足夠的資訊,讓系統屬性,例如 __PATH__RELPATH__SERVER為非 Null。

WBEM_FLAG_PROTOTYPE

這個旗標用於原型處理。 它不會執行查詢,而是傳回類似一般結果物件的物件。

WBEM_FLAG_DIRECT_READ

此旗標會導致直接存取指定之類別的提供者,而不需考慮其父類別或子類別。

[in] pCtx

通常 為 Null。 否則,這是 IWbemCoNtext 物件的指標,可供提供要求類別或實例的提供者使用。 內容物件中的值必須在有問題的提供者檔中指定。 如需此參數的詳細資訊,請參閱 呼叫 WMI

[out] ppEnum

如果沒有發生錯誤,這會接收允許呼叫端擷取查詢結果集中實例的列舉值。 查詢沒有具有 0 個實例的結果集的錯誤。 這只會藉由嘗試逐一查看實例來決定。 這個物件會以正參考計數傳回。 當不再需要物件時,呼叫端必須呼叫 Release

傳回值

這個方法會傳回 HRESULT ,指出方法呼叫的狀態。 下列清單列出 HRESULT中包含的值。

失敗時,您可以從 COM 函式 GetErrorInfo取得任何可用的資訊。

如果網路問題造成您遺失與 Windows 管理的遠端連線,也可以傳回 COM 特定的錯誤碼。

備註

IWbemServices::ExecQuery方法會處理strQuery參數中指定的查詢,並建立列舉值,讓呼叫者可以存取查詢結果。 列舉值是 IEnumWbemClassObject 介面的指標,查詢結果是透過 IWbemClassObject 介面提供的類別物件實例。

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

另請參閱

IWbemServices

IWbemServices::ExecQueryAsync

使用 WQL 進行查詢