;Copyright (c) 2017 NLSCAN
;/*++
;
; UFCOM inf file for USB devices.
; http://wiki.dev.nls:8080/pages/viewpage.action?pageId=16416883 (2017-02-24's content according to v.49)
;
;--*/

[Version]
Signature="$WINDOWS NT$"
Class    = USB
ClassGUID= {36fc9e60-c465-11cf-8056-444553540000}
Provider    = %Provider_nlscan%
DriverVer=12/11/2020,1.7.15
;CatalogFile=Nls_ufcom.cat
CatalogFile=Nls_ufcom_usb.cat


; ================= Class section =====================

;[ClassInstall32]
;Addreg=SampleClassReg     

;[SampleClassReg]
;HKR,,,0,%ClassName%
;HKR,,Icon,,-5


; ================= Device section =====================

[Manufacturer]
%ManufacturerId_nlscan%=ModelsList,NTAMD64


; For XP and later
[ModelsList.NTAMD64]

%NL_NoMatch_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_0000

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_0001
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_0002
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_0006

%HR200%=DDInstall_USBscanner, USB\VID_1EAB&PID_0101
%HR200%=DDInstall_USBscanner, USB\VID_1EAB&PID_0102
%HR200%=DDInstall_USBscanner, USB\VID_1EAB&PID_0106

%EM2027%=DDInstall_USBscanner, USB\VID_1EAB&PID_0201
%EM2027%=DDInstall_USBscanner, USB\VID_1EAB&PID_0202
%EM2027%=DDInstall_USBscanner, USB\VID_1EAB&PID_0206

%EM2100%=DDInstall_USBscanner, USB\VID_1EAB&PID_0401
%EM2100%=DDInstall_USBscanner, USB\VID_1EAB&PID_0402
%EM2100%=DDInstall_USBscanner, USB\VID_1EAB&PID_0406

%PT850%=DDInstall_USBscanner, USB\VID_1EAB&PID_0501
%PT850%=DDInstall_USBscanner, USB\VID_1EAB&PID_0502
%PT850%=DDInstall_USBscanner, USB\VID_1EAB&PID_0506

%PT980%=DDInstall_USBscanner, USB\VID_1EAB&PID_0701
%PT980%=DDInstall_USBscanner, USB\VID_1EAB&PID_0702
%PT980%=DDInstall_USBscanner, USB\VID_1EAB&PID_0706

%FM200%=DDInstall_USBscanner, USB\VID_1EAB&PID_0801
%FM200%=DDInstall_USBscanner, USB\VID_1EAB&PID_0802
%FM200%=DDInstall_USBscanner, USB\VID_1EAB&PID_0806

%FM208%=DDInstall_USBscanner, USB\VID_1EAB&PID_0901
%FM208%=DDInstall_USBscanner, USB\VID_1EAB&PID_0902
%FM208%=DDInstall_USBscanner, USB\VID_1EAB&PID_0906

%PT862%=DDInstall_USBscanner, USB\VID_1EAB&PID_0B01
%PT862%=DDInstall_USBscanner, USB\VID_1EAB&PID_0B02
%PT862%=DDInstall_USBscanner, USB\VID_1EAB&PID_0B06

%NL_UIMG%=DDInstall_USBscanner, USB\VID_1EAB&PID_0C01
%NL_UIMG%=DDInstall_USBscanner, USB\VID_1EAB&PID_0C02
%NL_UIMG%=DDInstall_USBscanner, USB\VID_1EAB&PID_0C06

%EM2028%=DDInstall_USBscanner, USB\VID_1EAB&PID_0D01
%EM2028%=DDInstall_USBscanner, USB\VID_1EAB&PID_0D02
%EM2028%=DDInstall_USBscanner, USB\VID_1EAB&PID_0D06

%HR220%=DDInstall_USBscanner, USB\VID_1EAB&PID_0E01
%HR220%=DDInstall_USBscanner, USB\VID_1EAB&PID_0E02
%HR220%=DDInstall_USBscanner, USB\VID_1EAB&PID_0E06

%NLDC_M7%=DDInstall_USBscanner, USB\VID_1EAB&PID_1301
%NLDC_M7%=DDInstall_USBscanner, USB\VID_1EAB&PID_1302
%NLDC_M7%=DDInstall_USBscanner, USB\VID_1EAB&PID_1306

%HR_Wireless%=DDInstall_USBscanner, USB\VID_1EAB&PID_1401
%HR_Wireless%=DDInstall_USBscanner, USB\VID_1EAB&PID_1402
%HR_Wireless%=DDInstall_USBscanner, USB\VID_1EAB&PID_1406

%NL_UIMG%=DDInstall_USBscanner, USB\VID_1EAB&PID_1601
%NL_UIMG%=DDInstall_USBscanner, USB\VID_1EAB&PID_1602
%NL_UIMG%=DDInstall_USBscanner, USB\VID_1EAB&PID_1606

%NLDC_P1%=DDInstall_USBscanner, USB\VID_1EAB&PID_1801
%NLDC_P1%=DDInstall_USBscanner, USB\VID_1EAB&PID_1802
%NLDC_P1%=DDInstall_USBscanner, USB\VID_1EAB&PID_1806

%NL_UIMG%=DDInstall_USBscanner, USB\VID_1EAB&PID_1901
%NL_UIMG%=DDInstall_USBscanner, USB\VID_1EAB&PID_1902
%NL_UIMG%=DDInstall_USBscanner, USB\VID_1EAB&PID_1906

%NLDC_M9%=DDInstall_USBscanner, USB\VID_1EAB&PID_1A01
%NLDC_M9%=DDInstall_USBscanner, USB\VID_1EAB&PID_1A02
%NLDC_M9%=DDInstall_USBscanner, USB\VID_1EAB&PID_1A06

%EM3086%=DDInstall_USBscanner, USB\VID_1EAB&PID_1B01
%EM3086%=DDInstall_USBscanner, USB\VID_1EAB&PID_1B02
%EM3086%=DDInstall_USBscanner, USB\VID_1EAB&PID_1B06

%HR21%=DDInstall_USBscanner, USB\VID_1EAB&PID_1C01
%HR21%=DDInstall_USBscanner, USB\VID_1EAB&PID_1C02
%HR21%=DDInstall_USBscanner, USB\VID_1EAB&PID_1C06

%FM430%=DDInstall_USBscanner, USB\VID_1EAB&PID_1D01
%FM430%=DDInstall_USBscanner, USB\VID_1EAB&PID_1D02
%FM430%=DDInstall_USBscanner, USB\VID_1EAB&PID_1D06

%NVH200%=DDInstall_USBscanner, USB\VID_1EAB&PID_1E01
%NVH200%=DDInstall_USBscanner, USB\VID_1EAB&PID_1E02
%NVH200%=DDInstall_USBscanner, USB\VID_1EAB&PID_1E06

%HR11Plus%=DDInstall_USBscanner, USB\VID_1EAB&PID_1F01
%HR11Plus%=DDInstall_USBscanner, USB\VID_1EAB&PID_1F02
%HR11Plus%=DDInstall_USBscanner, USB\VID_1EAB&PID_1F06


%EM2037v2%=DDInstall_USBscanner, USB\VID_1EAB&PID_2001
%EM2037v2%=DDInstall_USBscanner, USB\VID_1EAB&PID_2002
%EM2037v2%=DDInstall_USBscanner, USB\VID_1EAB&PID_2006

%EM2010%=DDInstall_USBscanner, USB\VID_1EAB&PID_2101
%EM2010%=DDInstall_USBscanner, USB\VID_1EAB&PID_2102
%EM2010%=DDInstall_USBscanner, USB\VID_1EAB&PID_2106

; ; ; future range >>>
%EM3000_V4%=DDInstall_USBscanner, USB\VID_1EAB&PID_2201
%EM3000_V4%=DDInstall_USBscanner, USB\VID_1EAB&PID_2202
%EM3000_V4%=DDInstall_USBscanner, USB\VID_1EAB&PID_2206

%FR20_MT%=DDInstall_USBscanner, USB\VID_1EAB&PID_2301
%FR20_MT%=DDInstall_USBscanner, USB\VID_1EAB&PID_2302
%FR20_MT%=DDInstall_USBscanner, USB\VID_1EAB&PID_2306

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2401
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2402
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2406

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2501
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2502
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2506

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2601
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2602
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2606

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2701
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2702
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2706

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2801
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2802
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2806

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2901
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2902
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2906

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2A01
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2A02
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2A06

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2B01
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2B02
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2B06

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2C01
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2C02
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2C06

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2D01
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2D02
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2D06

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2E01
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2E02
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2E06

%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2F01
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2F02
%NL_Generic%=DDInstall_USBscanner, USB\VID_1EAB&PID_2F06
; ; ; future range <<<

; %NLDC_P1%=DDInstall_USBscanner, USB\VID_1EAB&PID_8001 ; Newland IOTC Datapipe(xx01) is explicitly excluded
%NLDC_P1%=DDInstall_USBscanner, USB\VID_1EAB&PID_8006
%NLDC_P7%=DDInstall_USBscanner, USB\VID_1EAB&PID_8206
%NLDC_P9%=DDInstall_USBscanner, USB\VID_1EAB&PID_8306
%NLDC_PA%=DDInstall_USBscanner, USB\VID_1EAB&PID_8406

; PT980 firmware update uses Datapipe
;		PT980 USB DataPipe Device=DDInstall_USBscanner, USB\VID_6666&PID_0008

; HP customized
%HP_Rudy%=DDInstall_USBscanner, USB\VID_03F0&PID_2C39
%HP_Rudy%=DDInstall_USBscanner, USB\VID_03F0&PID_2B39

%HP_NSeries%=DDInstall_USBscanner, USB\VID_03F0&PID_0B69

%HP_CEM50D%=DDInstall_USBscanner, USB\VID_03F0&PID_0B71
%HP_CEM60D%=DDInstall_USBscanner, USB\VID_03F0&PID_0683

; This is used by Raspberry PI, Newland PT80 etc
%LinuxGadgetCDC%=DDInstall_USBscanner, USB\VID_0525&PID_A4A7

; PT80 USB-CDC Upgrade mode (Datapipe)
; Newland PT80 USB-to-serial Upgrade-Mode=DDInstall_USBscanner, USB\VID_5345&PID_1234


; OSRFX2 is for test only
;		OSRFX2 for Ufcom=DDInstall_USBscanner, USB\VID_0547&PID_1002

; Chj note: Do not touch the following line, bcz it is required by customize.ini AddExtraUsbModels=...
; <===CUSTOMIZATION ADD EXTRA MODELS HERE===>


[DDInstall_USBscanner.NT]
CopyFiles=USBscanner_CopyFiles
AddReg=USBscanner_AddReg

[USBscanner_AddReg]
HKR,,EnumPropPages32,,"NlsUfcom\ufcom_coinstaller.dll,UfcomPropPageProvider"


; 'DDInstall_USBscanner's concept-noun is "install-section name" or "DDInstall" by MSDN.
[DDInstall_USBscanner.NT.Services]
AddService = Nls_ufcom, %SPSVCINST_ASSOCSERVICE%, VCOM_Service_Inst

[VCOM_Service_Inst]
DisplayName     = %Ufcom_service_display_name%
ServiceType     = 1               ; SERVICE_KERNEL_DRIVER
StartType       = 3               ; SERVICE_DEMAND_START
ErrorControl    = 1               ; SERVICE_ERROR_NORMAL
ServiceBinary   = %11%\NlsUfcom\Nls_ufcom.sys
LoadOrderGroup  = Extended Base
AddReg = MyService.NT.AddReg.Services
	; Chj memo: You cannot simply use 'MyService' as AddReg section-name, which
	; would cause it to be ineffecitve. (Win7 verified)

[MyService.NT.AddReg.Services]
; [HKLM\SYSTEM\CurrentControlSet\services\Nls_ufcom\Parameters] ForceInfDeviceNamePids=...
; ForceInfDeviceNamePids: List those USB PID highbytes that would stick to using
; INF strings as devmgmt device display names(i.e. not using USB iProduct strings).
; Old devices(before 2016) are suggested to have this setting.
; For example: 0x05 is listed, so USB device with PID=05xx matches.
;                                     0x00000001 means REG_BINARY
HKR,Parameters,ForceInfDeviceNamePids,0x00000001,\
	0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b, \
	0x0c,0x0d,0x13,0x14,0x16,     0x18,0x19,0x1a, \
	0x80,     0x82,0x83,0x84, \
	0x00
HKR,Parameters,ForceInfDeviceNameVidPids,0x00000001,\
	0x03,0xF0,0x2b,0x39, 0x03,0xF0,0x2c,0x39, \
	0x03,0xF0,0x0b,0x69, 0x03,0xF0,0x0b,0x71,  \
	0x03,0xF0,0x06,0x83

; HKR,Parameters,EnableDatapipeForThesePidLowBytes,0x00000001, 0x01
; -- Well, No need to write this, bcz there will be a hard-coded default in Nls_ufcom.sys
;    if you insist later, you should add flag 0x00000002 (FLG_ADDREG_NOCLOBBER)

[USBscanner_CopyFiles]
Nls_ufcom.sys
ufcom_coinstaller.dll

[SourceDisksNames]
1=%Disk_Description%,,,

[SourceDisksFiles]
Nls_ufcom.sys = 1
ufcom_coinstaller.dll = 1,,

[DestinationDirs]
; Set all dirs to [11] C:\Windows\System32\NlsUfcom 
DefaultDestDir = 11,NlsUfcom
USBscanner_CopyFiles = 11,NlsUfcom





[DDInstall_USBscanner.NT.Wdf]
KmdfService = Nls_ufcom, USBscanner_wdfsect

[USBscanner_wdfsect]
KmdfLibraryVersion = 1.9

;---------------------------------------------------------------;

[Strings]
Provider_nlscan          = "HP Inc. (ufcom_usbd)"
ManufacturerId_nlscan    = "HP Inc. (mfg id)"
ClassName                = "UFCOM USB device"
Disk_Description         = "UFCOM Installation Disk"

SPSVCINST_ASSOCSERVICE= 0x00000002

Ufcom_service_display_name = "NLSCAN UFCOM Service"

; ==========================================================================
;                 USB Device DisplayName Below
; Please add "(UFCOM)" suffix; which implies this device is driven by UFCOM.
; And, our user manual take this as a convention.
; ==========================================================================

NL_Generic="Newland barcode scanner USB device (UFCOM)"
NL_UIMG="Newland UIMG barcode scanner USB device (UFCOM)"

NL_NoMatch_Generic="<Newland Generic USB device> (UFCOM)"

HR200="Newland HR200 USB device (UFCOM)"
EM2027="Newland EM2027 USB device (UFCOM)"
EM2100="Newland EM2100 USB device (UFCOM)"
PT850="Newland PT850 USB device (UFCOM)"
PT980="Newland PT980 USB device (UFCOM)"
FM200="Newland FM200 USB device (UFCOM)"
FM208="Newland FM208 USB device (UFCOM)"
PT862=FM200="Newland PT862 USB device (UFCOM)"

EM2028="Newland EM2028 USB device (UFCOM)"
HR220="Newland HR220 USB device (UFCOM)"
NLDC_M7="Newland NLDC M7 USB device (UFCOM)"

HR_Wireless="Newland Wireless Scanner USB device (UFCOM)"

NLDC_M9="Newland NLDC M9 USB device (UFCOM)"

EM3086="Newland EM3086 USB device (UFCOM)"
HR21="Newland HR21 USB device (UFCOM)"
FM430="Newland FM430 USB device (UFCOM)"

NVH200="Newland NVH200 USB device (UFCOM)"
HR11Plus="Newland HR11+ USB device (UFCOM)"

EM2037v2="Newland EM2037 V2 USB device (UFCOM)"
EM2010="Newland EM2010 USB device (UFCOM)"

EM3000_V4="Newland EM3000 V4 USB device (UFCOM)"
FR20_MT="Newland FR20-MT USB device (UFCOM)"


NLDC_P1="Newland NLDC P1 USB device (UFCOM)"
NLDC_P7="Newland NLDC P7 USB device (UFCOM)"
NLDC_P9="Newland NLDC P9 USB device (UFCOM)"
NLDC_PA="Newland NLDC PA USB device (UFCOM)"

HP_Rudy="HP USB Mobile Barcode Scanner (UFCOM)"
HP_NSeries="HP Barcode Scanner HR2150 (UFCOM)"
HP_CEM50D="HP Barcode Scanner CEM50D (UFCOM)"
HP_CEM60D="HP Barcode Scanner CEM60D (UFCOM)"

LinuxGadgetCDC="Linux Gadget USB-to-serial (UFCOM)"


