Dear Team,
I followed the procedure mentioned at
http://support.microsoft.com/kb/837637to use system supplied
usbser.sys to the device.
The hardware found wizard completes with error and the setuplog points to
the below point:
“The installation failed because a function driver was not specified for
this device instance.”
Originally [LowerFilter_Service_Inst] section is present in modem inf file.
So I guess that it is not required.
Please suggest a pointer to missing statement which is resulting in above
error. Other required changes are not mentioned at the link.
==========================================================
referenceusbser.inf
[Version]
Signature = “$CHICAGO$”
Class = Ports
ClassGuid = {4D36E978-E325-11CE-BFC1-08002BE10318}
Provider = %VENDOR%
LayoutFile = layout.inf
[Manufacturer]
%VENDOR% = Vendor, NTx86
; For XP and later
[Vendor.NTx86]
%usbtoser% = usbtoser.Inst, USB\VID_xxxx&PID_xxxx
[usbtoser.Inst.NT]
include = mdmcpq.inf
CopyFiles = FakeModemCopyFileSection
[usbtoser.Inst.NT.Services]
include = mdmcpq.inf
AddService = usbser, 0x00000000, LowerFilter_Service_Inst
[usbtoser.Inst.NT.HW]
include = mdmcpq.inf
AddReg = LowerFilterAddReg
[LowerFilter_Service_Inst]
DisplayName = “USB to Serial Driver”
ServiceType = 1
StartType = 3
ErrorControl = 0
ServiceBinary = %12%\usbser.sys
[Strings]
VENDOR = “vendor”
usbtoser = “testdevice”
Uday Bhaskar wrote:
The hardware found wizard completes with error and the setuplog
points to the below point: “The installation failed because a function
driver was not specified for this device instance.”
Yep, here’s the problem:
Class = Ports
When you set Class = Ports, your AddService line needs to setup usbser.sys as the function driver for your device – not a lower filter, i.e. AddService = usbser, 0x00000002, LowerFilter_Service_Inst. Of course, LowerFilter_Service_Inst is a bit of a misnomer in this case, so you probably want to call it something else.
When you set Class = Modem, usbser.sys becomes a lower filter to modem.sys, and thus 0x00000000 is correct.
Bhaskar wrote:
I followed the procedure mentioned at
http://support.microsoft.com/kb/837637 to use system supplied
usbser.sys to the device.
The hardware found wizard completes with error and the setuplog points
to the below point:
“The installation failed because a function driver was not specified
for this device instance.”
…
[usbtoser.Inst.NT]
include = mdmcpq.inf
CopyFiles = FakeModemCopyFileSection
[usbtoser.Inst.NT.Services]
include = mdmcpq.inf
AddService = usbser, 0x00000000, LowerFilter_Service_Inst
[usbtoser.Inst.NT.HW]
include = mdmcpq.inf
AddReg = LowerFilterAddReg
“Include” doesn’t do anything on its own. To include a section from
another file, you also need a “Needs” statement to tell it which section
to copy. It’s similar to using C header files. The “Include” statement
is like the -I switch – it tells the compiler where to look. The
“Needs” statement is like #include – it brings in a section from one of
the files in the Include statement.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
Thanks for the pointers.
I modified 0x00000002 in AddService and USBSer.sys is loading as the
function driver.
Regards.
On Jan 31, 2008 10:22 AM, Tim Roberts wrote:
> Bhaskar wrote:
> >
> > I followed the procedure mentioned at
> > http://support.microsoft.com/kb/837637 to use system supplied
> > usbser.sys to the device.
> >
> > The hardware found wizard completes with error and the setuplog points
> > to the below point:
> > “The installation failed because a function driver was not specified
> > for this device instance.”
> > …
> > [usbtoser.Inst.NT]
> > include = mdmcpq.inf
> > CopyFiles = FakeModemCopyFileSection
> >
> > [usbtoser.Inst.NT.Services]
> > include = mdmcpq.inf
> > AddService = usbser, 0x00000000, LowerFilter_Service_Inst
> >
> > [usbtoser.Inst.NT.HW]
> > include = mdmcpq.inf
> > AddReg = LowerFilterAddReg
>
> “Include” doesn’t do anything on its own. To include a section from
> another file, you also need a “Needs” statement to tell it which section
> to copy. It’s similar to using C header files. The “Include” statement
> is like the -I switch – it tells the compiler where to look. The
> “Needs” statement is like #include – it brings in a section from one of
> the files in the Include statement.
>
> –
> Tim Roberts, xxxxx@probo.com
> Providenza & Boekelheide, Inc.
>
>
> —
> 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
>