INF AddProperty 指示詞

AddProperty 指示詞會參考一或多個 INF 檔案區段,這些區段會修改為裝置實例、裝置安裝類別裝置介面類別或裝置介面所設定的裝置屬性

[DDInstall] |
[DDInstall.nt] |
[DDInstall.ntx86] |
[DDInstall.ntia64] |
[DDInstall.ntamd64] |
[DDInstall.ntarm] |
[DDInstall.ntarm64]
[ClassInstall32] | 
[ClassInstall32.nt] | 
[ClassInstall32.ntx86] |
[ClassInstall32.ntia64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntamd64] | (Windows XP and later versions of Windows)
[ClassInstall32.ntarm] | (Windows 8 and later versions of Windows)
[ClassInstall32.ntarm64] | (Windows 10 version 1709 and later versions of Windows)
[interface-install-section] | 
[interface-install-section.nt] | 
[interface-install-section.ntx86] | 
[interface-install-section.ntia64] | (Windows XP and later versions of Windows)
[interface-install-section.ntamd64] | (Windows XP and later versions of Windows) |
[interface-install-section.ntarm] | (Windows 8 and later versions of Windows) |
[interface-install-section.ntarm64] | (Windows 10 version 1709 and later versions of Windows)
[add-interface-section]

AddProperty=add-property-section[,add-property-section]...  (Windows Vista and later versions of Windows)
...

每個 add-property-section 都可以有項目來執行下列動作:

  • 新增裝置屬性,並初始化 屬性的值。

  • 修改現有裝置屬性的值。

AddProperty 指示詞所參考的 add-property-section 具有下列格式:

[add-property-section]
(property-name, , , [flags], value]) | 
({property-category-guid}, property-pid, type, [flags], value)
...

add 屬性區段可以有任意數目的屬性 名稱 專案或 屬性 GUID 專案,每一行各有一個。

項目

property-name
下列其中一個屬性名稱,代表裝置實例 驅動程式套件 屬性:

  • DeviceModel

  • DeviceVendorWebsite

  • DeviceDetailedDescription

  • DeviceDocumentationLink

  • DeviceIcon

  • DeviceBrandingIcon

如需新增自定義裝置圖示的詳細資訊,請參閱 提供裝置的圖示

property-category-guid
識別屬性類別目錄的 GUID 值。 GUID 值可以是系統定義的 GUID,可識別裝置實例、 裝置安裝類別裝置介面類別或裝置介面的其中一個屬性類別。 具有相同 GUID 值的所有屬性都是相同類別的成員。 這些屬性類別定義於 Devpkey.h 中。

GUID 值也可以是可識別自訂屬性類別目錄的自定義 GUID 值。

property-pid
屬性標識符,指出屬性類別目錄內由 property-category-guid 值表示的特定屬性。 基於內部系統理由,屬性標識碼必須大於或等於兩個。

type
property-category-guid 值和 property-pid 值所指定之屬性的十進位或十六進位格式的數值。 只支援下列 基底資料類型

  • DEVPROP_TYPE_STRING

  • DEVPROP_TYPE_STRING_LIST

  • DEVPROP_TYPE_BINARY

  • DEVPROP_TYPE_BOOLEAN

  • DEVPROP_TYPE_UINT32

例如,DEVPROP_TYPE_STRING數據類型的十進位值為18 (0x00000012) ,而DEVPROP_TYPE_STRING_LIST數據類型的十進位值為8210 (0x00002012) 。

flags
選擇性十六進位值,這是下列旗標的位 OR,可控制新增作業:

0x00000001 (FLG_ADDPROPERTY_NOCLOBBER)
旗標,可防止值專案值取代現有的屬性值。 如果驅動程式寫入器想要讓屬性能夠透過 IncludeNeeds 指示詞覆寫,則寫入器必須指定該屬性的這個旗標。 這是因為 Windows 會在 Windows 處理 包含 IncludeNeeds 指示詞之 INF 區段內包含 IncludeNeeds 指示詞的所有其他指示詞之後,處理 INF 區段所參考的 INF 區段。

0x00000002 (FLG_ADDPROPERTY_OVERWRITEONLY)
只有在指定的屬性已經存在時,才會將屬性值設定為值專案值的旗標。

0x00000004 (FLG_ADDPROPERTY_APPEND)
將值專案值附加至現有屬性值的旗標。 只有當屬性數據類型DEVPROP_TYPE_STRING_LIST時,這個旗標才有效。 如果所提供的字串已經存在於現有的字串值中,則提供的字串不會附加至現有的屬性值。

0x00000008 (FLG_ADDPROPERTY_OR)
將值專案值的位 OR 執行至現有屬性值的旗標。 只有當屬性數據類型DEVPROP_TYPE_UINT32時,這個旗標才有效。

0x00000010 (FLG_ADDPROPERTY_AND)
將值專案值的位 AND 執行至現有屬性值的旗標。 只有當屬性數據類型DEVPROP_TYPE_UINT32時,這個旗標才有效。

value
加入作業用來修改屬性值的值,視屬性數據類型和 旗標 專案的值而定。

備註

AddProperty 指示詞可用來修改系統定義的裝置屬性或自定義裝置屬性。 您可以在上述正式語法語句所示的任何區段下指定這個指示詞。

每個 add-property-section 名稱在 INF 檔案內必須是唯一的,但該區段可以由相同 INF 檔案中的多個 AddProperty 指示詞參考。 每個區段名稱都必須遵循一般規則,以定義 INF 檔案的一般語法規則中所述的區段名稱。

如需如何使用 INF AddProperty 指示詞的詳細資訊,請參閱 使用 INF AddProperty 指示詞和 INF DelProperty 指示詞。

範例

下列 add 屬性區段的範例包含兩行專案:第一行專案會依名稱設定 DeviceModel 屬性,而第二行專案會藉由指定自定義屬性索引鍵 GUID 來設定自定義裝置屬性。

第一行包含 屬性名稱 專案值 「DeviceModel」 和 專案值 「Sample Device Model Name」。

第二行專案會在自定義屬性類別中設定自定義屬性。 property-category-guid 專案值為 “c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e”,而 property-identifier 專案值為 “2”。

選擇性 標專案值不存在,且類型專案值為 「18」 (DEVPROP_TYPE_STRING) 。 值專案值為「屬性 1 的字串值」。

[SampleAddPropertySection]
DeviceModel,,,,"Sample Device Model Name"
{c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e}, 2, 18,, "String value for property 1"

另請參閱

DelProperty