Serial Port Enumaration / Creating the Dos Device Name

Hi,

We are writing a USB to Serial Device Driver for Win 2000.
When we plugged our USB device to one of the hub port it is creating dos device name as COM3 and if we plugged the same device in some other port it is creating
the dos device name as COM4.
But Our requirement is to create the same dos device name (COM3) irrespective of the usb ports.

We are having a competetor device ( Usb to Serial ). He is able to do this. i.e that driver is creating the same dos device name (COM3) irrespective of the hub ports.
The only difference is the competetor device driver is digitally signed and our driver is not digitally signed. Is this makes the difference???

Following is our inf file (MosUPort.INF) and competetor inf file (USA19WP.INF). Can somebody help me? What iam doing wrong?

Thanks & Regards,
Madhukar Reddy

############################################
MosUPort.INF ( Our driver Inf File)
############################################

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; MosChip Technology, inc.
;;
;; FILE : MosUPort.inf
;; OS SUPPORTED : WIN2000/XP
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[version]
LayoutFile=layout.inf
Signature=“$WINDOWS NT$”
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%ProviderName%
DriverVer=03/11/2003,1.0.11.11

[DestinationDirs]
DefaultDestDir = 11 ;LDID_SYS
Inf.Copy=17

[SourceDiskFiles]
; 1 = Disk Number
MosUComp.inf=1
MosUPort.inf=1

[SourceDisksNames]
1=%DiskName%,

;===============================
; Class Installation
;===============================
[ClassInstall32.NT]
AddReg=PortsClass.NT.AddReg

[PortsClass.NT.AddReg]
HKR,%PortsClassName%
HKR,Icon,“-23”
HKR,Installer32,“MsPorts.Dll,PortsClassInstaller”

[ControlFlags]

;===============================
; Driver Installation
;===============================
[Manufacturer]
%MfgName%=MosUsbPortsList

;
; Manufacturer Name Section
;
[MosUsbPortsList]
%MosUsbPort.ComPortName%=ComPort.NT,MOSCHIP\USB_SERIAL_INTERFACE
%MosUsbPort.LptPortName%=LptPort.NT,MOSCHIP\USB_PARALLEL_INTERFACE

;----------------------------------------
; COM Port Install
;----------------------------------------
[ComPort.NT]
AddReg=ComPort.NT.AddReg
SyssetupPnPFlags = 1

[ComPort.NT.AddReg]

;RegMaxTxPacketSize is valid 1 - 512
HKLM,“System\CurrentControlSet\Services\mosuport\Parameters”, “RegMaxTxPacketSize”, 0x10001, 128

;RegUsbReadMaxPolls is valid 1 - 10
HKLM,“System\CurrentControlSet\Services\mosuport\Parameters”, “RegUsbReadMaxPolls”, 0x10001, 1

;RegUsbStatusMaxPolls is valid 1 - 10
HKLM,“System\CurrentControlSet\Services\mosuport\Parameters”, “RegUsbStatusMaxPolls”, 0x10001, 1

HKR,EnumPropPages32,“MsPorts.dll,SerialPortPropPageProvider”
HKR,PortSubClass,1,01

[ComPort.NT.HW]
AddReg=ComPort.NT.HW.AddReg

[ComPort.NT.HW.AddReg]
HKR,“UpperFilters”,0x00010000,“serenum”

[ComPort.NT.Services]
;Include=msports.inf
;Needs=SerialEnumerator.NT.Services
AddService=mosuport,2,ComPort.NT.AddService

[ComPort.NT.AddService]
DisplayName = %mosuport.ServiceName%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 0 ; SERVICE_ERROR_IGNORE
ServiceBinary = %12%\mosuport.sys
LoadOrderGroup = Base

;----------------------------------------
; LPT Port Install
;----------------------------------------
[LptPort.NT]
AddReg=LptPort.NT.AddReg

[LptPort.NT.AddReg]

HKLM,“System\CurrentControlSet\Services\mosuport\Parameters”, “ClkFreq”, 0x10001, 3
; 0 - 12 MHz
; 1 - 6 MHz
; 2 - 3 MHz
; 3 - 1.5 MHz
; 4 - 0.75 MHz

HKR,EnumPropPages32,“MsPorts.dll,ParallelPortPropPageProvider”
HKR,PortSubClass,1,00
HKR,ECPDevice,1,00

[LptPort.NT.Services]
;Include=msports.inf
;Needs=SerialEnumerator.NT.Services
AddService=mosuport,2,LptPort.NT.AddService

[LptPort.NT.AddService]
DisplayName = %mosuport.ServiceName%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 0 ; SERVICE_ERROR_IGNORE
ServiceBinary = %12%\mosuport.sys
LoadOrderGroup = Base

;----------------------------------------------
; User readable strings
;----------------------------------------------
[Strings]
ProviderName=“MosChip Semiconductor Technology”
MfgName=“MosChip Semiconductor Technology”
DiskName=“MosChip USB Compound Device Installation Disc”
MosUsbComp.DevName=“MosChip USB Compound Device”
mosuport.ServiceName=“MosChip USB Serial/Parallel Ports”
PortsClassName = “Ports (COM & LPT)”
MosUsbPort.ComPortName=“MosChip USB Serial Port”
MosUsbPort.LptPortName=“MosChip USB Parallel Port”

;-----------------------
; END OF FILE
;-----------------------

############################################
USA19WP.INF ( Competetor Inf File)
############################################

;
; FILE: USA19WP.INF
;
; Keyspan High Speed USB Serial Adapter (USA19W/USA19QW)
;
; Serial Driver Installer (Win2k/xp/98/me)
;
; 2001Apr05 DF – WHQL mods
; 2002Apr10 LPM – change to version 3.1
;
; Copyright (c) 2002 InnoSys Inc., All Rights Reserved
;

[Version]
Signature = “$CHICAGO$”
Provider=%ProviderName%
Class=PORTS
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
DriverVer=04/08/2002,3.1.0.0
CatalogFile.NT=usa19w2kp.cat

[Manufacturer]
%MfgName%=Keyspan

[Keyspan]
%USA19WPORT.DeviceDesc%=USA19WPORT.Install, KEYSPAN*USA19WMAP

[ControlFlags]
ExcludeFromSelect=* ; removes all device here from the device installer list

;---------------------------------------------------------------------
; Windows 98 Sections
;---------------------------------------------------------------------

[USA19WPORT.Install]
AddReg=USA19WPORT.AddReg

[USA19WPORT.AddReg]
HKR,DevLoader,*VCOMM
;HKR,Enumerator,serenum.vxd
HKR,PortDriver,usa19wp.VXD
HKR,ConfigDialog,serialui.dll
HKR,DCB,3,1C,00,00,00, 80,25,00,00, 11,33,00,00, 00,00, 0a,00, 0a,00, 08, 00, 00, 11, 13, 00, 00, 00
HKR,PortSubClass,1,01
;HKR,EnumPropPages,“serialui.dll,EnumPropPages”
HKR,DriverDesc,%USA19WPORT.DeviceDesc%

;---------------------------------------------------------------------
; Windows 2000 Sections
;---------------------------------------------------------------------

[USA19WPORT.Install.NT]
Include=MSPORTS.INF
Needs=SerialEnumerator.NT
AddReg=USA19WPORT.NT.AddReg

[USA19WPORT.Install.NT.Services]
;Include=MSPORTS.INF
;Needs=SerialEnumerator.NT.Services
AddService = USA19w2KP, 0x00000002, USA19WPORT.AddService

[USA19WPORT.Install.NT.HW]
AddReg=USA19WPORT.NT.HW.AddReg

[USA19WPORT.NT.AddReg]
HKR,PortSubClass,1,01
HKR,EnumPropPages32,“Usa19wPropPage.dll,EnumPropPages”

[USA19WPORT.NT.HW.AddReg]
;HKR,“UpperFilters”,0x00010000,“serenum”

[USA19WPORT.AddService]
DisplayName = %USA19WPORT.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usa19w2kp.SYS
LoadOrderGroup = Extended Base

[Strings]
MfgName=“Keyspan”
ProviderName=“KSPN”
USA19WPORT.DeviceDesc=“Keyspan High Speed USB Serial Adapter Port”
USA19WPORT.SvcDesc=“Keyspan High Speed USB Serial Adapter Port Driver”

Your device needs a unique serial number. When you plug it into a different usb port, windows has no idea it was the same device as the one in the different port. If your device has a serial number then the usb core stack can track the device through a unique identifier (the serial number).

D

This posting is provided "AS IS" with no warranties, and confers no rights

-----Original Message-----
From: Madhukar Reddy [mailto:xxxxx@moschip.com]
Sent: Tuesday, March 25, 2003 5:18 AM
To: NT Developers Interest List
Subject: [ntdev] Serial Port Enumaration / Creating the Dos Device Name

Hi,
?
We are writing a USB to Serial Device Driver for Win 2000.?
When we plugged our?USB device to one of the hub port it is creating dos device name?as COM3?and if we plugged the?same device in some other port it is creating?
the dos device name as COM4.?
But Our requirement is to create the?same dos device name (COM3) irrespective of the usb ports.
?
We are having a competetor device ( Usb to Serial ). He is able to do this.?i.e that driver is?creating ?the same?dos device name (COM3) irrespective of the?hub ports.
The only difference is the competetor device driver is digitally signed and our driver is not digitally signed.? Is this makes the difference???
?
Following is?our inf file (MosUPort.INF)? and? competetor inf file (USA19WP.INF). Can somebody?help me? What iam doing wrong?
?
Thanks & Regards,
Madhukar Reddy
?
############################################
MosUPort.INF (?Our driver?Inf File)
############################################
?

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;? MosChip Technology, inc.
;;
;;? FILE : MosUPort.inf
;;? OS SUPPORTED : WIN2000/XP
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
?
[version]
LayoutFile=layout.inf
Signature="$WINDOWS NT$"
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%ProviderName%
DriverVer=03/11/2003,1.0.11.11
?
[DestinationDirs]
DefaultDestDir? = 11??????? ;LDID_SYS
Inf.Copy=17
?
[SourceDiskFiles]
; 1 = Disk Number
MosUComp.inf=1
MosUPort.inf=1
?
[SourceDisksNames]
1=%DiskName%,,
?
;===============================
; Class Installation
;===============================
[ClassInstall32.NT]
AddReg=PortsClass.NT.AddReg
?
[PortsClass.NT.AddReg]
HKR,,,,%PortsClassName%
HKR,,Icon,,"-23"
HKR,,Installer32,,"MsPorts.Dll,PortsClassInstaller"
?
[ControlFlags]
?
;===============================
; Driver Installation
;===============================
[Manufacturer]
%MfgName%=MosUsbPortsList
?
;
; Manufacturer Name Section
;
[MosUsbPortsList]
%MosUsbPort.ComPortName%=ComPort.NT,MOSCHIP\USB_SERIAL_INTERFACE
%MosUsbPort.LptPortName%=LptPort.NT,MOSCHIP\USB_PARALLEL_INTERFACE
?
;----------------------------------------
; COM Port Install
;----------------------------------------
[ComPort.NT]
AddReg=ComPort.NT.AddReg
SyssetupPnPFlags = 1
?
[ComPort.NT.AddReg]
?
;RegMaxTxPacketSize is valid 1 - 512
HKLM,"System\CurrentControlSet\Services\mosuport\Parameters", "RegMaxTxPacketSize", 0x10001, 128
?
;RegUsbReadMaxPolls is valid 1 - 10
HKLM,"System\CurrentControlSet\Services\mosuport\Parameters", "RegUsbReadMaxPolls", 0x10001, 1
?
;RegUsbStatusMaxPolls is valid 1 - 10
HKLM,"System\CurrentControlSet\Services\mosuport\Parameters", "RegUsbStatusMaxPolls", 0x10001, 1
?

HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"
HKR,,PortSubClass,1,01
?
[ComPort.NT.HW]
AddReg=ComPort.NT.HW.AddReg
?
[ComPort.NT.HW.AddReg]
HKR,,"UpperFilters",0x00010000,"serenum"
?
[ComPort.NT.Services]
;Include=msports.inf
;Needs=SerialEnumerator.NT.Services
AddService=mosuport,2,ComPort.NT.AddService
?
[ComPort.NT.AddService]
DisplayName??? = %mosuport.ServiceName%
ServiceType??? = 1?????????? ; SERVICE_KERNEL_DRIVER
StartType????? = 3?????????? ; SERVICE_DEMAND_START
ErrorControl?? = 0?????????? ; SERVICE_ERROR_IGNORE
ServiceBinary? = %12%\mosuport.sys
LoadOrderGroup = Base
?
;----------------------------------------
; LPT Port Install
;----------------------------------------
[LptPort.NT]
AddReg=LptPort.NT.AddReg
?
[LptPort.NT.AddReg]
?
HKLM,"System\CurrentControlSet\Services\mosuport\Parameters", "ClkFreq", 0x10001, 3
; 0 - 12?? MHz
; 1 -? 6?? MHz
; 2 -? 3?? MHz
; 3 - 1.5? MHz
; 4 - 0.75 MHz
?
HKR,,EnumPropPages32,,"MsPorts.dll,ParallelPortPropPageProvider"
HKR,,PortSubClass,1,00
HKR,,ECPDevice,1,00
?
[LptPort.NT.Services]
;Include=msports.inf
;Needs=SerialEnumerator.NT.Services
AddService=mosuport,2,LptPort.NT.AddService
?
[LptPort.NT.AddService]
DisplayName??? = %mosuport.ServiceName%
ServiceType??? = 1?????????? ; SERVICE_KERNEL_DRIVER
StartType????? = 3?????????? ; SERVICE_DEMAND_START
ErrorControl?? = 0?????????? ; SERVICE_ERROR_IGNORE
ServiceBinary? = %12%\mosuport.sys
LoadOrderGroup = Base
?
;----------------------------------------------
; User readable strings
;----------------------------------------------
[Strings]
ProviderName="MosChip Semiconductor Technology"
MfgName="MosChip Semiconductor Technology"
DiskName="MosChip USB Compound Device Installation Disc"
MosUsbComp.DevName="MosChip USB Compound Device"
mosuport.ServiceName="MosChip USB Serial/Parallel Ports"
PortsClassName = "Ports (COM & LPT)"
MosUsbPort.ComPortName="MosChip USB Serial Port"
MosUsbPort.LptPortName="MosChip USB Parallel Port"
?
;-----------------------
; END OF FILE
;-----------------------
?
?
?
?
?
############################################
USA19WP.INF ( Competetor Inf File)
############################################
?
?
;
;?????? FILE:?? USA19WP.INF
;
; Keyspan High Speed USB Serial Adapter (USA19W/USA19QW)
;
; Serial Driver Installer (Win2k/xp/98/me)
;
; 2001Apr05 DF -- WHQL mods
; 2002Apr10 LPM -- change to version 3.1
;
; Copyright (c) 2002 InnoSys Inc., All Rights Reserved
;
?
[Version]
Signature = "$CHICAGO$"
Provider=%ProviderName%
Class=PORTS
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
DriverVer=04/08/2002,3.1.0.0
CatalogFile.NT=usa19w2kp.cat
?
[Manufacturer]
%MfgName%=Keyspan
?
[Keyspan]
%USA19WPORT.DeviceDesc%=USA19WPORT.Install, KEYSPAN*USA19WMAP
?
[ControlFlags]
ExcludeFromSelect=*???????????? ; removes all device here from the device installer list
?

;---------------------------------------------------------------------
;? Windows 98 Sections
;---------------------------------------------------------------------
?
[USA19WPORT.Install]
AddReg=USA19WPORT.AddReg
?
[USA19WPORT.AddReg]
HKR,,DevLoader,,*VCOMM
;HKR,,Enumerator,,serenum.vxd
HKR,,PortDriver,,usa19wp.VXD
HKR,,ConfigDialog,,serialui.dll
HKR,,DCB,3,1C,00,00,00, 80,25,00,00, 11,33,00,00, 00,00, 0a,00, 0a,00, 08, 00, 00, 11, 13, 00, 00, 00
HKR,,PortSubClass,1,01
;HKR,,EnumPropPages,,"serialui.dll,EnumPropPages"
HKR,,DriverDesc,,%USA19WPORT.DeviceDesc%
?
;---------------------------------------------------------------------
;? Windows 2000 Sections
;---------------------------------------------------------------------
?
[USA19WPORT.Install.NT]
Include=MSPORTS.INF
Needs=SerialEnumerator.NT
AddReg=USA19WPORT.NT.AddReg
?
[USA19WPORT.Install.NT.Services]
;Include=MSPORTS.INF
;Needs=SerialEnumerator.NT.Services
AddService = USA19w2KP, 0x00000002, USA19WPORT.AddService
?
[USA19WPORT.Install.NT.HW]
AddReg=USA19WPORT.NT.HW.AddReg
?
[USA19WPORT.NT.AddReg]
HKR,,PortSubClass,1,01
HKR,,EnumPropPages32,,"Usa19wPropPage.dll,EnumPropPages"
?
[USA19WPORT.NT.HW.AddReg]
;HKR,,"UpperFilters",0x00010000,"serenum"
?
[USA19WPORT.AddService]
DisplayName??? = %USA19WPORT.SvcDesc%
ServiceType??? = 1????????????????? ; SERVICE_KERNEL_DRIVER
StartType????? = 3????????????????? ; SERVICE_DEMAND_START
ErrorControl?? = 1????????????????? ; SERVICE_ERROR_NORMAL
ServiceBinary? = %12%\usa19w2kp.SYS
LoadOrderGroup = Extended Base
?
[Strings]
MfgName="Keyspan"
ProviderName="KSPN"
USA19WPORT.DeviceDesc="Keyspan High Speed USB Serial Adapter Port"
USA19WPORT.SvcDesc="Keyspan High Speed USB Serial Adapter Port Driver"

You are currently subscribed to ntdev as: xxxxx@windows.microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com