在 Windows Vista 和更新版本的 Windows 中,您可以使用 INF AddProperty 指示詞 和 INF DelProperty 指示詞 來設定和刪除裝置實例、 裝置設定類別、 裝置介面類別和裝置介面的屬性。 這包括 系統定義的裝置屬性 和 自定義裝置屬性。 不過,當您使用 AddProperty 和 DelProperty 指令,而不是 INF AddReg 指令 和 INF DelReg 指令 來設定和刪除裝置屬性時,您應該使用下列指導方針:
針對在 Windows Vista 和更新版本的 Windows 上引進的裝置屬性,您應該使用 AddProperty 和 DelProperty 指示詞來設定及刪除裝置屬性。
針對在 Windows Server 2003、Windows XP 或 Windows 2000 上引進的裝置屬性,而且可由 AddReg 指示詞設定,並由 DelReg 指示詞刪除,您應該繼續使用 AddReg 和 DelReg 指示詞來設定和刪除這些裝置屬性。 您不應該使用 AddProperty 和 DelProperty 指令。
您可以在下列 INF 檔案區段中包含 INF AddProperty 指示詞和 INF DelProperty 指示詞,以設定與刪除裝置實例的屬性、裝置設定類別、裝置介面類別和裝置介面:
INF InterfaceInstall32 區段所參考的 install-interface-section
INF AddInterface 指示詞所參考的 add-interface-section
使用 INF AddProperty 指示詞
若要修改屬性值,請在安裝裝置實例、裝置安裝類別、裝置介面類別或裝置介面的 區段中加入 INF AddProperty 指示詞。 AddProperty 指令會參考一或多個 add-property-sections,其中包含屬性條目、如何修改屬性,以及用來修改屬性的值。 AddProperty 指示詞的格式如下所示:
AddProperty=add-property-section[,add-property-section] ...
add-property-section 中的每個行都會指定一個屬性。 下列顯示指定屬性資訊的兩種可能行格式。 顯示的第一行格式會依其名稱指定屬性。 此格式只能與 DEVPKEY_DrvPkg_Xxx 屬性搭配使用。 第二行格式會透過對應的屬性鍵的屬性類別和屬性標識碼來指定屬性。 第二個格式可用來指定系統定義的屬性或 自定義裝置屬性。
[add-property-section]property-name,,,[flags],value{property-category-guid},property-pid,type,[flags],value 輸入值提供以下內容:
屬性名稱
識別DEVPKEY_DrvPkg_Xxx 屬性的名稱。 例如,代表DEVPKEY_DrvPkg_Model屬性的 DeviceModel,或代表DEVPKEY_DrvPkg_VendorWebSite屬性的 DeviceVendorWebSite。
property-category-guid
屬性所屬類別的 GUID 值。 例如,系統定義的 DEVPKEY_Device_FriendlyName 屬性。 GUID 值也可以指定自訂裝置類別。
property-pid
用於識別屬性類別中屬性的屬性識別符。 例如,DEVPKEY_Device_FriendlyName屬性的屬性標識碼值為14。
類型
指定數據類型的屬性資料類型識別碼。
下列 AddProperty 指令範例包含兩行條目。 第一行包含 屬性名稱 專案值 「DeviceModel」 和 值 專案值 「Sample Device Model Name」。這個項目會設定 DEVPKEY_DrvPkg_Model 屬性。 第二行條目會在自定義屬性類別中設定自定義屬性。 property-category-guid 條目值為 “c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e”,property-identifier 條目值為 “2”。選擇性Flags 條目值不存在,且類型 條目值為 「18」 (DEVPROP_TYPE_STRING)。 值專案值為「屬性 1 的字串值」。
[Root_Install.NT]
AddProperty=Root_AddProperty
[Root_AddProperty]
DeviceModel,,,,"Sample Device Model Name"
{c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e}, 2, 18,, "String value for property 1"
使用 INF DelProperty 指示詞
若要刪除屬性,請在安裝裝置實例、裝置安裝類別、裝置介面類別或裝置介面的 區段中加入 INF DelProperty 指示詞。
INF DelProperty 指示詞的主要用途是用於更新裝置安裝的 INF 檔案中。 在這種情況下,DelProperty 指示詞可用來刪除由先前安裝設定、但更新後安裝不再需要的屬性。 請小心使用 DelProperty 指示詞。 DelProperty 不應該用來刪除系統元件或其他 INF 檔案可能也設定的屬性。
DelProperty 指示詞的格式如下:
DelProperty=del-property-section[,del-property-section] ...
del-property-section 中的每個行都會指定一個屬性。 下列顯示指定屬性資訊的兩種可能行格式。 顯示的第一行格式會依其名稱指定屬性。 此格式只能與 DEVPKEY_DrvPkg_Xxx 屬性搭配使用。 第二行格式會依據對應屬性金鑰的屬性類別和屬性標識來指定屬性。 第二種格式可用來指定系統定義的屬性或 自定義裝置屬性。
[del-property-section]property-name [,,Flags [,value]] {property-category-guid},property-pid [,Flags [,value]] 條目值提供下列內容:
property-name
識別DEVPKEY_DrvPkg_Xxx 屬性的名稱。 例如,代表DEVPKEY_DrvPkg_Model屬性的 DeviceModel,或代表DEVPKEY_Device_FriendlyName屬性的 DeviceVendorWebSite。
property-category-guid
屬性所屬類別的 GUID 值。 例如,系統定義的 DEVPKEY_Device_FriendlyName 屬性。 GUID 值也可以指定自訂裝置類別。
property-pid
用於識別屬性類別中某個屬性的屬性識別碼。 例如,DEVPKEY_Device_FriendlyName屬性的屬性標識碼值為14。
旗標
選擇性旗標,僅適用於數據類型 為DEVPROP_TYPE_STRING_LIST的屬性。 如果設定旗標,刪除作業會從屬性字串清單中刪除 值 所指定的字串。
下列 del-property-section 範例包含兩個行條目。
第一行包含 屬性名稱 條目值 "DeviceModel",會刪除 DEVPKEY_DrvPkg_Model 屬性。 第二行專案會從數據類型為DEVPROP_TYPE_STRING_LIST的自定義裝置屬性值中刪除字串 “DeleteThisString”。 在第二行中, property-category-guid 專案值為 “c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e”, 屬性標識符 專案值為 “2”, 而 Flags 專案值為 “0x00000001”。
[SampleDelPropertySection]
DeviceModel
{c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e}, 2, 0x00000001, "DeleteThisString"