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
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