使用 INF AddProperty 指示詞和 INF DelProperty 指示詞

在 Windows Vista 和更新版本的 Windows 中,您可以使用 INF AddProperty 指示 詞和 INF DelProperty 指示 詞來設定和刪除裝置實例、 裝置安裝類別裝置介面類別別和裝置介面的屬性。 這包括 系統定義的裝置屬性自訂裝置屬性。 不過,當您使用AddProperty 和 DelProperty指示詞,而不是INF AddReg 指示詞和 INF DelReg指示詞來設定和刪除裝置屬性時,您應該使用下列指導方針:

  • 針對在 Windows Vista 和更新版本的 Windows 上引進的裝置屬性,您應該使用 AddPropertyDelProperty 指示詞來設定和刪除裝置屬性。

  • 對於在 Windows Server 2003、Windows XP 或 Windows 2000 上引進的裝置屬性,而且可由AddReg指示詞設定,並由 DelReg 指示詞刪除,您應該繼續使用AddRegDelReg指示詞來設定和刪除這些裝置屬性。 您不應該使用 AddPropertyDelProperty 指示詞。

您可以在下列 INF 檔案區段中包含 INF AddProperty 指示詞和 INF DelProperty 指示詞,以設定和刪除裝置實例的屬性、裝置安裝類別、裝置介面類別別和裝置介面:

使用 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-pidtype,[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。

標誌
選擇性旗標,指出如何修改屬性值。

類型
指定資料類型的屬性 資料類型識別碼

value
用來修改屬性值的值。

下列 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的屬性。 如果設定旗標,刪除作業會從屬性字串清單中刪除 由值 指定的字串。

value
要從屬性字串清單刪除的字串。

下列 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"