Hi everyone, I am struggling in error code 1100 "Source and destination directory must match for file 'serial.sys' when using CopyFile with DIRID13" in line 224. Anyone met this error before? Could you tell me the way to fix it. Thank you all!
Here is my code in error line
In the driver store the directory layout has to exactly match the source directory layout, so the INF specifying that serial.sys comes from <inf location>\x64
but it goes into the driverstore location under <inf location>
is causing an error.
If I'm correctly guessing how you've written the rest of this INF, the simplest solution is to have each architecture use its own copyfiles section, where the destination subdirectory of that section matches the source subdirectory. It would probably be easier to just have 4 arch-specific packages instead of combining all of them into a single package though - then you wouldn't need any subdirectories at all.
This error documentation is at: INF Validation Errors and Warnings - Windows drivers | Microsoft Learn
@Zac_Lockard ,You mean i should separate each architecture copy file like that?
That's the right idea, but you can't decorate individual copyfiles sections, you have to use a separate models section, which can be decorated. You'd have to duplicate the sections referenced under [Manufacturer]. If you share more of the INF it would be a bit easier to help
[Version]
Signature="$WINDOWS NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%Provider%
DriverVer=10/14/1963,0.0.0.1
CatalogFile=serial.cat
PnpLockDown=1
[Manufacturer]
%ManufacturerName%=SerialModelsSection, NTamd64.10.0...17134, NTarm.10.0...17134, NTarm64.10.0...17134, NTx86.10.0...17134
[SerialModelsSection.NTamd64.10.0...17134]
%USB\VID_20C6&PID_EA60.DeviceDesc% =SerialDDInstallSection, USB\VID_20C6&PID_EA60
%USB\VID_20C6&PID_EA63.DeviceDesc% =SerialDDInstallSection, USB\VID_20C6&PID_EA63
%USB\VID_20C6&PID_EA70&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA70&Mi_00
%USB\VID_20C6&PID_EA70&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA70&Mi_01
%USB\VID_20C6&PID_EA71&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_00
%USB\VID_20C6&PID_EA71&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_01
%USB\VID_20C6&PID_EA71&Mi_02.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_02
%USB\VID_20C6&PID_EA71&Mi_03.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_03
%USB\VID_20C6&PID_EA7A&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7A&Mi_00
%USB\VID_20C6&PID_EA7A&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7A&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_00
%USB\VID_20C6&PID_EA7B&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_02.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_02
%USB\VID_20C6&PID_EA7B&Mi_03.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_03
;Models section for installation of ARM (32-bit) driver on Windows 10 and above
[SerialModelsSection.NTarm.10.0...17134]
%USB\VID_20C6&PID_EA60.DeviceDesc% =SerialDDInstallSection, USB\VID_20C6&PID_EA60
%USB\VID_20C6&PID_EA63.DeviceDesc% =SerialDDInstallSection, USB\VID_20C6&PID_EA63
%USB\VID_20C6&PID_EA70&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA70&Mi_00
%USB\VID_20C6&PID_EA70&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA70&Mi_01
%USB\VID_20C6&PID_EA71&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_00
%USB\VID_20C6&PID_EA71&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_01
%USB\VID_20C6&PID_EA71&Mi_02.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_02
%USB\VID_20C6&PID_EA71&Mi_03.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_03
%USB\VID_20C6&PID_EA7A&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7A&Mi_00
%USB\VID_20C6&PID_EA7A&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7A&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_00
%USB\VID_20C6&PID_EA7B&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_02.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_02
%USB\VID_20C6&PID_EA7B&Mi_03.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_03
;Models section for installation of ARM (64-bit) driver on Windows 10 and above
[SerialModelsSection.NTarm64.10.0...17134]
%USB\VID_20C6&PID_EA60.DeviceDesc% =SerialDDInstallSection, USB\VID_20C6&PID_EA60
%USB\VID_20C6&PID_EA63.DeviceDesc% =SerialDDInstallSection, USB\VID_20C6&PID_EA63
%USB\VID_20C6&PID_EA70&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA70&Mi_00
%USB\VID_20C6&PID_EA70&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA70&Mi_01
%USB\VID_20C6&PID_EA71&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_00
%USB\VID_20C6&PID_EA71&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_01
%USB\VID_20C6&PID_EA71&Mi_02.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_02
%USB\VID_20C6&PID_EA71&Mi_03.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_03
%USB\VID_20C6&PID_EA7A&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7A&Mi_00
%USB\VID_20C6&PID_EA7A&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7A&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_00
%USB\VID_20C6&PID_EA7B&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_02.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_02
%USB\VID_20C6&PID_EA7B&Mi_03.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_03
;Models section for installation of x86 driver on Windows 10 and above
[SerialModelsSection.NTx86.10.0...17134]
%USB\VID_20C6&PID_EA60.DeviceDesc% =SerialDDInstallSection, USB\VID_20C6&PID_EA60
%USB\VID_20C6&PID_EA63.DeviceDesc% =SerialDDInstallSection, USB\VID_20C6&PID_EA63
%USB\VID_20C6&PID_EA70&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA70&Mi_00
%USB\VID_20C6&PID_EA70&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA70&Mi_01
%USB\VID_20C6&PID_EA71&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_00
%USB\VID_20C6&PID_EA71&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_01
%USB\VID_20C6&PID_EA71&Mi_02.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_02
%USB\VID_20C6&PID_EA71&Mi_03.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA71&Mi_03
%USB\VID_20C6&PID_EA7A&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7A&Mi_00
%USB\VID_20C6&PID_EA7A&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7A&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_00.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_00
%USB\VID_20C6&PID_EA7B&Mi_01.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_02.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_02
%USB\VID_20C6&PID_EA7B&Mi_03.DeviceDesc%=SerialDDInstallSection, USB\VID_20C6&PID_EA7B&Mi_03
;DDInstall section
[SerialDDInstallSection]
AddReg=serial.AddReg
CopyFiles=serial_CopyFiles_FileListSection
FeatureScore=0x40
;DDInstall.Services section
[SerialDDInstallSection.Services]
AddService = serial,0x00000002,serial.AddService
[serial.AddService]
DisplayName = %serial.SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %13%\serial.sys
AddReg = serial.AddService.AddReg
[serial.AddService.AddReg]
HKR, Parameters\Wdf, ForceLogsInMiniDump, 0x00010001, 1
HKR, Parameters, DebugLevel, 0x00010001, 0
HKR, Parameters, DebugFlag, 0x00010001, 0x1c01817
[serial.AddReg]
HKR,,NTMPDriver,,serial.sys
HKR,,RateLimitPurgeMS, 0x10001, 0x64, 0x00, 0x00, 0x00
HKR,,OverrideDefaultPortSettings, 0x10001, 01,00,00,00
HKR,,InitialBaudRate, 0x10001, 00,C2,01,00 ;115200 initial baud rate
HKR,,InitialLineControl,, "8N1" ;8-bits, No parity, 1 stop bit
HKR,,PortSubClass,1,01
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
;DDInstall.HW section
[SerialDDInstallSection.HW]
AddReg=SerialDDInstallSection.HW.AddReg
; Per-device-level registry entries (the "hardware key")
[SerialDDInstallSection.HW.AddReg]
;Amount of time the device must be idle before idling out
HKR,,"SelectiveSuspendTimeout",0x00010001,10000
HKR,"WDF","WdfDirectedPowerTransitionEnable",0x00010001,1
[serial_CopyFiles_FileListSection.NTx86.10.0...17134]
serial.sys,\x86
[serial_CopyFiles_FileListSection.NTamd64.10.0...17134]
serial.sys,\x64
[serial_CopyFiles_FileListSection.NTarm.10.0...17134]
serial.sys, arm
[serial_CopyFiles_FileListSection.NTxarm64.10.0...17134]
serial.sys,arm64
[SourceDisksNames]
1=%Disk_Description%,"serial.cat"
[SourceDisksFiles.amd64]
serial.sys = 1,\x64
[SourceDisksFiles.arm]
serial.sys = 1,\arm
[SourceDisksFiles.arm64]
serial.sys = 1,\arm64
[SourceDisksFiles.x86]
serial.sys = 1,\x86
[DestinationDirs]
serial_CopyFiles_FileListSection = 13
[Strings]
; For provider, enter your Company Legal/Official/Long/Full Name
Provider="Dragon Nguyen"
ManufacturerName="Dragon Nguyen"
Disk_Description= "Nguyen DG2000 USB to UART Bridge Installation Disk"
USB\VID_20C6&PID_EA60.DeviceDesc= "Nguyen DG2000 USB to UART Bridge"
USB\VID_20C6&PID_EA63.DeviceDesc= "Nguyen DG2000 USB to UART Bridge"
USB\VID_20C6&PID_EA70&Mi_00.DeviceDesc="Nguyen DG2001 USB to UART Bridge: Port 1"
USB\VID_20C6&PID_EA70&Mi_01.DeviceDesc="Nguyen DG2001 USB to UART Bridge: Port 2"
USB\VID_20C6&PID_EA71&Mi_00.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 0"
USB\VID_20C6&PID_EA71&Mi_01.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 1"
USB\VID_20C6&PID_EA71&Mi_02.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 2"
USB\VID_20C6&PID_EA71&Mi_03.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 3"
USB\VID_20C6&PID_EA7A&Mi_00.DeviceDesc="Nguyen DG2105 USB to UART Bridge: Port 1"
USB\VID_20C6&PID_EA7A&Mi_01.DeviceDesc="Nguyen DG2105 USB to UART Bridge: Port 2"
USB\VID_20C6&PID_EA7B&Mi_00.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 0"
USB\VID_20C6&PID_EA7B&Mi_01.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 1"
USB\VID_20C6&PID_EA7B&Mi_02.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 2"
USB\VID_20C6&PID_EA7B&Mi_03.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 3"
serial.SvcDesc="Nguyen DG200x USB to UART Bridge Driver"
@Zac_Lockard This is my inf file. the line number can be different because I deleted some comment line.
So again, I really recommend you just have 4 INFs. It would be way simpler. But if you really want it this way, here's how you would do it. Note how [DestinationDirs] is laid out, the individual install sections use the Needs directive to point to other install sections, and how the service registration has to point to the arch-specific subdirectories.
[Version]
Signature="$WINDOWS NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%Provider%
DriverVer=10/14/1963,0.0.0.1
CatalogFile=serial.cat
PnpLockDown=1
[Manufacturer]
%ManufacturerName%=SerialModelsSection, NTamd64.10.0...17134, NTarm.10.0...17134, NTarm64.10.0...17134, NTx86.10.0...17134
[SerialModelsSection.NTamd64.10.0...17134]
%USB\VID_20C6&PID_EA60.DeviceDesc% =SerialDDInstallSection_x64, USB\VID_20C6&PID_EA60
%USB\VID_20C6&PID_EA63.DeviceDesc% =SerialDDInstallSection_x64, USB\VID_20C6&PID_EA63
%USB\VID_20C6&PID_EA70&Mi_00.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA70&Mi_00
%USB\VID_20C6&PID_EA70&Mi_01.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA70&Mi_01
%USB\VID_20C6&PID_EA71&Mi_00.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA71&Mi_00
%USB\VID_20C6&PID_EA71&Mi_01.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA71&Mi_01
%USB\VID_20C6&PID_EA71&Mi_02.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA71&Mi_02
%USB\VID_20C6&PID_EA71&Mi_03.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA71&Mi_03
%USB\VID_20C6&PID_EA7A&Mi_00.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA7A&Mi_00
%USB\VID_20C6&PID_EA7A&Mi_01.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA7A&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_00.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA7B&Mi_00
%USB\VID_20C6&PID_EA7B&Mi_01.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA7B&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_02.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA7B&Mi_02
%USB\VID_20C6&PID_EA7B&Mi_03.DeviceDesc%=SerialDDInstallSection_x64, USB\VID_20C6&PID_EA7B&Mi_03
;Models section for installation of ARM (32-bit) driver on Windows 10 and above
[SerialModelsSection.NTarm.10.0...17134]
%USB\VID_20C6&PID_EA60.DeviceDesc% =SerialDDInstallSection_arm, USB\VID_20C6&PID_EA60
%USB\VID_20C6&PID_EA63.DeviceDesc% =SerialDDInstallSection_arm, USB\VID_20C6&PID_EA63
%USB\VID_20C6&PID_EA70&Mi_00.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA70&Mi_00
%USB\VID_20C6&PID_EA70&Mi_01.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA70&Mi_01
%USB\VID_20C6&PID_EA71&Mi_00.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA71&Mi_00
%USB\VID_20C6&PID_EA71&Mi_01.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA71&Mi_01
%USB\VID_20C6&PID_EA71&Mi_02.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA71&Mi_02
%USB\VID_20C6&PID_EA71&Mi_03.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA71&Mi_03
%USB\VID_20C6&PID_EA7A&Mi_00.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA7A&Mi_00
%USB\VID_20C6&PID_EA7A&Mi_01.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA7A&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_00.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA7B&Mi_00
%USB\VID_20C6&PID_EA7B&Mi_01.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA7B&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_02.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA7B&Mi_02
%USB\VID_20C6&PID_EA7B&Mi_03.DeviceDesc%=SerialDDInstallSection_arm, USB\VID_20C6&PID_EA7B&Mi_03
;Models section for installation of ARM (64-bit) driver on Windows 10 and above
[SerialModelsSection.NTarm64.10.0...17134]
%USB\VID_20C6&PID_EA60.DeviceDesc% =SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA60
%USB\VID_20C6&PID_EA63.DeviceDesc% =SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA63
%USB\VID_20C6&PID_EA70&Mi_00.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA70&Mi_00
%USB\VID_20C6&PID_EA70&Mi_01.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA70&Mi_01
%USB\VID_20C6&PID_EA71&Mi_00.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA71&Mi_00
%USB\VID_20C6&PID_EA71&Mi_01.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA71&Mi_01
%USB\VID_20C6&PID_EA71&Mi_02.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA71&Mi_02
%USB\VID_20C6&PID_EA71&Mi_03.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA71&Mi_03
%USB\VID_20C6&PID_EA7A&Mi_00.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA7A&Mi_00
%USB\VID_20C6&PID_EA7A&Mi_01.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA7A&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_00.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA7B&Mi_00
%USB\VID_20C6&PID_EA7B&Mi_01.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA7B&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_02.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA7B&Mi_02
%USB\VID_20C6&PID_EA7B&Mi_03.DeviceDesc%=SerialDDInstallSection_arm64, USB\VID_20C6&PID_EA7B&Mi_03
;Models section for installation of x86 driver on Windows 10 and above
[SerialModelsSection.NTx86.10.0...17134]
%USB\VID_20C6&PID_EA60.DeviceDesc% =SerialDDInstallSection_x86, USB\VID_20C6&PID_EA60
%USB\VID_20C6&PID_EA63.DeviceDesc% =SerialDDInstallSection_x86, USB\VID_20C6&PID_EA63
%USB\VID_20C6&PID_EA70&Mi_00.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA70&Mi_00
%USB\VID_20C6&PID_EA70&Mi_01.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA70&Mi_01
%USB\VID_20C6&PID_EA71&Mi_00.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA71&Mi_00
%USB\VID_20C6&PID_EA71&Mi_01.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA71&Mi_01
%USB\VID_20C6&PID_EA71&Mi_02.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA71&Mi_02
%USB\VID_20C6&PID_EA71&Mi_03.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA71&Mi_03
%USB\VID_20C6&PID_EA7A&Mi_00.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA7A&Mi_00
%USB\VID_20C6&PID_EA7A&Mi_01.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA7A&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_00.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA7B&Mi_00
%USB\VID_20C6&PID_EA7B&Mi_01.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA7B&Mi_01
%USB\VID_20C6&PID_EA7B&Mi_02.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA7B&Mi_02
%USB\VID_20C6&PID_EA7B&Mi_03.DeviceDesc%=SerialDDInstallSection_x86, USB\VID_20C6&PID_EA7B&Mi_03
;x86 section
[SerialDDInstallSection_x86]
Needs=SerialDDInstallSection
CopyFiles=serial_CopyFiles_FileListSection_x86
[SerialDDInstallSection_x86.HW]
Needs=SerialDDInstallSection.HW
[SerialDDInstallSection_x86.Services]
AddService = serial,0x00000002,serial_x86.AddService
[serial_x86.AddService]
DisplayName = %serial.SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %13%\x86\serial.sys
AddReg = serial.AddService.AddReg
;x64 section
[SerialDDInstallSection_x64]
Needs=SerialDDInstallSection
CopyFiles=serial_CopyFiles_FileListSection_x64
[SerialDDInstallSection_x64.HW]
Needs=SerialDDInstallSection.HW
[SerialDDInstallSection_x64.Services]
AddService = serial,0x00000002,serial_x64.AddService
[serial_x64.AddService]
DisplayName = %serial.SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %13%\x64\serial.sys
AddReg = serial.AddService.AddReg
;arm section
[SerialDDInstallSection_arm]
Needs=SerialDDInstallSection
CopyFiles=serial_CopyFiles_FileListSection_arm
[SerialDDInstallSection_arm.HW]
Needs=SerialDDInstallSection.HW
[SerialDDInstallSection_arm.Services]
AddService = serial,0x00000002,serial_arm.AddService
[serial_arm.AddService]
DisplayName = %serial.SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %13%\arm\serial.sys
AddReg = serial.AddService.AddReg
;arm64 section
[SerialDDInstallSection_arm64]
Needs=SerialDDInstallSection
CopyFiles=serial_CopyFiles_FileListSection_arm64
[SerialDDInstallSection_arm64.HW]
Needs=SerialDDInstallSection.HW
[SerialDDInstallSection_arm64.Services]
AddService = serial,0x00000002,serial_arm64.AddService
[serial_arm64.AddService]
DisplayName = %serial.SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %13%\arm64\serial.sys
AddReg = serial.AddService.AddReg
;Base DDInstall section
[SerialDDInstallSection]
AddReg=serial.AddReg
FeatureScore=0x40
[serial.AddService.AddReg]
HKR, Parameters\Wdf, ForceLogsInMiniDump, 0x00010001, 1
HKR, Parameters, DebugLevel, 0x00010001, 0
HKR, Parameters, DebugFlag, 0x00010001, 0x1c01817
[serial.AddReg]
HKR,,NTMPDriver,,serial.sys
HKR,,RateLimitPurgeMS, 0x10001, 0x64, 0x00, 0x00, 0x00
HKR,,OverrideDefaultPortSettings, 0x10001, 01,00,00,00
HKR,,InitialBaudRate, 0x10001, 00,C2,01,00 ;115200 initial baud rate
HKR,,InitialLineControl,, "8N1" ;8-bits, No parity, 1 stop bit
HKR,,PortSubClass,1,01
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
;DDInstall.HW section
[SerialDDInstallSection.HW]
AddReg=SerialDDInstallSection.HW.AddReg
; Per-device-level registry entries (the "hardware key")
[SerialDDInstallSection.HW.AddReg]
;Amount of time the device must be idle before idling out
HKR,,"SelectiveSuspendTimeout",0x00010001,10000
HKR,"WDF","WdfDirectedPowerTransitionEnable",0x00010001,1
[serial_CopyFiles_FileListSection_x86]
serial.sys
[serial_CopyFiles_FileListSection_x64]
serial.sys
[serial_CopyFiles_FileListSection_arm]
serial.sys
[serial_CopyFiles_FileListSection_arm64]
serial.sys
[SourceDisksNames]
1=%Disk_Description%,"serial.cat"
[SourceDisksFiles.amd64]
serial.sys = 1,\x64
[SourceDisksFiles.arm]
serial.sys = 1,\arm
[SourceDisksFiles.arm64]
serial.sys = 1,\arm64
[SourceDisksFiles.x86]
serial.sys = 1,\x86
[DestinationDirs]
serial_CopyFiles_FileListSection_x86 = 13,x86
serial_CopyFiles_FileListSection_x64 = 13,x64
serial_CopyFiles_FileListSection_arm = 13,arm
serial_CopyFiles_FileListSection_arm64 = 13,arm64
[Strings]
; For provider, enter your Company Legal/Official/Long/Full Name
Provider="Dragon Nguyen"
ManufacturerName="Dragon Nguyen"
Disk_Description= "Nguyen DG2000 USB to UART Bridge Installation Disk"
USB\VID_20C6&PID_EA60.DeviceDesc= "Nguyen DG2000 USB to UART Bridge"
USB\VID_20C6&PID_EA63.DeviceDesc= "Nguyen DG2000 USB to UART Bridge"
USB\VID_20C6&PID_EA70&Mi_00.DeviceDesc="Nguyen DG2001 USB to UART Bridge: Port 1"
USB\VID_20C6&PID_EA70&Mi_01.DeviceDesc="Nguyen DG2001 USB to UART Bridge: Port 2"
USB\VID_20C6&PID_EA71&Mi_00.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 0"
USB\VID_20C6&PID_EA71&Mi_01.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 1"
USB\VID_20C6&PID_EA71&Mi_02.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 2"
USB\VID_20C6&PID_EA71&Mi_03.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 3"
USB\VID_20C6&PID_EA7A&Mi_00.DeviceDesc="Nguyen DG2105 USB to UART Bridge: Port 1"
USB\VID_20C6&PID_EA7A&Mi_01.DeviceDesc="Nguyen DG2105 USB to UART Bridge: Port 2"
USB\VID_20C6&PID_EA7B&Mi_00.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 0"
USB\VID_20C6&PID_EA7B&Mi_01.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 1"
USB\VID_20C6&PID_EA7B&Mi_02.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 2"
USB\VID_20C6&PID_EA7B&Mi_03.DeviceDesc="Nguyen DG2003 USB to UART Bridge: Interface 3"
serial.SvcDesc="Nguyen DG200x USB to UART Bridge Driver"
Hi @Zac_Lockard, Is there a missing with the AddReg. I see in this document: InfVerif Error 1330 - 1333 - Windows drivers | Microsoft Learn the AddReg section contain
I build and meet the error 1333: Cannot configure service '' differently between sections [] and [].
Signability test failed.
Errors:
22.9.1: serial.sys in [serial_copyfiles_filelistsection_x86] of serial.Universal\serial.inf is missing or cannot be decompressed from source media. Please verify all path values specified in SourceDisksNames, SouceDisksFiles, and CopyFiles sections resolve to the actual location of the file, and are expressed in terms relative to the location of the inf.
22.9.1: serial.sys in [serial_copyfiles_filelistsection_x64] of serial.Universal\serial.inf is missing or cannot be decompressed from source media. Please verify all path values specified in SourceDisksNames, SouceDisksFiles, and CopyFiles sections resolve to the actual location of the file, and are expressed in terms relative to the location of the inf.
22.9.1: serial.sys in [serial_copyfiles_filelistsection_arm] of serial.Universal\serial.inf is missing or cannot be decompressed from source media. Please verify all path values specified in SourceDisksNames, SouceDisksFiles, and CopyFiles sections resolve to the actual location of the file, and are expressed in terms relative to the location of the inf.
22.9.1: serial.sys in [serial_copyfiles_filelistsection_arm64] of serial.Universal\serial.inf is missing or cannot be decompressed from source media. Please verify all path values specified in SourceDisksNames, SouceDisksFiles, and CopyFiles sections resolve to the actual location of the file, and are expressed in terms relative to the location of the inf.
About the error 1333, when I ran on Jenkins, it can only build x64 the remains architecture cannot build. The error show in picture below
line 111:
line 149:
line 168:
@Zac_Lockard please instruct me to solve this problem because I'm in urgent now. Thank you!!!
I can't seem to reproduce that issue. What tooling/versions are you getting those errors from?
I'm using Visual Studio 2019 and WDK 10.0.2200.1
I can't figure out how that error might be generated, I get a cleanly passing INF from the tooling. What is changed from what I sent?
Nothing was changed from your suggestion. I keep it as your comment
This happens when my Jenkins run Universal INF validating
And this issue appear when I build on VS2019 with Inf2Cat enable
Which version are you using Sir?