Yes thanks Alex I have this one also.
I am sure it is in the right section of the inf too, as I have also tried
“HKR,Exclusive,0x10001,1” and confirmed that this setting works when
applied.
Here is my full .inx file that build uses to generate the .inf files for
each platform:
;
; VirtualComPort.inf
;
[Version]
Signature=“$Windows NT$”
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Provider=%Virtual%
DriverVer=10/08/2010,0.0.0.2
DriverPackageDisplayName=%VirtualComPortDisplayName%
CatalogFile=virtualcom.cat
[Manufacturer]
%Virtual%=Virtual,NTx86, NTamd64
; For XP and later
[Virtual.NTx86]
%VirtualComPortDeviceName%=VirtualComPort_Install,UMDF\VirtualComPort
[Virtual.NTamd64]
%VirtualComPortDeviceName%=VirtualComPort_Install,UMDF\VirtualComPort
[SourceDisksFiles]
VirtualComPort.dll=1,
ComPrtCo.dll=1,
WudfUpdate_$UMDFCOINSTALLERVERSION$.dll=1,
[SourceDisksNames.x86]
1 = %MediaDescription%, virtualcomport.tag,\i386
[SourceDisksNames.amd64]
1 = %MediaDescription%, virtualcomport.tag,\amd64
; =================== UMDF VirtualComPort Device
[VirtualComPort_Install.NT]
CopyFiles=UMDriverCopy
AddReg=VirtualComPort_Install.NT.AddReg
[VirtualComPort_Install.NT.AddReg]
;HKR,EnumPropPages32,“MsPorts.dll,SerialPortPropPageProvider”
[VirtualComPort_Install.NT.hw]
AddReg=VirtualComPort_Device.NT.HW.AddReg
[VirtualComPort_Device.NT.HW.AddReg]
HKR,“VirtualComPort”,“Host”,0x00000002,“127.0.0.1”
HKR,“VirtualComPort”,“Port”,0x10003,“53001”
HKR,DeviceType,0x10001,0x0000001b
;HKR,Exclusive,0x10001,1
[VirtualComPort_Install.NT.Services]
AddService=WUDFRd,%SPSVCINST_ASSOCSERVICE%,Virtual_Service_Install
[VirtualComPort_Install.NT.CoInstallers]
CopyFiles=CoInstallers_CopyFiles
AddReg=CoInstallers_AddReg
[VirtualComPort_Install.NT.Wdf]
UmdfService=VirtualComPort,VirtualComPort_Install
UmdfServiceOrder=VirtualComPort
UmdfDispatcher=FileHandle
[VirtualComPort_Install]
UmdfLibraryVersion=$UMDFVERSION$
ServiceBinary=%12%\UMDF\VirtualComPort.dll
DriverCLSID={2E240F83-5EA5-4350-9A84-13DE3A647596}
[Virtual_Service_Install]
DisplayName = %WudfRdDisplayName%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WUDFRd.sys
LoadOrderGroup = Base
[CoInstallers_CopyFiles]
WudfUpdate_$UMDFCOINSTALLERVERSION$.dll
ComPrtCo.dll
[CoInstallers_AddReg]
;HKR,CoInstallers32,0x00010000,“WUDFUpdate_$UMDFCOINSTALLERVERSION$.dll”
HKR,CoInstallers32,0x00010000,“WUDFUpdate_$UMDFCOINSTALLERVERSION$.dll”,“ComPrtCo.dll,VirtualComPortCoInstaller”
[DestinationDirs]
UMDriverCopy=12,UMDF ; copy to drivers\UMDF
CoInstallers_CopyFiles=11
[UMDriverCopy]
VirtualComPort.dll
; =================== Generic ==================================
[Strings]
SPSVCINST_ASSOCSERVICE=0x000001fa
Virtual=“Virtual Logic”
MediaDescription=“Virtual Logic Driver Installation Media”
WudfRdDisplayName=“Virtual Logic - Com Port Driver”
VirtualComPortDeviceName=“Virtual Com Port”
VirtualComPortDisplayName=“Com Port”
On Mon, Nov 29, 2010 at 7:25 PM, Alex Mason wrote:
> Hi Scott,
>
> Have you set the device type of your driver as FILE_DEVICE_SERIAL_PORT?
>
> This can be specified at installation by adding the following to your inf
> file:
>
> [VitualComPort_Install.NT.hw]
> AddReg=VitualComPort_RegistryAdd
>
> [VitualComPort_RegistryAdd]
> HKR,DeviceType,0x10001,0x0000001b
>
> Alex
>
>
>
> On 29/11/2010 02:35, Scott McNab wrote:
>
>> Hi Doron
>>
>> Yes the device is being written to SERIALCOMM correctly (I think!).
>> Heres the registry export:
>>
>> [HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM]
>> “\Device\ProlificSerial0”=“COM25”
>> “\Device\VSerial_0”=“COM5”
>> “\Device\VSerial_2”=“COM10”
>> “\Device\VSerial_4”=“COM26”
>> “\Device\000000cd”=“COM16”
>> “\Device\00000053”=“COM24”
>>
>> In this dump COM25 (“ATEN” usb serial port) and COM5/10/26 (“Eltima”
>> virtual serial port) all appear as unspecified devices in Devices and
>>
>> Printers and are available for use in the fax wizard.
>>
>> However COM16 (my device) and COM24 (“Microsoft VirtualSerial User-Mode
>> Device Sample”) both neither appear in Devices and Printers or in the
>> fax wizard. I can connect to them using putty if I type the symbolic
>> link name, and they also appear in the list of available ports if I use
>> hyperterminal.
>>
>> Any ideas?
>>
>>
>>
>>
>> On Sun, Nov 28, 2010 at 11:57 PM, Doron Holan >> mailto:xxxxx> wrote:
>>
>> Are you sure that your port name is being written to the SERIALCOMM
>> key?
>>
>> d
>>
>> dent from a phpne with no keynoard
>>
>>
>> ------------------------------------------------------------------------
>> From: Scott McNab >> >>
>>
>> Sent: November 27, 2010 11:09 PM
>> To: Windows System Software Devs Interest List >> mailto:xxxxx>
>>
>> Subject: Re:[ntdev] UMDF Virtual COM not appearing in “Devices and
>> Printers” or as modem port
>>
>> I just noticed that the UMDF VirtualSerial sample driver also does
>> not appear in the list of available modem ports:
>>
>> Is something missing from this example code? Is there an additional
>> step required in order to use a COM port with a modem driver?
>>
>> Thanks
>>
>> On 26/11/2010 4:43 PM, “Scott McNab” >>> mailto:xxxxx> wrote:
>>>
>>> Hello.
>>>
>>> I’ve written a virtual COM serial to TCP/IP driver using UMDF that
>>> basically works, except for two issues:
>>>
>>> 1. The COM port correctly appears in Device Manager under “Ports
>>> (COM & LPT)”, however if I attempt to use the “Add Hardware
>>> Wizard” to bind a “Standard 56000 bps Modem” to the COM port, the
>>> port does NOT appear in the list of available ports! (other serial
>>> ports are listed however, including USB serial and other vendor
>>> virtual COM ports…)
>>>
>>> 2. The COM port does NOT appear in the list of Unspecified
>>> devices in “Devices and Printers”.
>>>
>>> I think the two problems are actually the same issue, in that I
>>> must not be registering the serial port device correctly somehow?
>>>
>>> The driver itself seems to work however, in that I can use ‘putty’
>>> to talk to the COM port and it successfully communicates with the
>>> remote TCP/IP socket. Also, my Windows XP build of the driver
>>> actually shows the device in the list of available COM ports when
>>> running Hyperterminal, so I must be fairly close!
>>>
>>> Details on the driver:
>>>
>>> It is written using UMDF and basically a combination of these two
>>> example drivers from the WDK (version 7600.16385.1):
>>>
>>> - src\serial\VirtualSerial
>>> - src\general\echo\umdfSocketEcho\Driver
>>>
>>> i.e. The driver device creates a GUID_DEVINTERFACE_COMPORT device
>>> interface, implements all the serial IOCTLs (from the
>>> VirtualSerial example), and then forwards all IO read/write
>>> requests to a TCP/IP socket file handle (from the umdfSocketEcho
>>> example). The device also has a second custom device interface
>>> which I use to configure the recipient IP address and port using
>>> custom IOCTLs from a configuration app.
>>>
>>> The device is root enumerated (like the UMDF VirtualSerial
>>> example) and correctly appears under
>>> HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM. I use the
>>> configuration app to install/remove instances using
>>> UpdateDriverForPlugAndPlayDevices() and
>>> SetupDiCallClassInstaller(), as per the devcon.exe example.
>>>
>>> I’ve read all the docs I can find on MSDN and I really cant see
>>> what I’m missing. Is it something to do with being a root
>>> enumerated or UMDF device? (thats the only difference I can see -
>>> other virtual COM ports all seem to be bus enumerated rather than
>>> root enumerated and kernel-mode drivers).
>>>
>>> Can anyone please suggest where I should look next? I really need
>>> to be able to use this device as a modem port.
>>>
>>> Thanks!
>>> Scott
>>>
>>> — NTDEV is sponsored by OSR For our schedule of WDF, WDM,
>> debugging and other seminars visit: http://www.osr.com/seminars To
>> unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>>
>> —
>> NTDEV is sponsored by OSR
>>
>> For our schedule of WDF, WDM, debugging and other seminars visit:
>> http://www.osr.com/seminars
>>
>> To unsubscribe, visit the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>>
>>
>>
>
> —
>
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
></mailto:xxxxx></mailto:xxxxx></mailto:xxxxx>