On Tue, 2014-07-22 at 14:02 +0000, Stanescu Victor wrote: > Hello, > > This device works perfectly with usbserial generic, loaded with forced > vendor/product parameters. Can you please add it to the proper driver? > > T: Bus=02 Lev=01 Prnt=01 Port=05 Cnt=02 Dev#= 7 Spd=480 MxCh= 0 > D: Ver= 2.00 Cls=ff(vend.) Sub=02 Prot=01 MxPS=64 #Cfgs= 2 > P: Vendor=03f0 ProdID=521d Rev=00.01 > S: Manufacturer=Hewlett-Packard > S: Product=HP hs3110 HSPA+ Mobile Broadband Device This device appears to be a Huawei "jungo"-type rebrand, given the drivers: %HP3110MDMDeviceDesc% = DevInstall, USBCDCACM\VID_03F0&PID_521D&MI_00 %HP3110PCUIDeviceDesc% = DevInstall, USBCDCACM\VID_03F0&PID_521D&MI_01 %HP3110DIAGDeviceDesc% = DevInstall, USBCDCACM\VID_03F0&PID_521D&MI_02 <interface 3 is standard USB_CLASS_CSCID> %HP3110ECMDeviceDesc% = ew_juwwanecm.ndi, USBCDCECM\VID_03F0&PID_521D&MI_04 %HP3110GNSSDeviceDesc% = GPS_DevInstall, USBCDCACM\VID_03F0&PID_521D&MI_05 03F0:541D (3114) has the same USB layout and same drivers. So interfaces 0, 1, 2, and 5 should be driven by 'option', and interface 4 by one of the ECM/NCM drivers, but I'm not sure here. Bjorn, any idea where this one should go? The Windows drivers make a distinction between "ew_jucdcncm.ndi" and "ew_jucdcecm.ndi", and this device falls in the "ecm" part. So not sure it's appropriate for huawei_cdc_ncm? Dan
; Copyright (c) 2010,2011 MBB Incorporated ; Manufacturer: MBB Incorporated ; ; CDC ECM & NCM driver ; [Version] Signature="$WINDOWS NT$" Class=Net ClassGUID={4d36e972-e325-11ce-bfc1-08002be10318} Provider= %Mfg% DriverVer=03/06/2013,2.6.2.3145 CatalogFile=ew_jucdcecm.cat [Manufacturer] %Mfg% = DeviceList,NTx86,NTamd64 [SourceDisksNames] 1 = %ew_jucdcecm.DiskName%,,,"" [SourceDisksFiles] ew_jucdcecm.sys = 1,, ; For Win2K [DeviceList] %PNP21_HW_NetworkDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&Subclass_02&Prot_16 %PNP21_NetworkDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&Subclass_02&Prot_76 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\COMPAT %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C06&MI_03 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C07&MI_01 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C1D&MI_01 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C1E&MI_03 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C1F&MI_02 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C21&MI_03 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C22&MI_02 %PNP21_HW_3G_NetworkDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_07 %PNP21_NetworkDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_67 %PNP21_HW_NetworkDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_11 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\COMPAT %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C06&MI_03 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C07&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C09&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0A&MI_02 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0C&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0E&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0F&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C14&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C15&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C16&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1444&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1445&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_144E&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_144F&MI_01 %HP3110ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_03F0&PID_521D&MI_04 %HP3114ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_03F0&PID_541D&MI_04 ; Windows XP and later [DeviceList.NTx86] %PNP21_HW_NetworkDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&Subclass_02&Prot_16 %PNP21_NetworkDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&Subclass_02&Prot_76 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\COMPAT %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C06&MI_03 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C07&MI_01 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C1D&MI_01 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C1E&MI_03 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C1F&MI_02 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C21&MI_03 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C22&MI_02 %PNP21_HW_3G_NetworkDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_07 %PNP21_NetworkDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_67 %PNP21_HW_NetworkDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_11 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\COMPAT %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C06&MI_03 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C07&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C09&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0A&MI_02 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0C&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0E&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0F&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C14&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C15&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C16&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1444&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1445&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_144E&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_144F&MI_01 %HP3110ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_03F0&PID_521D&MI_04 %HP3114ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_03F0&PID_541D&MI_04 ; For XP and later x64 [DeviceList.NTamd64] %PNP21_HW_NetworkDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&Subclass_02&Prot_16 %PNP21_NetworkDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&Subclass_02&Prot_76 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\COMPAT %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C06&MI_03 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C07&MI_01 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C1D&MI_01 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C1E&MI_03 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C1F&MI_02 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C21&MI_03 %NCMDeviceDesc% = ew_jucdcncm.ndi, USBCDCNCM\VID_12D1&PID_1C22&MI_02 %PNP21_HW_3G_NetworkDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_07 %PNP21_NetworkDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_67 %PNP21_HW_NetworkDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&Subclass_02&Prot_11 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\COMPAT %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C06&MI_03 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C07&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C09&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0A&MI_02 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0C&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0E&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C0F&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C14&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C15&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1C16&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1444&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_1445&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_144E&MI_01 %ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_12D1&PID_144F&MI_01 %HP3110ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_03F0&PID_521D&MI_04 %HP3114ECMDeviceDesc% = ew_jucdcecm.ndi, USBCDCECM\VID_03F0&PID_541D&MI_04 ;------------------------------------------------------------------------------- ; Virtual Ethernet Adapter ; [ew_jucdcncm.ndi] *IfType = 6 ; IF_TYPE_USB *MediaType = NdisMedium802_3; *PhysicalMediaType = NdisPhysicalMediumUnspecified; Characteristics = 0x84 ; NCF_HAS_UI | NCF_PHYSICAL BusType = 15 ; if you specify NCF_PHYSICAL, you must specify bustype AddReg = ew_jucdcecm.Reg, ParamsPromiscuous, NcmFlag, ParamsPacketsAccumulationTimeout, ParamsMaxNumOfDatagramsInNTB,FlowControlTimeOut CopyFiles = ew_jucdcecm.CopyFiles [ew_jucdcecm.ndi] *IfType = 6 ; IF_TYPE_USB *MediaType = NdisMedium802_3; *PhysicalMediaType = NdisPhysicalMediumUnspecified; Characteristics = 0x84 ; NCF_HAS_UI | NCF_PHYSICAL BusType = 15 ; if you specify NCF_PHYSICAL, you must specify bustype AddReg = ew_jucdcecm.Reg, ParamsPromiscuous, EcmFlag, FlowControlTimeOut CopyFiles = ew_jucdcecm.CopyFiles [ew_jucdcncm.ndi.HW] AddReg = ECM_AddReg [ew_jucdcncm.ndi.Services] AddService = %ServiceName%, 2, ew_jucdcecm.Service, ew_jucdcecm.EventLog [ew_jucdcecm.ndi.HW] AddReg = ECM_AddReg [ECM_AddReg] HKR,,"Platform",0x00010001,0x1 HKR,,"WWAN",0x00010001,0x0 [ew_jucdcecm.ndi.Services] AddService = %ServiceName%, 2, ew_jucdcecm.Service, ew_jucdcecm.EventLog ;----------------------------------------------------------------------------- ; [ew_jucdcecm.Reg] HKR, , BusNumber, 0, "0" HKR, Ndi, Service, 0, "huawei_cdcecm" HKR, Ndi\Interfaces, UpperRange, 0, "ndis5" HKR, Ndi\Interfaces, LowerRange, 0, "ethernet" HKR, , TcpAckFrqEnable, 0x00010001, 0 ;DWORD reg to control TcpAckFreqency [ParamsPromiscuous] ; ; Should the physical NIC be set to Promiscuous mode ; HKR, Ndi\Params\Promiscuous, ParamDesc, , %Promiscuous% HKR, Ndi\Params\Promiscuous, Default, ,"0" HKR, Ndi\Params\Promiscuous, type, , enum HKR, Ndi\Params\Promiscuous\enum,"1", , %Promiscuous_Enable% HKR, Ndi\Params\Promiscuous\enum,"0", , %Promiscuous_Disable% [ParamsIsNtb32] HKR, Ndi\Params\IsNtb32, ParamDesc, , %IsNtb32% HKR, Ndi\Params\IsNtb32, Default, , "1" HKR, Ndi\Params\IsNtb32, type, , enum HKR, Ndi\Params\IsNtb32\enum, "1", , "Yes" HKR, Ndi\Params\IsNtb32\enum, "0", , "No" [ParamsNTBInputSize] HKR, Ndi\Params\NTBInputSize, ParamDesc, , %NTBInputSize% ; If the following size is larger than the maximum allowed by the device, the ; maximum value is used. 0 means to use the maximum allowed value of the device. HKR, Ndi\Params\NTBInputSize, Default, , "0" HKR, Ndi\Params\NTBInputSize, type, , dword [ParamsPacketsAccumulationTimeout] HKR, Ndi\Params\PacketsAccumulationTimeout, ParamDesc, , %PacketsAccumulationTimeout% ; Unit of PacketsAccumulationTimeout is usecs. Default value is 20 us. HKR, Ndi\Params\PacketsAccumulationTimeout, Default, , "20" HKR, Ndi\Params\PacketsAccumulationTimeout, type, , dword [ParamsMaxNumOfDatagramsInNTB] HKR, Ndi\Params\MaxNumOfDatagramsInNTB, ParamDesc, , %MaxNumOfDatagramsInNTB% HKR, Ndi\Params\MaxNumOfDatagramsInNTB, Default, , "64" HKR, Ndi\Params\MaxNumOfDatagramsInNTB, type, , dword [FlowControlTimeOut] HKR, Ndi\Params\FlowControlTimeOut, ParamDesc, , %FlowControlTimeout% HKR, Ndi\Params\FlowControlTimeOut, Default, , "2800" HKR, Ndi\Params\FlowControlTimeOut, type, , dword [NcmFlag] HKR, Ndi\Params\NcmFlag, ParamDesc, , %NcmFlagDesc% HKR, Ndi\Params\NcmFlag, Default, , "1" HKR, Ndi\Params\NcmFlag, type, , dword [EcmFlag] HKR, Ndi\Params\NcmFlag, ParamDesc, , %NcmFlagDesc% HKR, Ndi\Params\NcmFlag, Default, , "0" HKR, Ndi\Params\NcmFlag, type, , dword ;----------------------------------------------------------------------------- ; DestinationDirs ; [DestinationDirs] ew_jucdcecm.CopyFiles = 12 [ew_jucdcecm.CopyFiles] ew_jucdcecm.sys,,,0x6 ;COPYFLG_NOSKIP | COPYFLG_NOVERSIONCHECK ;----------------------------------------------------------------------------- ; Driver and Service Section ; [ew_jucdcecm.Service] ServiceType = 1 ;%SERVICE_KERNEL_DRIVER% StartType = 3 ;%SERVICE_DEMAND_START% ErrorControl = 1 ;%SERVICE_ERROR_NORMAL% ServiceBinary = %12%\ew_jucdcecm.sys LoadOrderGroup = NDIS AddReg = ew_jucdcecm.Service.Reg [ew_jucdcecm.Service.Reg] HKR, , TextModeFlags, 0x00010001, 0x0001 HKR, Parameters, DebugLevel, 0x00010001, 1 [ew_jucdcecm.EventLog] AddReg = ew_jucdcecm.AddEventLog.Reg [ew_jucdcecm.AddEventLog.Reg] HKR, , EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll" HKR, , TypesSupported, 0x00010001, 7 ; ;--- WDF Coinstaller installation ------ ; [DestinationDirs] cdcecm_CoInstaller_CopyFiles = 11 [ew_jucdcncm.ndi.CoInstallers] AddReg=cdcecm_CoInstaller_AddReg CopyFiles=cdcecm_CoInstaller_CopyFiles [ew_jucdcecm.ndi.CoInstallers] AddReg=cdcecm_CoInstaller_AddReg CopyFiles=cdcecm_CoInstaller_CopyFiles [cdcecm_CoInstaller_AddReg] HKR,,CoInstallers32,0x00010000, "wdfcoinstaller01007.dll,WdfCoInstaller" [cdcecm_CoInstaller_CopyFiles] wdfcoinstaller01007.dll [SourceDisksFiles] wdfcoinstaller01007.dll=1 ; make sure the number matches with SourceDisksNames [ew_jucdcncm.ndi.Wdf] KmdfService = %ServiceName%, cdcecm_wdfsect [ew_jucdcecm.ndi.Wdf] KmdfService = %ServiceName%, cdcecm_wdfsect [cdcecm_wdfsect] KmdfLibraryVersion = 1.7 ;----------------------------------------------------------------------------- ; Localizable Strings ; [Strings] Mfg = "MBB Incorporated" ECMDeviceDesc = "Mobile Connect - Network Adapter" NewECMDeviceDesc = "Mobile Connect - Network Adapter" NCMDeviceDesc = "Mobile Connect - Network Adapter" NewNCMDeviceDesc = "Mobile Connect - Network Adapter" TDNCMDeviceDesc = "Mobile CMCC Connect - Network Adapter" ;PNP2.1 Device descriptor PNP21_HW_3G_NetworkDesc = "Mobile Connect - 3G Network Card" PNP21_HW_NetworkDesc = "Mobile Connect - Network Card" PNP21_NetworkDesc = "Mobile Connect - Network Card" HP3110ECMDeviceDesc = "HP hs3110 HSPA+ Mobile Broadband Module Network Device" HP3114ECMDeviceDesc = "HP hs3114 HSPA+ Mobile Broadband Module Network Device" ew_jucdcecm.DiskName = "DriverCore Installation Disk" Promiscuous = "Set the physical NIC to promiscuous mode" Promiscuous_Disable = "Disable" ServiceName = "huawei_cdcecm" Promiscuous_Enable = "Enable" PacketsAccumulationTimeout = "Packets Accumulation Timeout [usec]" MaxNumOfDatagramsInNTB = "Maximum number of datagrams in NTB" FlowControlTimeout = "Flow Control timeout interval in ms" NcmFlagDesc = "Flag use to distinguish NCM or ECM"