Tough Componentizing Problem

S

Santiago Allen

Hi All,

I have a problem that I havent been able to solve at my current skill
level (Newb). Maybe someone here can help.

Here goes:

I need to componentize drivers for security devices that can be present
either on the machines paralell port or on a USB port. The
manufacturer of the device provides only an msi installer packaged in
an exe file. This exe file installs the parallel driver fully, but the
usb driver is not installed until the USB version of the device is
first plugged in. Also, if the USB device is present on the system
when the installer runs, the installation will fail and none of the
devices will work. So the USB device must be plugged in only after the
base installer runs.

I cannot use the MSI installer in our embedded build because the
addition of the Windows Installer component and all its dependencies
(including a dependency not listed, Richedit v 3.0) adds up to 64 added
megabytes to the image.

I used Regmon and Filemon to create a component that will act as if it
were the MSI installer. This component actually works well for the
paralell device. The usb device is another matter. This is what I
currently believe:

When a USB device is plugged in, it sends a Vendor ID/Product ID to
windows. Windows "looks up" this information (I dont know where or
how) and if it finds the PID and VID, will install the drivers
automatically (Assuming the driver .inf .sys and .dll files are where
they are supposed to be). If it does not find the Device information
it will install "Unknown USB Device". Is this all correct? I am
drawing only from my own experience.

If this is the case, then my problem is in the fact that my component
does not make the USB device recognizable to windows. I dont see
anything in Regmon or Filemon that would make me believe that I am
missing something in my port however. So how do I make windows
recognize my USB device?

I tried to run Regmon and FileMon when I plug in my device in full
WinXP and create a component from that output, but that component
fails. I think (this is mere speculation) that it fails because WinXP
and XPE named the usb ports differently, so all the registry
information in my component saying "Port X has such and such USB device
attached with such and such properties" is wrong.

Well, Thats all I can think of, I can provide Regmon/Filemon outputs
for reference in this if needed.

Thanks much in advanced
Santiago Allen
 
S

Santiago Allen

Thanks Harrier,

Im about to try inCtrl5 now. And Ill make a component that doesnt
force the issue as much with respect to the registry information. I
have a feeling however that maybe I dont have a full PnP manager. What
components do I need for PnP to work properly? I have Plug and Play
software device enumerator, do I need anything else?

Thanks
Santiago
 
K

KM

Santiago,
Thanks Harrier,

Im about to try inCtrl5 now. And Ill make a component that doesnt

If you go by PnP approach, you will unlikely need to add any registry entries to your components since you are dealing with hardware
drivers.
So if you are sure you cought all the files using Regmon (as you mentioned earlier), you may not need Inctrl5.
SetupApi.log will show you if you missed anything from your image.
force the issue as much with respect to the registry information. I
have a feeling however that maybe I dont have a full PnP manager. What
components do I need for PnP to work properly? I have Plug and Play
software device enumerator, do I need anything else?

You will also need:
"PnP (Kernel-mode)" (which is likely already there in your Configuration)
"PnP (User-mode)" (add it manually if it is not there)
 
S

Santiago Allen

Hi Harrier, KM,

Thanks for all the help, I found I was missing a file and added it but
that hasnt fixed the problem. Here is my pertinent SetupAPI.log data.

[2005/04/14 14:58:27 272.3 Driver Install]
#-019 Searching for hardware ID(s): usb\unknown
#-018 Searching for compatible ID(s): usb\unknown
#-198 Command line processed: C:\WINDOWS\system32\services.exe
#I022 Found "USB\UNKNOWN" in C:\WINDOWS\inf\usb.inf; Device: "Unknown
Device"; Driver: "Unknown Device"; Provider: "Microsoft"; Mfg:
"(Standard USB Host Controller)"; Section name: "BADDEVICE.Dev".
#I023 Actual install section: [BADDEVICE.Dev.NT]. Rank: 0x00000000.
Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [BADDEVICE.Dev] in
"c:\windows\inf\usb.inf".
#I320 Class GUID of device remains:
{36FC9E60-C465-11CF-8056-444553540000}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of "USB\VID_0000&PID_0000\4&6FCC92B&0&1".
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [BADDEVICE.Dev.NT.Interfaces] from
"c:\windows\inf\usb.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of "USB\VID_0000&PID_0000\4&6FCC92B&0&1".
#I121 Device install of "USB\VID_0000&PID_0000\4&6FCC92B&0&1" finished
successfully.
[2005/04/14 15:58:58 272.7 Driver Install]
#-019 Searching for hardware ID(s): usb\unknown
#-018 Searching for compatible ID(s): usb\unknown
#-198 Command line processed: C:\WINDOWS\system32\services.exe
#I022 Found "USB\UNKNOWN" in C:\WINDOWS\inf\usb.inf; Device: "Unknown
Device"; Driver: "Unknown Device"; Provider: "Microsoft"; Mfg:
"(Standard USB Host Controller)"; Section name: "BADDEVICE.Dev".
#I023 Actual install section: [BADDEVICE.Dev.NT]. Rank: 0x00000000.
Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [BADDEVICE.Dev] in
"c:\windows\inf\usb.inf".
#I320 Class GUID of device remains:
{36FC9E60-C465-11CF-8056-444553540000}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of "USB\VID_0000&PID_0000\4&6FCC92B&0&2".
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [BADDEVICE.Dev.NT.Interfaces] from
"c:\windows\inf\usb.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of "USB\VID_0000&PID_0000\4&6FCC92B&0&2".
#I121 Device install of "USB\VID_0000&PID_0000\4&6FCC92B&0&2" finished
successfully.


As far as I can tell, windows doesnt recognize what sort of USB device
this is, is there some file with a list of all recognized/known usb
devices that is used to register the device?
 
S

Santiago Allen

Santiago said:
Hi Harrier, KM,

Thanks for all the help, I found I was missing a file and added it but
that hasnt fixed the problem. Here is my pertinent SetupAPI.log data.

[2005/04/14 14:58:27 272.3 Driver Install]
#-019 Searching for hardware ID(s): usb\unknown
#-018 Searching for compatible ID(s): usb\unknown
#-198 Command line processed: C:\WINDOWS\system32\services.exe
#I022 Found "USB\UNKNOWN" in C:\WINDOWS\inf\usb.inf; Device: "Unknown
Device"; Driver: "Unknown Device"; Provider: "Microsoft"; Mfg:
"(Standard USB Host Controller)"; Section name: "BADDEVICE.Dev".
#I023 Actual install section: [BADDEVICE.Dev.NT]. Rank: 0x00000000.
Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [BADDEVICE.Dev] in
"c:\windows\inf\usb.inf".
#I320 Class GUID of device remains:
{36FC9E60-C465-11CF-8056-444553540000}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of "USB\VID_0000&PID_0000\4&6FCC92B&0&1".
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [BADDEVICE.Dev.NT.Interfaces] from
"c:\windows\inf\usb.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of "USB\VID_0000&PID_0000\4&6FCC92B&0&1".
#I121 Device install of "USB\VID_0000&PID_0000\4&6FCC92B&0&1" finished
successfully.
[2005/04/14 15:58:58 272.7 Driver Install]
#-019 Searching for hardware ID(s): usb\unknown
#-018 Searching for compatible ID(s): usb\unknown
#-198 Command line processed: C:\WINDOWS\system32\services.exe
#I022 Found "USB\UNKNOWN" in C:\WINDOWS\inf\usb.inf; Device: "Unknown
Device"; Driver: "Unknown Device"; Provider: "Microsoft"; Mfg:
"(Standard USB Host Controller)"; Section name: "BADDEVICE.Dev".
#I023 Actual install section: [BADDEVICE.Dev.NT]. Rank: 0x00000000.
Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [BADDEVICE.Dev] in
"c:\windows\inf\usb.inf".
#I320 Class GUID of device remains:
{36FC9E60-C465-11CF-8056-444553540000}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of "USB\VID_0000&PID_0000\4&6FCC92B&0&2".
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [BADDEVICE.Dev.NT.Interfaces] from
"c:\windows\inf\usb.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of "USB\VID_0000&PID_0000\4&6FCC92B&0&2".
#I121 Device install of "USB\VID_0000&PID_0000\4&6FCC92B&0&2" finished
successfully.


As far as I can tell, windows doesnt recognize what sort of USB device
this is, is there some file with a list of all recognized/known usb
devices that is used to register the device?



Still no luck with this one, it simply doesnt recognize the
device....there are no simplenotify_needmedia messages in setupapi.log
anywhere. Adding in the Windows Installer Service and just running the
installer app has prover to be equally fruitless.
 
K

KM

Santiago,

You would need to install the device properly on XP Pro and analyze the SetupApi.log there (or the device itslef through Device
Manager or devcon).
Please attach the entire SetupApi.log (using OE) from XP Pro and XPe. (you may want to zip them first)

--
Regards,
KM, BSquare Corp.

Santiago said:
Hi Harrier, KM,

Thanks for all the help, I found I was missing a file and added it but
that hasnt fixed the problem. Here is my pertinent SetupAPI.log data.

[2005/04/14 14:58:27 272.3 Driver Install]
#-019 Searching for hardware ID(s): usb\unknown
#-018 Searching for compatible ID(s): usb\unknown
#-198 Command line processed: C:\WINDOWS\system32\services.exe
#I022 Found "USB\UNKNOWN" in C:\WINDOWS\inf\usb.inf; Device: "Unknown
Device"; Driver: "Unknown Device"; Provider: "Microsoft"; Mfg:
"(Standard USB Host Controller)"; Section name: "BADDEVICE.Dev".
#I023 Actual install section: [BADDEVICE.Dev.NT]. Rank: 0x00000000.
Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [BADDEVICE.Dev] in
"c:\windows\inf\usb.inf".
#I320 Class GUID of device remains:
{36FC9E60-C465-11CF-8056-444553540000}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of "USB\VID_0000&PID_0000\4&6FCC92B&0&1".
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [BADDEVICE.Dev.NT.Interfaces] from
"c:\windows\inf\usb.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of "USB\VID_0000&PID_0000\4&6FCC92B&0&1".
#I121 Device install of "USB\VID_0000&PID_0000\4&6FCC92B&0&1" finished
successfully.
[2005/04/14 15:58:58 272.7 Driver Install]
#-019 Searching for hardware ID(s): usb\unknown
#-018 Searching for compatible ID(s): usb\unknown
#-198 Command line processed: C:\WINDOWS\system32\services.exe
#I022 Found "USB\UNKNOWN" in C:\WINDOWS\inf\usb.inf; Device: "Unknown
Device"; Driver: "Unknown Device"; Provider: "Microsoft"; Mfg:
"(Standard USB Host Controller)"; Section name: "BADDEVICE.Dev".
#I023 Actual install section: [BADDEVICE.Dev.NT]. Rank: 0x00000000.
Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [BADDEVICE.Dev] in
"c:\windows\inf\usb.inf".
#I320 Class GUID of device remains:
{36FC9E60-C465-11CF-8056-444553540000}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of "USB\VID_0000&PID_0000\4&6FCC92B&0&2".
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [BADDEVICE.Dev.NT.Interfaces] from
"c:\windows\inf\usb.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of "USB\VID_0000&PID_0000\4&6FCC92B&0&2".
#I121 Device install of "USB\VID_0000&PID_0000\4&6FCC92B&0&2" finished
successfully.


As far as I can tell, windows doesnt recognize what sort of USB device
this is, is there some file with a list of all recognized/known usb
devices that is used to register the device?



Still no luck with this one, it simply doesnt recognize the
device....there are no simplenotify_needmedia messages in setupapi.log
anywhere. Adding in the Windows Installer Service and just running the
installer app has prover to be equally fruitless.
 
S

Santiago Allen

Hi KM,

Im having some trouble configuring outlook for newsgroups (up until now
all Ive done is use through googlegroups). Should I just attach to you
directly, or maybe It can be uploaded onto xpefiles? What should I be
looking for in the Setupapi logs? Any tell-tale keywords to lookfor?

Thanks,

Santiago
 
S

Slobodan Brcin \(eMVP\)

Santiago,

USB\VID_0000&PID_0000 ?

Your USB hardware is dead. or loosing contacts. VID 0000 and PID 0000 do not
sound healthy.

Regards,
Slobodan
 
S

Santiago Allen

Thanks Slobodan,

I had already tried two of these devices with no luck. Currently im
trying on another Target Station with full XPPro to see if maybe my usb
HUBs are incorrect. The thing is I dont always get VID and PID 0000.
In XPPro I got this

[2005/04/14 12:42:06 572.3 Driver Install]
#-019 Searching for hardware ID(s):
usb\vid_04b9&pid_0300&rev_0101,usb\vid_04b9&pid_0300
#-018 Searching for compatible ID(s):
usb\class_ff&subclass_00&prot_00,usb\class_ff&subclass_00,usb\class_ff
#-198 Command line processed: C:\WINDOWS\system32\services.exe
#I022 Found "USB\VID_04B9&PID_0300" in C:\WINDOWS\inf\oem0.inf; Device:
"Rainbow USB SuperPro"; Driver: "Rainbow USB SuperPro"; Provider:
"Rainbow Technologies, Inc."; Mfg: "Rainbow Technologies, Inc.";
Section name: "SNTNLUSB".
#I023 Actual install section: [SNTNLUSB.NTx86]. Rank: 0x00000001.
Effective driver date: 07/23/2002.
#I393 Modified INF cache "C:\WINDOWS\inf\INFCACHE.1".
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [SNTNLUSB] in
"c:\windows\inf\oem0.inf".
#I320 Class GUID of device remains:
{36FC9E60-C465-11CF-8056-444553540000}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of
"USB\VID_04B9&PID_0300\5&136D3639&0&1".
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [SNTNLUSB.NTx86.Interfaces] from
"c:\windows\inf\oem0.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of "USB\VID_04B9&PID_0300\5&136D3639&0&1".
#I121 Device install of "USB\VID_04B9&PID_0300\5&136D3639&0&1" finished
successfully.



I still havent gotten newsgroups configured correctly to send the full
logs. Can I send them somehow through gmail?

Thanks,

Santiago
 
S

Slobodan Brcin \(eMVP\)

Santiago,

Regarding the NG use Outlook Express with news.microsoft.com you will set it
up in few minutes.

Regarding the VID PID 0000 0000 it is very unusuall and it migh mean that
firmware on this USB device did not started fast enough and that it was
picked up by enumeration to soon.
XPe might have less drivers then XPP and start faster so that this problem
started to surface.

This is all a guess, and you will have to figure it out.

Regards,
Slobodan
 
S

Santiago Allen

Hi All,

Thanks For all of your help on this one. I managed to get the
component working and traced the problem to a HW issue not a component
issue. Thanks again.

Santiago
 

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