INF Validation Errors and Warnings

This topic describes driver installation errors and warnings that can appear as a result of the automatic INF verification that Microsoft Visual Studio performs, or when you run the InfVerif tool.

Starting in Visual Studio 2015 with WDK 10, when you build your driver, the following INF file errors can appear in the Error List pane. If you are running InfVerif.exe from the command line, the tool displays these errors at the command prompt, or in the HTML version of the results.

Error Guidance

InfVerif follows a general rule that the lower the error number, the more severe the issue. Most error codes can be either a warning or an error depending on the arguments supplied to InfVerif.

Errors should be considered "must fix".

Warnings can be ignored if they are fully understood, but they are often symptoms of another problem. For instance, a warning about a section being unused could be a symptom of an INF directive being invoked incorrectly.

Handling Errors

You must fix all errors in order to pass driver tests in Hardware Dev Center.

Errors are related to the following conditions:

  • The INF parser is unable to successfully interpret your INF
  • The INF parser is able to interpret the INF only by making a default value assumption (ambiguous syntax)
  • The arguments to InfVerif indicate that a rule set should be applied to the INF (such as InfVerif /h)

While you don't need to fix warnings before submitting your driver on the Dev Center, we recommend taking the time to understand the issue being reported. If you don't understand a given warning, your INF might not always behave as you expect.

Warnings are typically related to:

  • Syntax that may be incorrect but has valid scenarios where it is appropriate
  • Syntax that is valid for the given InfVerif parameters but is an error in other modes, such as Driver Isolation mode

Error Codes

In WDK 10.0.26100.1 (Windows 11, version 24H2), InfVerif.exe command 'infverif.exe /code' has the same information as the below table.

Error Code and Description Error Levels              
Code 1000

Message
INF '<value>' could not be found.

Details
The INF file could not be located in the specified file path.
/k: Error
/u: Error
/w: Error


Code 1001

Message
Invalid INF '<value>', must contain [Version] section and have signature "$Windows NT$".

Details
Driver INFs require a top-level [Version] section with metadata about the file format. This section was missing or
indicated that the INF was in an unsupported format.
/k: Error
/u: Error
/w: Error


Code 1002

Message
Invalid INF '<value>', parsing error on line <value>. The parser returned error 0x<value>.

Details
The INF contained a syntax error on the specified line that prevented parsing from continuing. Typically,
additional error messages will indicate the manner of the failure, or the error code will indicate the problem.
/k: Error
/u: Error
/w: Error


Code 1003

Message
INF has invalid or unknown file encoding, must be ANSI or UTF-16 LE.

Details
The encoding of the INF is not supported and may lead to a failure to parse the INF. The INF should be converted to
UTF-16 LE.
/k: Error
/u: Error
/w: Error


Code 1005

Message
Section name required for <value> directive.

Details
The indicated directive requires an argument specifying a section that contains more data, but this section was omitted.
/k: Error
/u: Error
/w: Error


Code 1006

Message
Missing value for <value>.

Details
A required argument for the specified directive has been omitted.
/k: Error
/u: Error
/w: Error


Code 1007

Message
Missing <value> for source file "<value>" in section [<value>].

Details
A disk or file path was specified with an invalid subdirectory value.
/k: Error
/u: Error
/w: Error


Code 1008

Message
Missing or invalid disk ID for '<value>' under [<value>] section.

Details
A disk or file path was specified with an invalid ID value.
/k: Error
/u: Error
/w: Error


Code 1010

Message
Invalid ClassGuid "<value>", expecting {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}.

Details
The ClassGuid value is in an incorrect format. It should follow the standard GUID format, including braces and dashes.
/k: Error
/u: Error
/w: Error


Code 1011

Message
Missing models section name in [Manufacturer] section.

Details
An entry in the [Manufacturer] section is missing the section name of the [Models] section.
/k: Error
/u: Error
/w: Error


Code 1013

Message
Missing <value> <value> key in section <value>.

Details
A required key in the INF section is not specified.
/k: Error
/u: Error
/w: Error


Code 1014

Message
Invalid <value> <value> key in section <value>.

Details
A required key in the INF section was found but was supplied with invalid data.
/k: Error
/u: Error
/w: Error


Code 1015

Message
Invalid <value> path "<value>" in section <value>.

Details
The specified path had an incorrect format.
/k: Error
/u: Error
/w: Error


Code 1016

Message
Failed to get <value> path for <value> file "<value>".

Details
The full path to the file could not be generated. The path is assembled using [SourceDisksFiles] and
[SourceDisksNames] and may be missing or incorrectly listed in those sections.
/k: Error
/u: Error
/w: Error


Code 1017

Message
Service name <value> is reserved for internal use only.

Details
This service name is reserved and must be changed. All names used in sample drivers are reserved.
/k: Error
/u: Error
/w: Error


Code 1019

Message
Invalid <value> <value> GUID "<value>", expecting {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}.

Details
The GUID is in an incorrect format. It should follow the standard GUID format, including braces and dashes.
/k: Error
/u: Error
/w: Error


Code 1020

Message
Filter level name "<value>" is reserved.

Details
The name of the filter level is reserved for use by internal state and may not be used as a filter level.
/k: Error
/u: Error
/w: Error


Code 1021

Message
Service '<value>' exceeds maximum name length (<value>) when made unique.

Details
The name of the service exceeds the maximum service name length when made unique by appending the unique token to the name.
/k: Error
/u: Error
/w: Error


Code 1022

Message
Service name '<value>' must utilize the unique names feature across all declarations.

Details
Multiple install sections within the INF use the same service name, but only a subset of them are utilizing the unique
names capability. They must be consistent with the usage of the unique names capability.
/k: Error
/u: Error
/w: Error


Code 1078

Message
Skipping <value> "<value>" specified under <value> directive.

Details
The specified entry is not valid in the context it is used. It may be valid in other contexts.
/k: Error
/u: Error
/w: Error


Code 1080

Message
<value> directive missing <value>.

Details
An argument to the specified directive is missing.
/k: Error
/u: Error
/w: Error


Code 1081

Message
<value> directive has invalid <value> "<value>".

Details
An invalid argument was specified for the directive.
/k: Error
/u: Error
/w: Error


Code 1082

Message
<value> directive has invalid <value>.

Details
An invalid argument was specified for the directive.
/k: Error
/u: Error
/w: Error


Code 1083

Message
<value> directive has invalid <value> on <value>.

Details
An invalid flag was specified for the directive.
/k: Error
/u: Error
/w: Error


Code 1084

Message
Missing '<value>' directive for '<value>' directive with <value> "<value>" in section [<value>].

Details
The directive requires an additional directive to be specified elsewhere and could not be found. For example, the
UmdfService directive requires a corresponding UmdfLibraryVersion directive.
/k: Error
/u: Error
/w: Error


Code 1085

Message
<value> directive incomplete.

Details
The directive requires additional arguments.
/k: Error
/u: Error
/w: Error


Code 1086

Message
Duplicate <value> '<value>' may be skipped.

Details
The same piece of data was defined multiple times unnecessarily, such as multiple AddComponents specifying the same
component name.
/k: Error
/u: Error
/w: Error


Code 1087

Message
Cannot have both <value> and <value> directives, <value> will be ignored.

Details
Some definitions support only one directive or another and cannot both be used. For example, AddFilter supports
specifying a filter level or position, but not both.
/k: Error
/u: Error
/w: Error


Code 1088

Message
Duplicate <value> directive not allowed.

Details
A directive was specified multiple times, but only one can take effect. This may lead to non-deterministic behavior.
/k: Error
/u: Error
/w: Error


Code 1100

Message
Source and destination <value> must match for file '<value>' when using CopyFiles with DIRID <value>.

Details
This error occurs when a file is copied or renamed from its original driver store name and location to a different
name and location in the driver store.
[SourceDisksFiles]
DriverFile.sys=1,x64
[DestinationDirs]
CopyFileSection=13,SubDirectory

[CopyFileSection]
DriverFile.sys

The driver store maintains the original driver package directory structure. In the code above, the original
location of DriverFile.sys is <INF location>\x64, but the CopyFiles directive places it in <INF location>\SubDirectory.
The same error would be shown if the file was renamed as part of the copy.
/k: Error
/u: Error
/w: Error


Code 1101

Message
Security descriptors cannot be used with DIRID <value>.

Details
Security descriptors cannot be used with any file that has a destination directory of the specified DIRID.
/k: Error
/u: Error
/w: Error


Code 1102

Message
Invalid directive <value>, cannot be used with DIRID <value>.

Details
The specified directive cannot be used on a file that has a destination directory of the specified DIRID.
/k: Error
/u: Error
/w: Error


Code 1103

Message
Invalid flag 0x<value>, cannot be used with DIRID <value>.

Details
The specified flag cannot be used on a file that has a destination directory of the specified DIRID.
/k: Error
/u: Error
/w: Error


Code 1110

Message
Cannot specify file '<value>' in a CopyINF directive.

Details
Only other INF files can be specified in a CopyINF directive.
/k: Error
/u: Error
/w: Error


Code 1141

Message
Invalid device software binary '<value>', path must be relative to referencing driver package.

Details
An absolute path was specified to the software binary, but it must be a relative path.
/k: Error
/u: Error
/w: Error


Code 1142

Message
Invalid device software in section [<value>], SoftwareType is <value> but <value> is missing.

Details
The specified software type requires the specified directive that was not specified.
/k: Error
/u: Error
/w: Error


Code 1144

Message
Device software with SoftwareType <value> may not execute on all product types.

Details
The specified software type is only functional on Windows Desktop OS products and will not work with other product types.
/k: Warning
/u: Error
/w: Warning


Code 1150

Message
Invalid directive <value> in section [<value>], cannot contain characters '' or ','.

Details
An invalid character was specified in the component ID.
/k: Error
/u: Error
/w: Error


Code 1160

Message
Unknown threading model '<value>' specified for COM class '<value>', expecting 'Apartment', 'Free', 'Both', or 'Neutral'.

Details
The specified threading model value is not recognized. Supported types include 'Apartment', 'Free', 'Both', or 'Neutral'.
/k: Error
/u: Error
/w: Error


Code 1180

Message
Invalid event channel in section [<value>], cannot have duplicate value (<value>) across multiple channels under section [<value>].

Details
Multiple event channels have the same channel ID within a single provider. The channel IDs should be unique.

For full details on event channels, see: ChannelType
/k: Error
/u: Error
/w: Error


Code 1181

Message
Invalid event channel <value> value '<value>' in section [<value>], cannot be used with <value> <value>.

Details
The event channel specifies a value that is invalid with the channel type.

For full details on event channels, see: ChannelType
/k: Error
/u: Error
/w: Error


Code 1182

Message
Event channel <value> and <value> mismatch in section [<value>], expecting <value>=<value> for <value>=<value>.

Details
The event channel specifies a value that requires an additional parameter. This additional parameter is missing.

For full details on event channels, see: ChannelType
/k: Error
/u: Error
/w: Error


Code 1199

Message
The syntax '<value>' was introduced in OS version <value>.<value>.<value>, but DDInstall sections utilizing the syntax will install on earlier OS versions. Those DDInstall sections should be restricted to only install on <value>.<value>.<value> or higher using a TargetOSVersion decoration.

Details
The impacted DDInstall section will install on product versions that do not support the specified syntax. A build
number should be added to the Models section to limit applicability of the DDInstall to only supported product
versions. This will prevent the driver from installing on product versions where it will not function properly.

For additional information, see: INF Manufacturer Section and Combining platform extensions and operating system versions
/k: Error
/u: Error
/w: Error


Code 1201

Message
<value> entry has an extra value '<value>' and will be ignored.

Details
The specified directive has more arguments specified than are allowed. The extra values will be ignored.
/k: Warning
/u: Warning
/w: Warning


Code 1202

Message
Included INF '<value>' not found. Only system provided INFs may be included.

Details
The Include directive has specified an INF that cannot be found. Only Microsoft-supplied Inbox INFs may be referenced with the Include directive.
/k: Error
/u: Error
/w: Error


Code 1203

Message
Section [<value>] not found.

Details
A directive has referred to a section that does not exist, this may be a typo or an error in syntax.
Verify the section name exists and is spelled correctly, or refer to the full documentation on the specified directive
for additional details.
/k: Error
/u: Error
/w: Error


Code 1204

Message
Provider cannot be "Microsoft", must be organization who authored INF.

Details
Only Microsoft is permitted to specify the provider as Microsoft. Provider names that begin with Microsoft are also not permitted.
/k: Error
/u: Error
/w: Error


Code 1205

Message
Section [<value>] referenced from <value> and <value> directive.

Details
The same section was referenced from two different directives. For example:

CopyFiles = FileSection
DelFiles = FileSection
/k: Warning
/u: Warning
/w: Warning


Code 1206

Message
Invalid reference of non-<value> section [<value>] from <value> directive.

Details
The same section was referenced from two different directives. For example:

CopyFiles = FileSection
AddFilter = FileSection
/k: Error
/u: Error
/w: Error


Code 1207

Message
Directive '<value>' not allowed in MSFT INFs.

Details
Microsoft INFs are not permitted to use the specified directive.
/k: Error
/u: Error
/w: Error


Code 1208

Message
Directive '<value>' not allowed.

Details
This directive is only allowed in Microsoft-supplied Inbox INF files and may not be used by third parties.
/k: Error
/u: Error
/w: Error


Code 1209

Message
Section [<value>] is defined multiple times.

Details
Multiple sections with the same name are defined, the contents of them can be combined into one section.
/k: Error
/u: Error
/w: Error


Code 1210

Message
Provider cannot be "<value>", must be set to "<value>".

Details
Provider name must match the /provider switch.

/k: Error
/u: Error
/w: Error


Code 1211

Message
Cannot have multiple associated services under [<value>], "<value>" and "<value>". Only one service may use SPSVCINST_ASSOCSERVICE.

Details
The SPSVCINST_ASSOCSERVICE flag indicates that the service is the function driver for the device. A device can only
have one associated function driver service.
/k: Error
/u: Error
/w: Error


Code 1212

Message
Cannot have both [<value>] and [<value>] sections.

Details
The two specified section names cannot both be in the same INF file.
/k: Error
/u: Error
/w: Error


Code 1213

Message
Cannot list CAT files under [SourceDisksFiles].

Details
Catalog files should only be referenced from the CatalogFile directive within the [Version] section.
/k: Error
/u: Error
/w: Error


Code 1214

Message
Invalid catalog file '<value>', expecting 'filename.cat'.

Details
The file names of catalog files must follow the format 'filename.cat'.
/k: Error
/u: Error
/w: Error


Code 1217

Message
Invalid version '<value>' in <value> directive, expecting w.x.y.z, where each segment is between 0-65536.

Details
The version value in the specified directive must follow the format w.x.y.z, where each segment is between 0-65536.
/k: Error
/u: Error
/w: Error


Code 1218

Message
Invalid driver date value <value> in <value>, expecting MM/DD/YYYY.

Details
The date in the DriverVer directive must follow the format MM/DD/YYYY.
/k: Error
/u: Error
/w: Error


Code 1220

Message
Cannot directly reference a section defined in an included INF (<value>).

Details
Sections in included INFs can only be referenced using the Needs directive under the corresponding DDInstall sections.
/k: Error
/u: Error
/w: Error


Code 1222

Message
Cannot modify <value>\<value> registry keys, although HKLM\SYSTEM\CurrentControlSet is allowed.

Details
The specified registry key is not allowed to be written to. Registry state should be written using an AddReg directive
with a reg-root of HKR.
/k: Error
/u: Error
/w: Error


Code 1223

Message
Cannot modify <value>\<value> registry key.

Details
The specified registry key is not allowed to be written to. Registry state should be written using an AddReg directive
with a reg-root of HKR.
/k: Error
/u: Error
/w: Error


Code 1224

Message
Invalid registry root "<value>".

Details
The specified registry root is invalid. For additional information, see INF AddReg Directive
/k: Error
/u: Error
/w: Error


Code 1225

Message
Registry value '<value>' must be type '<value>'.

Details
The specified registry value is not of the required type.
/k: Error
/u: Error
/w: Error


Code 1226

Message
Security descriptor not allowed for registry value '<value>' directly under <value>.

Details
The specified registry value has a security descriptor that cannot be set. Registry values directly under HKR
cannot have alternative security descriptors set on them.
/k: Error
/u: Error
/w: Error


Code 1229

Message
Missing <value> filename on <value> entry.

Details
The specified file operation required a name to be specified, but it was not specified.
/k: Error
/u: Error
/w: Error


Code 1230

Message
Missing file '<value>' under [SourceDisksFiles] section.

Details
A file was specified in a CopyFiles or similar directive but could not be found in the [SourceDisksFiles] section,
or the listing in [SourceDisksFiles] was invalid.

This error frequently occurs when architecture-decorated versions of [SourceDisksFiles] are specified
(such as [SourceDisksFiles.amd64]), but not all architectures supported by the INF have a [SourceDisksFiles] section.
/k: Error
/u: Error
/w: Error


Code 1231

Message
Invalid compressed filename '<value>' specified under [SourceDisksFiles] section, expecting uncompressed filename '<value>'.

Details
Files specified within [SourceDisksFiles] must use the uncompressed filename and not the compressed version (myfile.sys not myfile.sy_).
/k: Warning
/u: Error
/w: Error


Code 1233

Message
Missing directive <value> required for digital signature.

Details
The specified directive is required for the driver package to be signed but it is not present.
/k: Error
/u: Error
/w: Error


Code 1234

Message
Required directive <value> missing, empty, or invalid in [<value>] section.

Details
The specified section requires that specified directive and it was not found.
/k: Error
/u: Error
/w: Error


Code 1235

Message
String token '<value>' not defined in [<value>] section - if intending to use a literal '<value>' in a string, use '<value>' instead.

Details
A specified string token has no definition in the [Strings] section. For example, the INF file specifies %REG_DWORD%
in an add-registry section specified by an AddReg directive, but there is no corresponding REG_DWORD = 0x00010001
in the [Strings] section.

This error frequently occurs if your INF file specifies a registry value that contains an environment variable. For example:
[MyAddReg]
HKR,,DllPath,%SystemRoot%\System32\binary.dll

The %SystemRoot% path component is interpreted as the "SystemRoot" string substitution token from under the
[Strings] section, rather than the intended behavior of storing the literal "%SystemRoot%" in the registry. To
use the literal value %SystemRoot% rather than perform a string substitution, use the escape sequence %%.
[MyAddReg]
HKR,,DllPath,%%SystemRoot%%\System32\binary.dll
/k: Error
/u: Error
/w: Error


Code 1241

Message
Unresolvable user-defined DIRID (<value>) for source file "<value>" in section [<value>].

Details
The user-defined DIRID could not be resolved.
/k: Error
/u: Error
/w: Error


Code 1242

Message
Unresolvable DIRID (<value>) for source file "<value>" in section [<value>].

Details
The specified DIRID value could not be resolved.
/k: Error
/u: Error
/w: Error


Code 1243

Message
Invalid DIRID value (<value>) for source file "<value>" in section [<value>].

Details
The specified DIRID value is not supported.
/k: Error
/u: Error
/w: Error


Code 1245

Message
Invalid feature score '<value>'.

Details
The specified feature score was invalid. It should be specified as a single byte hex value within the range 00-FF.
/k: Error
/u: Error
/w: Error


Code 1250

Message
Invalid EventLogType '<value>', expecting 'System', 'Application', or 'Security'.

Details
The specified event log type is not recognized. Supported types include 'System', 'Application', or 'Security'.
/k: Error
/u: Error
/w: Error


Code 1251

Message
Cannot add disabled (StartType=4) service '<value>' with SPSVCINST_ASSOCSERVICE flag.

Details
The associated service cannot be created as a disabled service.
/k: Warning
/u: Warning
/w: Warning


Code 1252

Message
Cannot add service '<value>' with <value>=<value> and ServiceType=<value>.

Details
The service configuration is conflicting or not supported for the specified service type.
/k: Warning
/u: Warning
/w: Warning


Code 1253

Message
Skipping directive '<value>' without a service name in section [<value>].

Details
The specified directive cannot be used as-is without a service name. If no service name is intentional, this may be
due to incorrect flag usage.
/k: Error
/u: Error
/w: Error


Code 1254

Message
Invalid service image path for service '<value>' with ServiceBinary='<value>'.

Details
The service image path could not be properly parsed. This may be due to incorrect or missing usage of quotation marks.
/k: Error
/u: Error
/w: Error


Code 1256

Message
Invalid WMI interface flags '<value>'.

Details
The specified WMI interface flags have invalid flags set.
/k: Error
/u: Error
/w: Error


Code 1257

Message
Registry operation value may be incorrect in some contexts, use <value> instead of Windows directory.

Details
A path was specified that can be changed to an environment variable. Use the environment variable instead to make
the driver more robust against environment changes.
/k: Error
/u: Error
/w: Error


Code 1258

Message
File path "<value>" in <value> may be incorrect in some device installation scenarios or contexts, use <value>\<subdirectory> instead.

Details
Use a runtime-resolvable path such as %SystemRoot% for values stored in the registry. DIRID values may be fully
resolved at the time the driver is added to the image. When the driver INF is processed under different deployment
scenarios (such as offline imaging or OS upgrade), an incorrect value may be stored.
/k: Error
/u: Error
/w: Error


Code 1260

Message
Invalid <value> directive due to invalid <value>.

Details
The specified directive could not be parsed to the appropriate type.
/k: Error
/u: Error
/w: Error


Code 1261

Message
Undefined device "<value>" with section [<value>].

Details
The device install section for the specified device could not be found.
/k: Error
/u: Error
/w: Error


Code 1262

Message
Invalid <value> entry due to non-byte bitmask '0x<value>.

Details
A registry value bitmask must be one byte in size.
/k: Error
/u: Error
/w: Error


Code 1263

Message
Invalid <value> entry due to conflicting custom and known value types.

Details
A custom value type cannot be REG_NONE, REG_SZ, REG_EXPAND_SZ, or REG_MULTI_SZ.
/k: Error
/u: Error
/w: Error


Code 1264

Message
Invalid <value> entry due to missing value type flag on custom value type.

Details
A custom value type must specify FLG_ADDREG_BINVALUETYPE.
/k: Error
/u: Error
/w: Error


Code 1265

Message
Invalid <value> entry due to append flag on non multi-sz value.

Details
Append was specified on the registry value, but the value was not of a type that can be appended to.
/k: Error
/u: Error
/w: Error


Code 1266

Message
Invalid <value> entry due to no value on a multi-sz delete.

Details
A value is being deleted from a multi-sz, but no value was specified to delete.
/k: Error
/u: Error
/w: Error


Code 1267

Message
Invalid binary data in <value> entry, expecting one or more bytes between 00-FF.

Details
The specified field has an invalid value.
/k: Error
/u: Error
/w: Error


Code 1268

Message
Invalid numeric value in <value> entry, expecting <value>-bit decimal (0+) or hexadecimal (0x0+) value.

Details
The specified field has an invalid value.
/k: Error
/u: Error
/w: Error


Code 1270

Message
INF does not install a driver for any hardware IDs created in [DeviceInstall32] section.

Details
Devices created with a [DeviceInstall32] section should be installed using the same INF, but the install section was not specified.
/k: Error
/u: Error
/w: Error


Code 1271

Message
Missing model install section name.

Details
The models section specified an applicable hardware ID but no install section to use for that hardware ID.
/k: Error
/u: Error
/w: Error


Code 1272

Message
Ignoring service section [<value>] for unnamed service.

Details
The service was unnamed (no service) but specified a service install section. The service install section was ignored.
/k: Error
/u: Error
/w: Error


Code 1273

Message
Source file "<value>" uses disk id <value>, which is not listed under [<value>].

Details
The specified disk ID does not appear in the [SourceDisksNames] section.
/k: Error
/u: Error
/w: Error


Code 1274

Message
Unresolved $ARCH$ token for section [<value>]. Must run stampinf tool to resolve case sensitive $ARCH$ tokens.

Details
The INF file uses tokens that stampinf would resolve but stampinf was not run.
/k: Error
/u: Error
/w: Error


Code 1275

Message
<value> '<value>' is not listed in [DestinationDirs].

Details
The specified file does not have a copy destination specified.
/k: Error
/u: Error
/w: Error


Code 1280

Message
Class name and ClassGuid mismatch, expecting Class "<value>" for ClassGuid "<value>".

Details
The specified ClassGuid is a well-known class, but the Class value does not match the expected name of the class.
/k: Error
/u: Error
/w: Error


Code 1281

Message
Class name and ClassGuid mismatch, expecting ClassGuid "<value>" for Class "<value>".

Details
The specified Class is a well-known class, but the ClassGuid value does not match the expected ClassGuid of the class.
/k: Error
/u: Error
/w: Error


Code 1284

Message
Class "<value>" is reserved for use by Microsoft.

Details
The specified device class may not be used on any shipping drivers or products. Sample drivers will return this error
if the sample is designed in a way that requires the author to specify an appropriate device class.
/k: Error
/u: Error
/w: Error


Code 1285

Message
Cannot specify [ClassInstall32] section for Microsoft-defined class.

Details
As of Windows 10, IHV-supplied INFs are not allowed to use a [ClassInstall32] in an INF of any system-defined device setup class.
/k: Error
/u: Error
/w: Error


Code 1286

Message
Invalid <value> value "<value>" exceeds max length of <value>.

Details
Class names cannot exceed 31 characters in length.
/k: Error
/u: Error
/w: Error


Code 1287

Message
Invalid target OS version decoration '<value>' for model section name '<value>' under [<value>] section.

Details
The target OS version decoration could not be parsed, verify that it is correctly formed.

For full details on the format specification, see: INF Manufacturer Section
/k: Error
/u: Error
/w: Error


Code 1288

Message
Invalid target OS version '<value>.<value>.<value>', must be '<value>.<value>.<value>' or greater if specifying build number.

Details
Build number targeting was introduced with Windows 10, version 1607 (Build 14310 or later), so the build number
specified must be greater or equal to 14310.
/k: Error
/u: Error
/w: Error


Code 1289

Message
Missing directive '<value>' under [<value>] section.

Details
The specified directive is required by the specified section, but could not be found.
/k: Error
/u: Error
/w: Error


Code 1290

Message
Invalid directive '<value>' for [<value>] section.

Details
The specified directive is invalid within the specified section.
/k: Error
/u: Error
/w: Error


Code 1292

Message
<value> directive requires an indirect string in [Strings] section and referenced as <value>.

Details
The directive must be specified as an indirect string that can be resolved by the reader at runtime.
/k: Error
/u: Error
/w: Error


Code 1293

Message
Service name '<value>' is reserved.

Details
The specified service name is reserved and may not be used by any drivers.
/k: Error
/u: Error
/w: Error


Code 1294

Message
Duplicate <value> '<value>' in section [<value>].

Details
The same value is specified multiple times in the same section. Remove the extraneous ones.
/k: Error
/u: Error
/w: Error


Code 1295

Message
Section [<value>] contains a different number of strings than section [<value>].

Details
The [Strings] section for every language must contain the same values.
/k: Error
/u: Error
/w: Error


Code 1296

Message
Hardware '<value>' does not have an associated service using install section '<value>'.

Details
Starting in Windows 10, version 1809, this has changed from a Warning to an Error. The .Services sections are
required for each defined target OS. This is good practice even prior to 1809.

If an INF previously did not include this section because it relied on Microsoft-supplied Inbox driver services,
then a .Services section that references a .Services section from a Microsoft-supplied Inbox INF using Needs
and Include directives should be created. For example:
[DDInstall.Services]
Include=filename.inf
Needs=inf-section-name.Services

For devices that do not require a function driver, this can be specified as follows:
AddService = ,2

Only use this in the case where the INF is installing a device that does not need a function driver. For example,
a device that requires only a filter driver, but not a function driver would have two AddService directives:
AddService = MyFilterDriver,, My-Service-Install-Section
AddService = ,2
/k: Error
/u: Error
/w: Error


Code 1297

Message
Device driver does not install on any devices, use primitive driver if this is intended.

Details
This indicates that the INF file is a device driver, but it is not being used as a device driver. This may cause
issues in how the driver is treated by the driver store. If this is unintentional, check your INF to make sure
that hardware IDs are correctly specified. If the driver is not intended to install on devices, convert it to a
primitive driver. A primitive driver is a driver that installs on the whole system instead of on specific devices.

For more information, see Converting to a primitive driver
/k: Error
/u: Error
/w: Error


Code 1299

Message
Additional validation checks skipped due to parsing errors.

Details
The INF encountered parsing problems that prevented the parse from completing. There should be additional errors
that point to the cause of the problem.
/k: Error
/u: Error
/w: Error


Code 1300

Message
Found legacy <value> <value>.

Details
The INF performs a deprecated legacy operation that is not valid with modern Windows OS products.
/k: Error
/u: Error
/w: Error


Code 1301

Message
Found legacy <value> operation<value>.

Details
The INF performs a deprecated legacy operation that is not valid with modern Windows OS products.
/k: Error
/u: Error
/w: Error


Code 1302

Message
Found legacy <value> operation for '<value>'<value>.

Details
The INF performs a deprecated legacy operation that is not valid with modern Windows OS products.
/k: Error
/u: Error
/w: Error


Code 1303

Message
Found legacy <value> operation defining <value> (<value>)<value>.

Details
The INF defines a co-installer or class installer, which are no longer supported in modern Windows OS products and should not be used.
/k: Error
/u: Error
/w: Error


Code 1304

Message
Found legacy <value> operation using non-relative key (<value>\<value>)<value>.

Details
Registry operations should be done using a relative key (HKR). This will store the value in an appropriate location
relative to the type of INF section where it is used.
/k: Warning
/u: Error
/w: None


Code 1305

Message
Found legacy <value> operation using appendable multi-sz value (<value>\<value>)<value>.

Details
This INF deletes a value from a REG_MULTI_SZ or appends to an existing REG_MULTI_SZ. This leads to non-
deterministic outcomes and should not be done.
/k: Warning
/u: Error
/w: Error


Code 1306

Message
Found legacy <value> operation with non-system target path (<value>) for '<value>'<value>.

Details
The INF specifies a file copy with a destination that is outside the system path.
/k: Warning
/u: Error
/w: None


Code 1307

Message
Found legacy <value> <value>.

Details
The INF performs a legacy operation that is only valid on desktop Windows OS products.
/k: Warning
/u: Error
/w: Error


Code 1308

Message
Found legacy <value> operation<value>.

Details
INF files should only perform the additive operations required to configure the device. When a driver is deleted
from the system, the appropriate operations to clean up the driver will be automatically performed.
/k: Warning
/u: Error
/w: Error


Code 1309

Message
Found legacy <value> operation for '<value>'<value>.

Details
INF files should only perform the additive operations required to configure the device. When a driver is deleted
from the system, the appropriate operations to clean up the driver will be automatically performed.
/k: Warning
/u: Error
/w: Error


Code 1310

Message
Needed section [<value>] with suffix '.<value>' does not match suffix of first referencing section [<value>.<value>].

Details
When using the Needs directive, the sections being referenced should have a suffix that matches the suffix of the
referencing section. For example:
[DDInstall.Services]
Needs=TargetInstall.Services

Note that both sections have a .Services suffix.

This error indicates that the specified section is being incorrectly parsed as if it was a section with a
different suffix.
/k: Error
/u: Error
/w: Error


Code 1311

Message
Needed section [<value>] must have suffix '.<value>' to match the first referencing section [<value>.<value>].

Details
When using the Needs directive, the sections being referenced should have a suffix that matches the suffix of the
referencing section. For example:
[DDInstall.Services]
Needs=TargetInstall.Services
Note that both sections have a .Services suffix.

This error indicates that the specified section is being incorrectly parsed as if it was a section with a
different suffix.
/k: Error
/u: Error
/w: Error


Code 1312

Message
Needed section [<value>] with suffix '.<value>' does not match the suffix of the parent section [<value>].

Details
When using the Needs directive, the sections being referenced should have a suffix that matches the suffix of the
referencing section. For example:
[DDInstall.Services]
Needs=TargetInstall.Services
Note that both sections have a .Services suffix.

This error indicates that the suffix of a needed section does not match the referencing section.
/k: Error
/u: Error
/w: Error


Code 1313

Message
Needed section [<value>] must have suffix '.<value>' to match the suffix of the parent section [<value>].

Details
When using the Needs directive, the sections being referenced should have a suffix that matches the suffix of the
referencing section. For example:
[DDInstall.Services]
Needs=TargetInstall.Services
Note that both sections have a .Services suffix.

This error indicates that the suffix of a needed section does not match the referencing section.
/k: Error
/u: Error
/w: Error


Code 1314

Message
Needed section [<value>] found in included INF "<value>", not referenced from [<value>].

Details
A section located in another INF was specified using the Needs directive. The INF containing the section must be
referenced with the Include directive in the same section as the Needs directive.
/k: Error
/u: Error
/w: Error


Code 1315

Message
Needed section [<value>] not found.

Details
A section specified using the Needs directive could not be located.
/k: Error
/u: Error
/w: Error


Code 1316

Message
Needed decorated section [<value>.<value>] not found.

Details
A section specified using the Needs directive could not be located.
/k: Error
/u: Error
/w: Error


Code 1317

Message
Needed undecorated section [<value>] is not part of the target OS platform.

Details
A section specified using the Needs directive could not be located using the supplied IAS file for the target OS.
/k: Error
/u: Error
/w: Error


Code 1318

Message
Included INF "<value>" is not part of the target OS platform.

Details
An INF specified using the Include directive could not be located using the supplied IAS file for the target OS.
/k: Error
/u: Error
/w: Error


Code 1319

Message
Section [<value>] must include file "<value>" to use the Needs directive on [<value>].

Details
The specified section uses the Needs directive to reference a section but does not have an Include directive specifying
the INF that contains the section.
/k: Error
/u: Error
/w: Error


Code 1320

Message
Registry root '<value>\<value>' is not isolated to HKR.

Details
Registry keys must be under isolated HKR relative root locations.

For full details, see Driver Package Isolation
/k: None
/u: None
/w: Error


Code 1321

Message
Registry root (<value>\<value>) of value '<value>' is not isolated to HKR.

Details
Registry values must be under isolated HKR relative root locations.

For full details, see Driver Package Isolation
/k: None
/u: None
/w: Error


Code 1322

Message
Destination file path '<value>' for file '<value>' is not isolated to DIRID <value>.

Details
Files must specify their copy destination as DIRID 13. This keeps the files isolated under the driver store.

For full details, see Driver Package Isolation
/k: None
/u: None
/w: Error


Code 1323

Message
Service registry key '<value>' must be under the Parameters subkey.

Details
Registry values using a service-relative HKR root must be written under the Parameters subkey.

For full details, see Driver Package Isolation
/k: None
/u: None
/w: Error


Code 1324

Message
[Version] section should specify PnpLockdown=1 to prevent external apps from modifying installed driver files.

Details
PnpLockdown=1 must be specified in the [Version] section. This adds an additional level of security to driver package
files to prevent tampering.
/k: Warning
/u: Warning
/w: Error


Code 1325

Message
Unsupported COM class registration '<value>', only InprocServer32 supported.

Details
The specified type of COM class is not supported.
/k: Warning
/u: Warning
/w: Error


Code 1326

Message
Unisolated file path '<value>', expecting FileName under <value>.

Details
The data file path specified must be a path relative to %%DriverData%%.
/k: Warning
/u: Warning
/w: Error


Code 1328

Message
Unsupported file path '<value>' replaced with '<value>'.

Details
The specified file path could not be resolved.
/k: None
/u: None
/w: Warning


Code 1329

Message
Cannot add filters with registry or property, use [DDInstall.Filters] section.

Details
Filter drivers cannot be added with a registry or property value. Filters should be added using a [DDInstall.Filters] section.
/k: None
/u: None
/w: Error


Code 1330

Message
Cannot copy multiple different sources files ('<value>' and '<value>') to destination file '<value>'.

Details
Different files are being copied to a single location within the INF. In scenarios where the OS must perform all file
copies in advance of a device being connected, the resulting state becomes non-deterministic.

For full details, see InfVerif Error 1330
/k: Error
/u: Error
/w: Error


Code 1331

Message
Cannot set registry value '<value>\<value>\<value>' differently between sections [<value>] and [<value>].

Details
The specified registry value is set differently between two different install section. In scenarios where the OS must
perform all registry operations in advance of a device being connected, the resulting state becomes non-deterministic.

For full details, see InfVerif Error 1330
/k: Warning
/u: Error
/w: Error


Code 1332

Message
Cannot set registry value '<value>\<value>\<value>' differently between sections [<value>] and [<value>] for service '<value>'.

Details
The specified registry value is set differently between two different service install section. In scenarios where the
OS must perform all service operations in advance of a device being connected, the resulting state becomes non-deterministic.

For full details, see InfVerif Error 1330
/k: Warning
/u: Error
/w: Error


Code 1333

Message
Cannot configure service '<value>' differently between sections [<value>] and [<value>].

Details
The specified service is installed differently between two different install section. In scenarios where the OS must
perform all service operations in advance of a device being connected, the resulting state becomes non-deterministic.

For full details, see InfVerif Error 1330
/k: Warning
/u: Error
/w: Error


Code 1340

Message
Specified DIRID '<value>' not allowed.

Details
The specified DIRID has been deprecated and can no longer be used.
/k: None
/u: None
/w: Error


Code 1380

Message
Invalid ExtensionId "<value>" specified in [Version] section.

Details
The ExtensionId value is in an incorrect format. It should follow the standard GUID format, including braces and dashes.
/k: Error
/u: Error
/w: Error


Code 1381

Message
Missing ExtensionId directive in [Version] section.

Details
Extension INFs require an ExtensionId to be specified.
/k: Error
/u: Error
/w: Error


Code 1382

Message
Cannot specify '<value>' directive in Extension INFs.

Details
Extension INFs do not support the specified directive.
/k: Error
/u: Error
/w: Error


Code 1383

Message
Cannot specify '<value>' flag for services defined in extension INFs.

Details
Extension INFs do not support the specified service flag.
/k: Error
/u: Error
/w: Error


Code 1384

Message
Use of filters with registry or property in extension INFs not recommended, use [DDInstall.Filters] section.

Details
Extension INFs may be installed on top of the base INF in any order. Using a registry or property directives to
install filters may lead to non-deterministic stack ordering.
/k: Warning
/u: Warning
/w: Warning


Code 1400

Message
Service '<value>' not specified in a UMDF service directive.

Details
The UMDF service is created, but it is not specified in any UMDF directive such as UmdfServiceOrder.
/k: Error
/u: Error
/w: Error


Code 1401

Message
Directive '<value>' not supported in <value> version <value>.<value>.

Details
The specified WDF directive has been deprecated in the version of WDF utilized by the INF.
/k: Error
/u: Error
/w: Error


Code 1402

Message
<value> version <value>.<value> has been deprecated, driver should be ported to use version <value> <value> driver model.

Details
The specified WDF version has been deprecated. The driver should be updated to use a newer version.

For additional information, see Converting from UMDF1 to UMDF2
/k: None
/u: None
/w: Error


Code 1420

Message
[DefaultInstall]-based INF cannot be processed as Primitive.

Details
The INF uses a [DefaultInstall] section, but it does not meet the requirements to be processed as a Primitive INF.
/k: Error
/u: Error
/w: Error


Code 1421

Message
Section [<value>] missing an architecture decoration.

Details
All [DefaultInstall] sections should have an architecture decoration.
/k: Error
/u: Error
/w: Error


Code 1422

Message
[DefaultUninstall.NT*] section should set LegacyUninstall=1 to support both Primitive INF and downlevel install compatibility.

Details
A primitive INF should not specify any uninstall behavior. To support legacy platforms, the uninstall section may
specify LegacyUninstall=1 to utilize the uninstall section only on legacy platforms.
/k: Error
/u: Error
/w: Error


Code 1423

Message
Primitive drivers require an architecture-decorated [<value>] section.

Details
Primitive drivers require at least one architecture-decorated [DefaultInstall] section.
/k: Error
/u: Error
/w: Error


Code 1430

Message
Registry value '<value>' not allowed under '<value>\<value>'.

Details
The specified registry value is not allowed.
/k: Error
/u: Error
/w: Error


Code 1431

Message
Well-known registry value '<value>' has incorrect type, expecting value type <value>.

Details
The specified registry value is a well-known value and must have a specific type, otherwise it may not be interpreted correctly
by the OS or other applications.
/k: Error
/u: Error
/w: Error


Code 1450

Message
Legacy unisolated directive '<value>' may be ignored.

Details
The specified directive may have no effect on some OS versions or product types.
/k: None
/u: None
/w: Warning


Code 2004

Message
Use of <value> directive not recommended.

Details
The specified directive is valid, however it is not recommended.
/k: Warning
/u: Warning
/w: Warning


Code 2006

Message
Undefined service '<value>' under [<value>] section.

Details
The specified service was declared with an AddService directive, but the corresponding service install section could
not be located.
/k: Error
/u: Error
/w: Error


Code 2008

Message
Section name [<value>] is also used by an included INF.

Details
The same section name is used both in this INF as well as an INF specified with an Include directive. This may lead
to incorrect parsing results.
/k: Error
/u: Error
/w: Error


Code 2009

Message
Legacy directive '<value>' will be ignored.

Details
The specified directive has been deprecated and will be ignored in most parsing scenarios.
/k: Warning
/u: Warning
/w: Warning


Code 2010

Message
Section [<value>] should have '.<value>' decoration.

Details
The specified section does not have an architecture decoration and will be implicitly treated as the x86 architecture.
The architecture should be explicitly declared.
/k: Warning
/u: Warning
/w: Warning


Code 2083

Message
Section [<value>] not referenced or used.

Details
The specified section will not be used during device installation. If this is unintentional there may be another
error that prevents the usage.
/k: Warning
/u: Warning
/w: Warning


Code 2084

Message
Service binary '<value>' should reference a CopyFiles destination file.

Details
The service is registered using a service binary that is not part of the driver package. This error may occur in
some cases because the service binary was specified incorrectly, such as missing quotes around a path with spaces.
For additional details, see InfVerif Error 2084
/k: Warning
/u: Warning
/w: Error


Code 2085

Message
Service binary '<value>' should be specified as a path under a DIRID.

Details
The service binary path is required to be specified as a path under a DIRID value, such as %%13%%\binary.sys.

For additional information about DIRIDs, see Using DIRIDs
/k: Error
/u: Error
/w: Error


Code 2090

Message
Replaced legacy pattern in section '<value>' using '<value>'. Updated syntax support begins in OS version '<value>.<value>.<value>'.

Details
A legacy mechanism was identified and automatically replaced with an up-to-date alternative during parsing. The INF
should be updated to use the up-to-date mechanism.

For full details, see INF Shims
/k: Error
/u: Error
/w: Error


Code 2091

Message
Unable to replace legacy pattern in section '<value>' using '<value>'.

Details
A legacy mechanism was identified in the INF but could not be automatically replaced with an up-to-date alternative.
The INF should be updated to use the up-to-date mechanism.

For full details, see INF Shims
/k: Error
/u: Error
/w: Error


Code 2092

Message
Replaced legacy pattern in section '<value>' using '<value>' to follow best practices. Updated syntax support begins in OS version '<value>.<value>.<value>'.

Details
A legacy mechanism was identified and automatically replaced with an up-to-date alternative during parsing. The INF
should be updated to use the up-to-date mechanism.

For full details, see INF Shims
/k: None
/u: None
/w: Error


Code 2093

Message
Unable to apply shim '<value>'.

Details
An INF shim failed to apply correctly. This is not a critical error. An INF shim is an adjustment of the INF that
happens automatically to improve the install behavior of certain patterns within an INF.

For full details, see INF Shims
/k: Error
/u: Error
/w: Error


Code 2400

Message
<value> directive requires two fields: <component id>,<component section>

Details
The specified directive does not contain the required fields.
/k: Error
/u: Error
/w: Error


Code 2402

Message
Section [<value>] does not permit <value> directive.

Details
The specified directive is not allowed in the specified section.
/k: Error
/u: Error
/w: Error


Code 2403

Message
<value> directive must have exactly 1 field. <value> were provided.

Details
The directive contains the wrong number of fields.
/k: Error
/u: Error
/w: Error


Code 2405

Message
Only INFs with Class name "NetDriver" can use [DefaultInstall.NetDrivers] section.

Details
The specified section cannot be used except by the "NetDriver" class.
/k: Error
/u: Error
/w: Error


Code 2411

Message
Invalid <value> GUID "<value>", expecting {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}. Run guidgen.exe to generate a new GUID.

Details
The specified GUID value is in an incorrect format. It should follow the standard GUID format, including braces and dashes.
/k: Error
/u: Error
/w: Error


Code 2412

Message
Invalid Component Identifier value '<value>', expecting a valid identifier matching '[a-z0-9_]+'.

Details
The specified component identifier value was invalid.
/k: Error
/u: Error
/w: Error


Code 2413

Message
Invalid <value> value '<value>', expecting case-sensitive values 'true' and 'false'.

Details
The specified value was invalid, expecting 'true' or 'false'.
/k: Error
/u: Error
/w: Error


Code 2414

Message
Invalid <value> value '<value>', expecting a valid filter class matching '[a-z0-9_]+'.

Details
The specified filter class had an invalid format.
/k: Error
/u: Error
/w: Error


Code 2415

Message
Invalid value '<value>', only OS components may use identifiers starting with 'ms_' or 'vms_'.

Details
Third party INFs may not use identifiers beginning with 'ms_' or 'vms_'.
/k: Error
/u: Error
/w: Error


Code 2416

Message
Invalid <value> value '<value>', expecting a comma-separated list of valid bind tokens matching '[a-z0-9_.]+'.

Details
The specified list of bind tokens was invalid.
/k: Error
/u: Error
/w: Error


Code 2417

Message
Invalid <value> value '<value>', expecting a valid bind name matching regex '[a-zA-Z0-9_]+'.

Details
The specified bind name was invalid.
/k: Error
/u: Error
/w: Error


Code 2418

Message
Modifying Filter Drivers require a 'FilterClass'.

Details
Network filter drivers require a filter class to be specified.
/k: Error
/u: Error
/w: Error


Code 2419

Message
Bind token '<value>' and all non-standard tokens beginning with 'ms_' or 'ndis' are reserved.

Details
The specified token is reserved and should not be used.
/k: Error
/u: Error
/w: Error


Code 2420

Message
NetDriver INFs require a [<value>] section with at least one AddNetFilter or AddNetProtocol directive.

Details
NetDriver INFs require the specified section and directives.
/k: Error
/u: Error
/w: Error


Code 2500

Message
Legacy bind token '<value>' is obsolete and no longer supported.

Details
The specified token is no longer supported and should not be used.
/k: Error
/u: Error
/w: Error


Code 2501

Message
Referenced service '<value>' is not present in this INF.

Details
The INF references a service that is not created by this INF.
/k: Error
/u: Error
/w: Error


Code 2600

Message
<value> '<value>' must point to a path under DIRID <value>.

Details
Display drivers must use the specified DIRID for file paths.
/k: Error
/u: Error
/w: Error


Code 2601

Message
<value> '<value>' must point to a path under DIRID <value>.

Details
Display drivers must use the specified DIRID for file paths.
/k: Error
/u: Error
/w: Error


Code 2602

Message
Service '<value>' must have a <value> value of <value>.

Details
A display service must set the specified value appropriately.
/k: Error
/u: Error
/w: Error


Code 2603

Message
Directive '<value>' is invalid for display drivers.

Details
Display drivers may not use the specified directive.
/k: Warning
/u: Error
/w: Error


Code 2650

Message
Direct use of '<value>' is not allowed, instead Include [<value>].

Details
The INF should use Include/Needs directives to reference Microsoft-supplied INF file sections instead of directly
referencing its driver binaries.
/k: Error
/u: Error
/w: Error


Code 2651

Message
Needs indicates [<value>], but '<value>' not included.

Details
The Needs directive was used to reference a section, but the Include directive was not used to specify the
Microsoft-supplied INF containing that section.
/k: Error
/u: Error
/w: Error


Code 2652

Message
Section [<value>] must use Needs directive to reference [<value>].

Details
Camera INFs must use the Needs directives to reference the specified Microsoft-provided sections.
/k: Error
/u: Error
/w: Error


Code 2660

Message
Cannot modify HKCR\<value> registry subkey. It must be under HKR.

Details
The specified registry subkey is not allowed to be written to. Registry state should be written using an AddReg
directive with a reg-root of HKR.
/k: Error
/u: Error
/w: Error


Code 2661

Message
Only a device with AudioProcessingObject class is allowed to write to <value> registry subkey.

Details
The specified registry subkey is not allowed to be written to for the current class.
/k: Error
/u: Error
/w: Error