[函式探索可用於需求一節中指定的作業系統。 後續版本可能會變更或無法使用。]
執行 IFunctionDiscovery::CreateInstanceCollectionQuery所定義的查詢。
語法
HRESULT Execute(
[out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);
參數
[out] ppIFunctionInstanceCollection
IFunctionInstanceCollection介面指標的指標,可接收要求的函式實例集合。
傳回值
可能的傳回值包括但不限於下列各項。
| 傳回碼 | 描述 |
|---|---|
|
已成功完成命令。 結果會在 ppIFunctonInstanceCollecton中同步傳回。 |
|
方法無法配置執行這項作業所需的記憶體。 |
|
某些結果會由非同步通知傳回。 如需詳細資訊,請參閱<備註>小節。 |
預先定義的查詢是分層 類別的查詢。 執行預先定義的查詢時,傳回函式實例的每個提供者也會傳回 HRESULT 值。 提供者 HRESULT 值會匯總, 而 Execute 方法傳回的值會反映這些匯總結果。 結果的匯總方式如下:
- 如果所有提供者 都傳回S_OK, Execute 會傳回 S_OK。
- 如果至少有一個提供者傳回 E_PENDING,而所有其他提供者都會傳回 S_OK 或 E_PENDING, Execute 會 傳回E_PENDING。
- 如果所有提供者 (傳回錯誤值,即 S_OK 或 E_PENDING) 以外的值, Execute 會傳回上次查詢的網路提供者所傳回的錯誤值。 此外,如果用戶端的 IFunctionDiscoveryNotification 回呼常式提供給 IFunctionDiscovery::CreateInstanceCollectionQuery,則會為每個提供者傳送 OnError 通知。 每個 OnError 通知都包含提供者傳回的 HRESULT。
- 如果至少有一個提供者傳回錯誤值,而所有其他提供者都會傳回 S_OK, Execute 會 傳回S_OK。 OnError 通知會如上所述傳送。
- 如果至少有一個提供者傳回錯誤值,而且至少有一個提供者傳回 E_PENDING, Execute 會 傳回E_PENDING。 OnError 通知會如上所述傳送。
當Execute傳回E_PENDING時,結果集會透過IFunctionDiscoveryNotification介面以非同步方式傳回給IFunctionDiscovery的CreateInstanceCollectionQuery方法。 ppIFunctionInstanceCollection 可能是 Null 或可能包含部分結果集。 一旦使用FD_EVENTID_SEARCHCOMPLETE呼叫IFunctionDiscoveryNotification的OnEvent方法之後,列舉就會完成。 收到 FD_EVENTID_SEARCHCOMPLETE 事件之後,其他通知會更新結果。
備註
必須先由用戶端程式叫用這個方法,才能從查詢物件擷取任何資料。 呼叫時,這個方法會執行下列動作:
- 擷取函式實例集合物件。
- 查詢傳遞至 IFunctionDiscovery::CreateInstanceCollectionQuery之類別的提供者。
- 擷取類別提供者。
- 使用子類別資料查詢類別提供者,以使用查詢準則約束產生集合。
- 如果用戶端程式的 IFunctionDiscoveryNotification 回呼常式的位址提供給 IFunctionDiscovery::CreateInstanceCollectionQuery,就會起始更新通知機制。
- 快取集合資料並傳回。
需求
| 最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
| 最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
| 目標平台 | Windows |
| 標頭 | functiondiscoveryapi.h |
| Dll | FunDisc.dll |