[函式探索可用於需求一節中指定的作業系統。 後續版本可能會變更或無法使用。]
建立函式實例的提供者特定 COM 物件。 提供者寫入器可以實作這個方法,以透過 COM 物件提供其他功能。
語法
HRESULT InstanceQueryService(
[in] IFunctionInstance *pIFunctionInstance,
[in] INT_PTR iProviderInstanceContext,
[in] REFGUID guidService,
[in] REFIID riid,
[out] IUnknown **ppIUnknown
);
參數
[in] pIFunctionInstance
IFunctionInstance介面的指標。
[in] iProviderInstanceContext
與特定函式實例相關聯的內容。
[in] guidService
服務的唯一識別碼 (SID) 。 這是提供者寫入器所定義的服務識別碼。 如需範例,請參閱 FunctionDiscoveryServiceIDs.h。
[in] riid
呼叫端想要為服務接收之介面的唯一識別碼。
[out] ppIUnknown
接收服務介面指標的指標。 當不再需要服務時,呼叫端會負責透過這個介面指標呼叫 Release 。
傳回值
可能的傳回值包括但不限於下列各項。
| 傳回碼 | 描述 |
|---|---|
|
已成功完成命令。 |
|
提供者會實作 guidService 所識別的服務,但不會實作 rrid所識別的介面。 |
|
方法無法配置執行這項作業所需的記憶體。 |
|
提供者不會實作 IFunctionInstance::QueryService 方法,或 guidService 所指定的服務識別碼不符合提供者的服務識別碼。 |
備註
InstanceQueryService會建立或存取以guidService識別的服務實作,並傳回ppv引數中riid所指定的介面位址。 提供者可以實作服務,而這個方法會提供一種機制,讓提供者提供此實作,而不需要建立新的 物件來實作服務。
如果guidService不屬於此提供者,或不支援riid介面,提供者應該會傳回E_NOINTERFACE。 如果提供者只是未實作此方法或未實作要求的 SID,則提供者應該傳回 E_NOTIMPL 。
任何支援內嵌服務或裝置的提供者都必須實作SID_PNPXServiceCollection服務。 如果支援SID_PNPXServiceCollection服務,用戶端可以呼叫 IFunctionInstance::QueryService 來存取與內嵌服務或裝置相關聯的資訊和中繼資料。 例如,PnP-X 提供者 (,也就是 SSDP 提供者 和 WSD 提供者) 實作對SID_PNPXServiceCollection服務的支援。 並非所有提供者都實作SID_PNPXServiceCollection服務支援。
需求
| 最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
| 最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
| 目標平台 | Windows |
| 標頭 | functiondiscoveryprovider.h |