INF AddProperty-Direktive

Eine AddProperty-Direktive verweist auf einen oder mehrere INF-Dateiabschnitte, die die Geräteeigenschaften ändern, die für ein Gerät instance, eine Geräteeinrichtungsklasse, eine Geräteschnittstellenklasse oder eine Geräteschnittstelle festgelegt sind.

[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)
...

Jeder add-property-section kann Einträge für die folgenden Aktionen enthalten:

  • Fügen Sie eine Geräteeigenschaft hinzu, und initialisieren Sie den Wert der Eigenschaft.

  • Ändern Sie den Wert einer vorhandenen Geräteeigenschaft.

Ein add-property-section , auf den von einer AddProperty-Direktive verwiesen wird, hat das folgende Format:

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

Ein Abschnitt zum Hinzufügen von Eigenschaften kann eine beliebige Anzahl von Eigenschaftsnameneinträgen oder Eigenschafts-GUID-Einträgen enthalten, die jeweils in einer separaten Zeile enthalten sind.

Einträge

Eigenschaftsname
Einer der folgenden Eigenschaftennamen, der die Eigenschaften des Gerätes instance Treiberpakets darstellt:

  • DeviceModel

  • DeviceVendorWebsite

  • DeviceDetailedDescription

  • DeviceDocumentationLink

  • DeviceIcon

  • DeviceBrandingIcon

Weitere Informationen zum Hinzufügen von benutzerdefinierten Gerätesymbolen finden Sie unter Bereitstellen von Symbolen für ein Gerät.

property-category-guid
Ein GUID-Wert, der die Eigenschaftenkategorie identifiziert. Der GUID-Wert kann eine systemdefinierte GUID sein, die eine der Eigenschaftenkategorien für ein Gerät instance, eine Geräteeinrichtungsklasse, eine Geräteschnittstellenklasse oder eine Geräteschnittstelle identifiziert. Alle Eigenschaften, die über denselben GUID-Wert verfügen, sind Mitglieder derselben Kategorie. Diese Eigenschaftenkategorien werden in Devpkey.h definiert.

Der GUID-Wert kann auch ein benutzerdefinierter GUID-Wert sein, der eine benutzerdefinierte Eigenschaftenkategorie identifiziert.

property-pid
Der Eigenschaftsbezeichner, der die spezifische Eigenschaft innerhalb der Eigenschaftenkategorie angibt, die durch den Wert property-category-guid angegeben wird. Aus internen Systemgründen muss ein Eigenschaftsbezeichner größer oder gleich zwei sein.

type
Der numerische Wert im Dezimal- oder Hexadezimalformat des Eigenschaftsdatentypbezeichners für die Eigenschaft, die durch den property-category-guid-Wert und den property-pid-Wert angegeben wird. Es werden nur die folgenden Basisdatentypen unterstützt:

  • DEVPROP_TYPE_STRING

  • DEVPROP_TYPE_STRING_LIST

  • DEVPROP_TYPE_BINARY

  • DEVPROP_TYPE_BOOLEAN

  • DEVPROP_TYPE_UINT32

Der Dezimalwert des Datentyps DEVPROP_TYPE_STRING ist beispielsweise 18 (0x00000012), und der Dezimalwert des datentyps DEVPROP_TYPE_STRING_LIST ist 8210 (0x00002012).

flags
Ein optionaler Hexadezimalwert, der ein bitweises OR der folgenden Flags ist, die den Add-Vorgang steuern:

0x00000001 (FLG_ADDPROPERTY_NOCLOBBER)
Ein Flag, das verhindert, dass der Werteintragswert den vorhandenen Eigenschaftswert ersetzt. Wenn ein Treiberwriter eine Eigenschaft über die Include - und Needs-Direktiven außer Kraft setzen möchte, muss der Writer dieses Flag für diese Eigenschaft angeben. Dies liegt daran, dass Windows die INF-Abschnitte verarbeitet, auf die durch die Include- und Needs-Direktiven verwiesen wird, nachdem Windows alle anderen Direktiven innerhalb des INF-Abschnitts verarbeitet hat, der die Include- und Needs-Direktiven enthält.

0x00000002 (FLG_ADDPROPERTY_OVERWRITEONLY)
Ein Flag, das den Eigenschaftswert nur dann auf den Werteintragswert festlegt, wenn die angegebene Eigenschaft bereits vorhanden ist.

0x00000004 (FLG_ADDPROPERTY_APPEND)
Ein Flag, das den Werteintragswert an den wert eines vorhandenen Eigenschaftszeichenfolgenwerts anhängt. Dieses Flag ist nur gültig, wenn der Eigenschaftsdatentyp DEVPROP_TYPE_STRING_LIST ist. Die angegebene Zeichenfolge wird nicht an einen vorhandenen Eigenschaftszeichenfolgenwert angefügt, wenn die angegebene Zeichenfolge bereits im vorhandenen Zeichenfolgenwert vorhanden ist.

0x00000008 (FLG_ADDPROPERTY_OR)
Ein Flag, das ein bitweises OR des Werteintragswerts zu dem des vorhandenen Eigenschaftswerts ausführt. Dieses Flag ist nur gültig, wenn der Eigenschaftsdatentyp DEVPROP_TYPE_UINT32 ist.

0x00000010 (FLG_ADDPROPERTY_AND)
Ein Flag, das ein bitweises AND des Werteintragswerts zum Wert des vorhandenen Eigenschaftswerts ausführt. Dieses Flag ist nur gültig, wenn der Eigenschaftsdatentyp DEVPROP_TYPE_UINT32 ist.

value
Der Wert, den der Add-Vorgang verwendet, um einen Eigenschaftswert abhängig vom Eigenschaftsdatentyp und dem Wert des Flags-Eintrags zu ändern.

Hinweise

Die AddProperty-Direktive kann verwendet werden, um eine systemdefinierte Geräteeigenschaft oder eine benutzerdefinierte Geräteeigenschaft zu ändern. Diese Direktive kann in jedem der Abschnitte angegeben werden, die in der obigen formalen Syntax-Anweisung gezeigt werden.

Jeder Add-Property-Section-Name muss innerhalb einer INF-Datei eindeutig sein, aber auf den Abschnitt kann von mehreren AddProperty-Direktiven in derselben INF-Datei verwiesen werden. Jeder Abschnittsname muss den allgemeinen Regeln zum Definieren von Abschnittsnamen entsprechen, die unter Allgemeine Syntaxregeln für INF-Dateien beschrieben sind.

Weitere Informationen zur Verwendung der INF AddProperty-Direktive finden Sie unter Verwenden der INF-AddProperty-Direktive und der INF DelProperty-Direktive.

Beispiele

Das folgende Beispiel für einen Abschnitt zum Hinzufügen von Eigenschaften enthält zwei Zeileneinträge: Der erste Zeileneintrag legt die DeviceModel-Eigenschaft anhand des Namens fest, und der zweite Zeileneintrag legt eine benutzerdefinierte Geräteeigenschaft durch Angabe einer benutzerdefinierten Eigenschaftenschlüssel-GUID fest.

Die erste Zeile enthält den Eintragswert "DeviceModel" und den Werteintragswert "Name des Beispielgerätemodells".

Der zweite Zeileneintrag legt eine benutzerdefinierte Eigenschaft in einer benutzerdefinierten Eigenschaftenkategorie fest. Der Eintragswert property-category-guid lautet "c22189e4-8bf3-4e6d-8467-8dc6d95e2a7e", und der Eigenschaftsbezeichnereintragswert ist "2".

Der optionale Flageintragswert ist nicht vorhanden, und der Typeintragswert ist "18" (DEVPROP_TYPE_STRING). Der Werteintragswert ist "Zeichenfolgenwert für Eigenschaft 1".

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

Weitere Informationen

DelProperty