Driver Startup Problem

J

Joseph LeBlanc

I'm having an odd problem with a driver for a touch screen on my
hardware platform.

I made a component from the driver's INF file ok and I don't get any
errors during FBA. What's happening though is after FBA completes and
XPe boots for the first time my touch screen doesn't work. Also there
is no mouse cursor at all (probably because the touch screen is the
only mouse device in the system). However if I then reboot XPe the
touch screen works fine and continues to work indefinitely (and a
mouse cursor is visible on the screen). So it appears XPe isn't
loading the driver until the second time it boots up.

The driver only consists of an inf, a cat file and a single sys file.
Below is a clip from the driver's inf that installs the service:

;
; Service Installation
;

[DMC9000.Services]
AddService = DMC9000, 0x00000002 , DMC9000_Service_Inst,
DMC9000_EventLog_Inst
; Install mouclass.sys from msmouse.inf
Include=msmouse.inf
Needs=MouClass.Services

[DMC9000_Service_Inst]
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 2 ; SERVICE_AUTO_START
ErrorControl = 0 ; SERVICE_ERROR_IGNORE
LoadOrderGroup = Pointer Port
ServiceBinary = %12%\DMC9000.sys


The StartType used to be 3 (SERVICE_DEMAND_START) but I changed it to
2 (SERVICE_AUTO_START) hoping that would solve the problem but it made
no difference.

Any ideas why the driver wouldn't load until the second reboot? What
registry keys should I check?

Thanks,

Joseph LeBlanc
 
S

Slobodan Brcin \(eMVP\)

Hi Joseph,

You should check file setupapi.log there might be some reason why it did not worked during the first time.
If you had some veto problem then I would suggest you to:
1. Remove your component from TD project.
2. Build image.
3. Copy manually driver files to their folders. (don't forget inf file)
4. Boot XPe.
Read:
http://groups.google.com/groups?hl=...=1&[email protected]

Best regards,
Slobodan
 
R

Roy Hodgkinson

Joseph,

Your note doesn't tell us if this is a USB or Serial connected touch
screen. The behavior you describe is consistent with my experience
with Serial connected touch screens when new /different Serial ports
(first boot or motherboard differences) are enumerated at startup but
are not yet fully installed when the touch screen driver initializes.
Looking at at how the touch screen drivers normally install may help
you -- if the install requires a reboot, expect to need one after your
XPE image is first booted.

HTH, Roy
 
J

Joseph LeBlanc

It is an RS232 touch screen. Checking the setupapi.log revealed this:

#W100 Query-removal during install of
"SERENUM\DCO9000\6&253F89DF&0&0000" was vetoed by
"SERENUM\DCO9000\6&253f89df&0&0000" (veto type 5:
PNP_VetoOutstandingOpen).
#W104 Device "SERENUM\DCO9000\6&253F89DF&0&0000" required reboot:
Query remove failed (install) CfgMgr32 returned: 0x17:
CR_REMOVE_VETOED.

I haven't had a chance to test the drivers manually yet. If they do
not require a reboot normally is there anything you suggest I try?

I guess my main concern with having to reboot is I plan on using EWF;
however my finished build will also have a custom shell with my
application. This will make it rather difficult to "get in" to make
changes to the system once the build is deployed and then commit those
changes unless I put some sort of "back door" mechanism into my GUI to
give me a command prompt or something. So I was hoping to do as much
setup in the initial deployment/FBA as possible.
 
S

Slobodan Brcin \(eMVP\)

Hi Joseph,

Haven't I told you what to do in case that you have Veto problem?

Your driver was for some reason preinstalled by TD. Before FBA PnP driver was loaded and running. During the FBA PnP OS find better
driver match in inf file and try to install "new driver". In order to do this it have to stop your preinstalled driver. But for some
reason this driver can't be stopped and reboot is required.

If you follow my guide lines from other thread.
You driver would be installed by FBA PnP and not by TD, and this would result in not having Veto problems.

Best regards,
Slobodan
 
J

Joseph LeBlanc

Just tried this method now and it worked. I didn't have to reboot
again to get the touch screen working. Thanks!

You should check file setupapi.log there might be some reason why it did not worked during the first time.
If you had some veto problem then I would suggest you to:
1. Remove your component from TD project.
2. Build image.
3. Copy manually driver files to their folders. (don't forget inf file)
4. Boot XPe.
Read:
http://groups.google.com/groups?hl=...=1&[email protected]

Best regards,
Slobodan

Joseph LeBlanc said:
I'm having an odd problem with a driver for a touch screen on my
hardware platform.

I made a component from the driver's INF file ok and I don't get any
errors during FBA. What's happening though is after FBA completes and
XPe boots for the first time my touch screen doesn't work. Also there
is no mouse cursor at all (probably because the touch screen is the
only mouse device in the system). However if I then reboot XPe the
touch screen works fine and continues to work indefinitely (and a
mouse cursor is visible on the screen). So it appears XPe isn't
loading the driver until the second time it boots up.

The driver only consists of an inf, a cat file and a single sys file.
Below is a clip from the driver's inf that installs the service:

;
; Service Installation
;

[DMC9000.Services]
AddService = DMC9000, 0x00000002 , DMC9000_Service_Inst,
DMC9000_EventLog_Inst
; Install mouclass.sys from msmouse.inf
Include=msmouse.inf
Needs=MouClass.Services

[DMC9000_Service_Inst]
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 2 ; SERVICE_AUTO_START
ErrorControl = 0 ; SERVICE_ERROR_IGNORE
LoadOrderGroup = Pointer Port
ServiceBinary = %12%\DMC9000.sys


The StartType used to be 3 (SERVICE_DEMAND_START) but I changed it to
2 (SERVICE_AUTO_START) hoping that would solve the problem but it made
no difference.

Any ideas why the driver wouldn't load until the second reboot? What
registry keys should I check?

Thanks,

Joseph LeBlanc
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top