[函式探索可用於需求一節中指定的作業系統。 後續版本可能會變更或無法使用。]
建立或修改函式實例。
語法
HRESULT AddInstance(
[in] SystemVisibilityFlags enumSystemVisibility,
[in] const WCHAR *pszCategory,
[in] const WCHAR *pszSubCategory,
[in] const WCHAR *pszCategoryIdentity,
[out] IFunctionInstance **ppIFunctionInstance
);
參數
[in] enumSystemVisibility
SystemVisibilityFlags值,指定所建立的函式實例是可見的系統範圍,還是只對目前使用者顯示。
[in] pszCategory
已建立之函式實例的類別。 請參閱 類別定義。
[in] pszSubCategory
所建立函式實例的子類別。 請參閱 子類別定義。 此字串的最大長度是MAX_PATH。
[in] pszCategoryIdentity
提供者實例識別碼字串。 此字串會從 GetProviderInstanceID傳回。
[out] ppIFunctionInstance
接收函式實例之 IFunctionInstance 介面指標的指標。
傳回值
可能的傳回值包括但不限於下列各項。
| 傳回碼/值 | 描述 |
|---|---|
|
已成功完成命令。 |
|
enumSystemVisibility、pszCategory或pszCategoryIdentity的值無效。 |
|
方法無法配置執行這項作業所需的記憶體。 |
|
使用者沒有足夠的存取權限可執行要求的動作。 |
|
提供者不支援使用 AddInstance 方法直接新增函式實例。 |
|
pszCategory或pszSubCategory的值未知。 |
|
指定了不正確參數。 當 pszSubCategory 字串的長度超過 MAX_PATH 時,就會傳回此錯誤。 |
備註
這個方法會暫時為指定的類別和子類別建立新的函式實例。 實作類別的提供者會負責使用 IFunctionDiscoveryProviderFactory::CreateInstance 方法保存與新建立之函式實例相關聯的中繼資料。
如果函式實例的關聯屬性存放區沒有任何值,則函式實例不會寫入登錄。 使用 IFunctionInstance::OpenPropertyStore 方法來檢查屬性存放區值。
如果指定的類別和子類別已經存在函式實例,則會覆寫現有的登錄專案。 AddInstance方法會傳回S_OK。 函式探索變更通知程式會叫用呼叫應用程式的 IFunctionDiscoveryNotification::OnUpdate 方法,並將 enumQueryUpdateAction 設定為 QUA_CHANGE。
需要變更 HKEY_LOCAL_MACHINE\SYSTEM 登錄機碼的存取權限,才能使用登錄提供者新增或移除函式實例, (系統管理員或 Power User 存取) 。
需求
| 最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
| 最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
| 目標平台 | Windows |
| 標頭 | functiondiscoveryapi.h |
| Dll | FunDisc.dll |