CWbemProviderGlue::GetInstancesByQueryAsynch 方法 (wbemglue.h)

[ CWbemProviderGlue 類別是 WMI 提供者架構的一部分,現在被視為最終狀態,而且不會針對影響這些程式庫的非安全性相關問題使用進一步的開發、增強功能或更新。 MI API應該用於所有新的開發。]

GetInstancesByQueryAsynch方法會擷取特定提供者所支援的實例清單,且符合特定查詢。 這個方法可讓提供者一次傳回一個實例,以非同步方式回應。

語法

HRESULT GetInstancesByQueryAsynch(
  LPCWSTR                    query,
  Provider                   *pRequester,
  LPProviderInstanceCallback pCallback,
  LPCWSTR                    pszNamespace,
  MethodContext              *pMethodContext,
  void                       *pUserData
);

參數

query

要執行的查詢。

pRequester

架構提供者所提供類別實例的指標。 如果回呼函式需要它,這個 「this」 指標會傳遞至 pCallback 函式。

pCallback

具有這個原型的靜態函式指標。

static HRESULT WINAPI Classname::FunctionName(Provider *pProvider,
                                              CInstance *pInstance,
                                              MethodContext *pMethodContext,
                                              void *pUserData );

其中 Classname 是衍生自 類別提供者的類別名稱。 它是這個類別的實例,這是 pRequester所定義的 「this」 指標。

pszNamespace

查詢的命名空間。 如果 為 Null,則會使用預設命名空間 root\cimv2。

pMethodContext

目前內容的指標。 必須提供內容以防止死結。 使用 由 Provider::EnumerateInstancesProvider::ExecQuery傳遞至提供者的內容,或使用 CInstance::GetMethodCoNtext從實例取得它。 此參數不得為 Null

pUserData

傳遞至 pCallback所指向之函式的使用者定義資料的指標。 如果 為 Null,則沒有任何使用者定義的資料。

傳回值

如果作業成功,此方法會傳回 WBEM_S_NO_ERRORWBEM_E_OUT_OF_MEMORY 如果作業因記憶體不足或任何其他 HRESULT 錯誤碼而失敗。

備註

GetInstancesByQueryAsynch方法可讓架構提供者存取其他提供者的資料,而不需要進行 WMI API 呼叫。 架構提供者會將查詢傳遞至 GetInstancesByQueryAsynch,這會傳回適當的實例。

基於效能考慮,呼叫此函式時,請只指定您需要的屬性 (,例如指定 SELECT 名稱 ,而不是 SELECT *) 。

由於對接收的回呼可能不會與用戶端所需的相同驗證層級傳回,因此建議您使用半非同步通訊,而不是非同步。 如果您需要非同步通訊,請參閱 呼叫 方法

如需使用方法半同步的詳細資訊,請參閱 CWbemProviderGlue::GetInstancesByQuery呼叫方法

規格需求

   
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
目標平台 Windows
標頭 wbemglue.h (include FwCommon.h)
程式庫 FrameDyn.lib
Dll FrameDynOS.dll;FrameDyn.dll