Usando a diretiva AddProperty do INF e a diretiva INF DelProperty

No Windows Vista e em versões posteriores do Windows, você pode usar diretivas AddProperty do INF e diretivas INF DelProperty para definir e excluir propriedades para instâncias de dispositivo, classes de instalação de dispositivo, classes de interface do dispositivo e interfaces de dispositivo. Isso inclui propriedades de dispositivo definidas pelo sistema e propriedades de dispositivo personalizadas. No entanto, você deve usar as seguintes diretrizes ao usar as diretivas AddProperty e DelProperty em vez de diretivas AddReg inf e diretivas INF DelReg para definir e excluir propriedades do dispositivo:

  • Para propriedades de dispositivo introduzidas no Windows Vista e versões posteriores do Windows, você deve usar as diretivas AddProperty e DelProperty para definir e excluir propriedades do dispositivo.

  • Para propriedades de dispositivo que foram introduzidas no Windows Server 2003, Windows XP ou Windows 2000 e que podem ser definidas pela diretiva AddReg e excluídas pela diretiva DelReg , você deve continuar a usar as diretivas AddReg e DelReg para definir e excluir essas propriedades do dispositivo. Você não deve usar as diretivas AddProperty e DelProperty .

Você pode incluir a diretiva AddProperty do INF e a diretiva INF DelProperty nas seguintes seções de arquivo INF para definir e excluir propriedades para instâncias de dispositivo, classes de configuração de dispositivo, classes de interface do dispositivo e interfaces de dispositivo:

Usando a diretiva AddProperty do INF

Para modificar um valor de propriedade, inclua uma diretiva AddProperty do INF na seção que instala uma instância de dispositivo, uma classe de configuração de dispositivo, uma classe de interface do dispositivo ou uma interface do dispositivo. Uma diretiva AddProperty faz referência a uma ou mais seções add-property que incluem entradas que especificam a propriedade, como modificar a propriedade e o valor usado para modificar a propriedade. O formato de uma diretiva AddProperty é o seguinte:

AddProperty=add-property-section[,add-property-section] ...

Cada linha em uma seção add-property especifica uma propriedade. O exemplo a seguir mostra os dois formatos de linha possíveis que especificam informações de propriedade. O formato de primeira linha mostrado especifica uma propriedade pelo nome. Esse formato só pode ser usado com as propriedades DEVPKEY_DrvPkg_Xxx . O segundo formato de linha especifica uma propriedade pela categoria de propriedade e pelo identificador de propriedade da chave de propriedade correspondente. Esse segundo formato pode ser usado para especificar uma propriedade definida pelo sistema ou uma propriedade de dispositivo personalizada.

[add-property-section]property-name,,,[flags],value{property-category-guid},property-pid,type,[flags],value Os valores de entrada fornecem o seguinte:

property-name
O nome que identifica uma propriedade DEVPKEY_DrvPkg_Xxx . Por exemplo, DeviceModel, que representa a propriedade DEVPKEY_DrvPkg_Model ou DeviceVendorWebSite, que representa a propriedade DEVPKEY_DrvPkg_VendorWebSite .

property-category-guid
O valor GUID da categoria de propriedade à qual a propriedade pertence. Por exemplo, a propriedade DEVPKEY_Device_FriendlyName definida pelo sistema. O valor guid também pode especificar uma categoria de dispositivo personalizada.

property-pid
O identificador de propriedade que identifica uma propriedade dentro de uma categoria de propriedade. Por exemplo, o valor do identificador de propriedade da propriedade DEVPKEY_Device_FriendlyName é 14.

Sinalizadores
Um sinalizador opcional que indica como modificar o valor da propriedade.

Tipo
Um identificador de tipo de dados de propriedade que especifica o tipo de dados.

value
O valor usado para modificar o valor da propriedade.

O exemplo a seguir de uma diretiva AddProperty inclui duas entradas de linha. A primeira linha inclui o valor de entrada de nome da propriedade "DeviceModel" e o valor de entrada de valor "Nome do modelo de dispositivo de exemplo". Essa entrada define a propriedade DEVPKEY_DrvPkg_Model. A segunda entrada de linha define uma propriedade personalizada em uma categoria de propriedade personalizada. O valor da entrada property-category-guid é "c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e" e o valor de entrada do identificador de propriedade é "2". O valor de entrada sinalizadores opcionais não está presente e o valor de entrada de tipo é "18" (DEVPROP_TYPE_STRING). O valor de entrada de valor é "Valor de cadeia de caracteres para a propriedade 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"

Usando a diretiva INF DelProperty

Para excluir uma propriedade, inclua uma diretiva INF DelProperty na seção que instala uma instância de dispositivo, uma classe de configuração de dispositivo, uma classe de interface do dispositivo ou uma interface do dispositivo.

O main finalidade da diretiva INF DelProperty é para uso em um arquivo INF que atualiza uma instalação de dispositivo. Nesse caso, a diretiva DelProperty pode ser usada para excluir uma propriedade que foi definida por uma instalação anterior, mas não é mais exigida pela instalação atualizada. Use a diretiva DelProperty com cuidado. DelProperty não deve ser usado para excluir uma propriedade que também pode ser definida por um componente do sistema ou por outro arquivo INF.

A diretiva DelProperty tem o seguinte formato:

DelProperty=del-property-section[,del-property-section] ...

Cada linha em uma del-property-section especifica uma propriedade. O exemplo a seguir mostra os dois formatos de linha possíveis que especificam informações de propriedade. O formato de primeira linha mostrado especifica uma propriedade pelo nome. Esse formato só pode ser usado com as propriedades DEVPKEY_DrvPkg_Xxx . O segundo formato de linha especifica uma propriedade pela categoria de propriedade e pelo identificador de propriedade da chave de propriedade correspondente. O segundo formato pode ser usado para especificar uma propriedade definida pelo sistema ou uma propriedade de dispositivo personalizada.

[del-property-section]property-name [,,Flags [,value]] {property-category-guid},property-pid [,Flags [,value]] Os valores de entrada fornecem o seguinte:

property-name
O nome que identifica uma propriedade DEVPKEY_DrvPkg_Xxx . Por exemplo, DeviceModel, que representa a propriedade DEVPKEY_DrvPkg_Model ou DeviceVendorWebSite, que representa a propriedade DEVPKEY_Device_FriendlyName .

property-category-guid
O valor GUID da categoria de propriedade à qual a propriedade pertence. Por exemplo, a propriedade DEVPKEY_Device_FriendlyName definida pelo sistema. O valor guid também pode especificar uma categoria de dispositivo personalizada.

property-pid
O identificador de propriedade que identifica uma propriedade dentro de uma categoria de propriedade. Por exemplo, o valor do identificador de propriedade da propriedade DEVPKEY_Device_FriendlyName é 14.

Sinalizadores
Um sinalizador opcional válido para uso somente com uma propriedade cujo tipo de dados é DEVPROP_TYPE_STRING_LIST. Se o sinalizador estiver definido, a operação de exclusão excluirá a cadeia de caracteres especificada pelo valor da lista de cadeias de caracteres de propriedade.

value
A cadeia de caracteres a ser excluída de uma lista de cadeias de caracteres de propriedade.

O exemplo a seguir de uma del-property-section inclui duas entradas de linha.

A primeira linha inclui o valor de entrada de nome da propriedade "DeviceModel", que exclui a propriedade DEVPKEY_DrvPkg_Model. A segunda entrada de linha exclui a cadeia de caracteres "DeleteThisString" de um valor de propriedade de dispositivo personalizado cujo tipo de dados é DEVPROP_TYPE_STRING_LIST. Na segunda linha, o valor de entrada property-category-guid é "c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e", o valor de entrada do identificador de propriedade é "2" e o valor de entrada Sinalizadores é "0x00000001".

[SampleDelPropertySection]
DeviceModel
{c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e}, 2, 0x00000001, "DeleteThisString"