使用 INF AddProperty 指示詞和 INF DelProperty 指示詞
在 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 專案值提供下列內容:
property-name
識別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”,而屬性標識符專案值為 “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"