共用方式為


IFunctionDiscovery::GetInstanceCollection 方法 (functiondiscoveryapi.h)

[函式探索可用於需求一節中指定的作業系統。 它可能會在後續版本中改變或無法使用。]

根據類別和子類別,取得函式實例的指定集合。

語法

HRESULT GetInstanceCollection(
  [in]  const WCHAR                 *pszCategory,
  [in]  const WCHAR                 *pszSubCategory,
  [in]  BOOL                        fIncludeAllSubCategories,
  [out] IFunctionInstanceCollection **ppIFunctionInstanceCollection
);

參數

[in] pszCategory

要列舉之類別的識別碼。 請參閱 類別定義

[in] pszSubCategory

要列舉之子類別的識別碼。 請參閱 子類別定義。 此參數可以是 Null

[in] fIncludeAllSubCategories

如果 為 TRUE,這個方法會以遞迴方式列舉 pszCategory中所指定類別的所有子類別,傳回包含 pszCategory所有子類別之函式實例的集合。

如果 為 FALSE,這個方法會將本身限制為傳回 pszCategory 所指定類別中的函式實例,以及 pszSubCategory所指定的子類別。

[out] ppIFunctionInstanceCollection

IFunctionInstanceCollection介面指標的指標,可接收包含所要求函式實例的函式實例集合。 如果找不到合格的函式實例,則集合是空的。

傳回值

可能的傳回值包括,但不限於下列各項。

傳回碼/值 描述
S_OK
已成功完成命令。
E_INVALIDARG
pszCategory的值無效。 ppIFunctionInstanceCollection參數中傳回的值為Null
E_OUTOFMEMORY
方法無法配置執行這項作業所需的記憶體。
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
0x80070002
pszCategorypszSubCategory的值未知。
E_PENDING
呼叫是針對以非同步方式傳回結果的提供者執行。

備註

某些函式探索提供者會使用 IFunctionDiscoveryNotification 介面傳回其查詢結果。 GetInstanceCollection 找不到以這種方式傳回的函式實例,而且會因為E_PENDING而失敗。 建議用戶端使用IFunctionDiscovery介面的CreateInstanceQuery方法來尋找這類提供者的函式實例。

如果方法成功但找不到符合查詢參數的函式實例,則會傳回 S_OK ,而 ppFunctionInstanceCollection 會指向空集合, (集合的 GetCount 方法會傳回 0) 。

子類別查詢僅支援分層類別和某些提供者類別。 登錄提供者、PnP-X 關聯提供者,以及發行集提供者支援子類別查詢。 自訂提供者可以明確設計來支援子類別查詢。 針對其他提供者,可以使用查詢準則約束來篩選函式實例集合。 如需查詢準則約束的清單,請參閱 條件約束定義

範例

下列程式碼會傳回與 Microsoft.Networking.Devices 命名空間中 SSDP 提供者相關聯的函式實例。

hr = spDisco->GetInstanceCollection(FCTN_CATEGORY_NETWORKDEVICES,
                                   FCTN_SUBCAT_NETWORKDEVICES_SSDP, 
                                   FALSE, 
                                   &spFunctionInstanceCollection);


請參閱 IFunctionInstanceQuery 上的介面條件約束,一次篩選多個介面,或篩選不支援子類別查詢的提供者。

需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 functiondiscoveryapi.h
Dll FunDisc.dll

另請參閱

IFunctionDiscovery