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::EnumerateInstances 或 Provider::ExecQuery傳遞至提供者的內容,或使用 CInstance::GetMethodCoNtext從實例取得它。 此參數不得為 Null。
pUserData
傳遞至 pCallback所指向之函式的使用者定義資料的指標。 如果 為 Null,則沒有任何使用者定義的資料。
傳回值
如果作業成功,此方法會傳回 WBEM_S_NO_ERROR , WBEM_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 |