[函式探索可用於需求一節中指定的作業系統。 它可能會在後續版本中改變或無法使用。]
擷取符合指定條件約束的函式實例集合。
語法
HRESULT Query(
[in] IFunctionDiscoveryProviderQuery *pIFunctionDiscoveryProviderQuery,
[out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);
參數
[in] pIFunctionDiscoveryProviderQuery
IFunctionDiscoveryProviderQuery 介面的指標,其中包含定義查詢準則的參數。
[out] ppIFunctionInstanceCollection
提供者應該用來同步傳回函式實例以回應指定查詢的 IFunctionInstanceCollection 介面指標。
當您實作 Query 方法時,如果您的提供者支援通知,即提供者會以異步方式傳回結果,您可以將此參數設定為 NULL 。 應該使用傳遞至提供者 Initialize 方法的 IFunctionDiscoveryNotification 介面傳回異步結果。
如果用戶端應用程式尚未實作通知,它可能會傳遞 NULL 參數。
傳回值
可能的傳回值包括,但不限於下列各項。
| 傳回碼 | 描述 |
|---|---|
|
方法已順利完成,且結果會以同步方式傳回。 |
|
pIFunctionDiscoveryProviderQuery 參數為 NULL。 |
|
方法已順利完成,且結果會以異步方式傳回。 |
備註
使用中查詢會透過對 EndQuery 方法的呼叫,由 Function Discovery 終止。 請注意,只有在客戶端為查詢指定 IFunctionDiscoveryNotification 介面時,才會呼叫 EndQuery。 如果未提供 IFunctionDiscoveryNotification ,則必須在查詢呼叫完成後,由提供者將 查詢 視為結束。
用戶端可以在先前的查詢呼叫傳回之後,隨時重新執行 查詢 。 Query 的實作必須能夠傳回新查詢的 IFunctionInstanceCollection。 只有在用戶端傳遞 IFunctionDiscoveryNotification 介面傳遞至提供者的 Initialize 方法時,才會在後續的查詢呼叫之前呼叫 EndQuery。
如果 Query 傳回E_PENDING,提供者必須呼叫 IFunctionDiscoveryNotification 介面的 OnEvent 方法,並FD_EVENTID_SEARCHCOMPLETE,以指出結果的列舉已完成。 傳送 FD_EVENTID_SEARCHCOMPLETE 事件失敗可能會導致客戶端無限期停止
規格需求
| 需求 | 值 |
|---|---|
| 最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
| 最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
| 目標平台 | Windows |
| 標頭 | functiondiscoveryprovider.h |