Widcomm Bluetooth drivers

S

Sven Meirsman

Hi all,

I'm trying to get the widcomm bluetooth drivers on my XP Embedded image. I
managed to install the bluetooth software post-FBA. (I wasn't able to
componentize the widcomm drivers, they are very huge and complex)
I added support for Windows Installer, and the install now runs ok. However,
even though the bluetooth USB dongle is installed correctly, and i have all
icons and startup links for the bluetooth software, I'm getting an error:
"File does not have a program associated with it" This link starts a DLL by
using rundll32.exe, and provides an extra parameter for which function
should be started in the dll. All dll's are in place, rundll32.exe is also
in my image, but still I can not get these links to execute without the
described error above.

Any help on this one? Does anyone ever have tried to componentize the
widcomm bluetooth drivers/software?

thanks for any response,
Sven
 
K

KM

Sven,

One good side of the componentization is that it forces a dev to check all the dependencies.
While doing the installation at run time devs usually forget about it. Although it is still needed.

So, did you go trough your driver binaries and satisfy all its static and dynamic dependencies?

Also, if it is so obvious error, it is fairly easy to monitor with Regmon and Filemon tools.
 
S

Sven Meirsman

KM said:
Sven,

One good side of the componentization is that it forces a dev to check all the dependencies.
While doing the installation at run time devs usually forget about it. Although it is still needed.

So, did you go trough your driver binaries and satisfy all its static and dynamic dependencies?

Also, if it is so obvious error, it is fairly easy to monitor with Regmon and Filemon tools.


Well, I hoped so, I used those tools, I even used Inctrl. (for the
componentizing of the setup) But like I said, the (compressed) tools are
20Mb large, add some 1000 registry keys, and have a lot of DLL's and
stuff... I even used dependency checker (comes with visual studio 6) for all
binaries in the setup to see if all dependencies are provided... and they
are.
I tried with a componentized version, but it didn't work as well... I didn't
even get the bluetooth USB dongle installed. I really would like them in a
componentized fashion, but it just too huge... :-(

Now, getting this damn thing installed is my biggest priority... If I get
them to run post-fba, then I'll be glad. Maybe then i can try to
componentize them again.
 
K

KM

Sven,

I understand your problems. It is painful to componentize big app and driver packages that includes many different pieces with CD.

But unless you go with a huge XPe image that would include pretty much all the software components (e.g., XPProEmulaton.slx from
www.xpefiles.com) you still need to go and check all the dependencies are in the image. Otherwise you may never find what's missing.

Btw, I'd suggest you to use RegSnap tool instead of Inctrl5 as it gives you a .reg file but not just a log. If you have many
reg.changes on the app install, RegSnap will help you much more. (search this NG archive for RegSnap as we discussed the tool here).
 
S

Slobodan Brcin \(eMVP\)

Hi Sven,

I have not worked with Bluetooth so far, and I do not know what this "driver package" include, but if driver is only what you need
then usually you can pass with little or no modification to inf file and just copying sys, dll files to their folders.

Usually at the end it come down to only that. Sometimes there is a need for changing few reg entries, but not in amount that you
describe.

You see so many registry entries changed during the installation because during the installation registry is populated from inf file
(PnP stuff), then regsvr32 registration of some dll/ocx, etc. There is very little manufacturer specific entries populated by
setup.exe file itself and if there is you can find it very easy by looking on registry key names.

20 MB large drivers. Yes this is 21th century all right ;)
Video "drivers" made by NVIDIA, ATI, etc are even bigger, but if you analyze them carefully you will see that there are two-four
files that are kernel mode driver (true driver). The rest consist usually of useless user mode applets installation, uninstallation,
etc things. I guess that same goes for your Bluetooth package.

So most of files are useless to have in your XPe image. Determining what should be left and what is not required in the beginning
might look hard or impossible but it can be done.

Good luck with componentizing this,
Slobodan
 
S

Sven Meirsman

Slobodan Brcin (eMVP) said:
Hi Sven,

I have not worked with Bluetooth so far, and I do not know what this
"driver package" include, but if driver is only what you need
then usually you can pass with little or no modification to inf file and
just copying sys, dll files to their folders.
Usually at the end it come down to only that. Sometimes there is a need
for changing few reg entries, but not in amount that you
describe.

You see so many registry entries changed during the installation because
during the installation registry is populated from inf file
(PnP stuff), then regsvr32 registration of some dll/ocx, etc. There is
very little manufacturer specific entries populated by
setup.exe file itself and if there is you can find it very easy by looking on registry key names.

20 MB large drivers. Yes this is 21th century all right ;)
Video "drivers" made by NVIDIA, ATI, etc are even bigger, but if you
analyze them carefully you will see that there are two-four
files that are kernel mode driver (true driver). The rest consist usually
of useless user mode applets installation, uninstallation,
etc things. I guess that same goes for your Bluetooth package.

So most of files are useless to have in your XPe image. Determining what
should be left and what is not required in the beginning
might look hard or impossible but it can be done.

Good luck with componentizing this,
Slobodan

Well, I know that there are several reg keys that are imported by the
registration of DLL's. But anyway, there still are a lot of registry keys
involved that are needed for the general working of the applications. I'll
look into the XPProEmulation thing that KM mentioned in an earlier post.
This will be a lot more easy to get the registry keys for importing them
into a SLD component. What I did before was install the damn thing on an XP
pro machine, and add the registry branches in my SLD file.
I do wish to state that I'm pretty used to working with the component
designer and componentizing drivers because I already did a whole lot of
this stuff. (USB GPS mouse, USB Touch screen, VGA, and a lot more) But this
one looks just very awesome. I found it hard to believe that no-one before
in the newsgroup have worked with the widcomm drivers before, because they
are -as to what I know- the only drivers that come with most USB bluetooth
dongles and are -I guess- the leaders in this area. (Their drivers are
provided with a lot of brands of USB bluetooth dongles)
for more information on widcomm: http://www.widcom.com

As for the comment of Slobodan, that he doesn't know what's in the driver
package. There is also a piece of binary. (DLL-flavour) that has an icon in
the taskbar if you install it on a XP pro(the usual icon left of the clock)
but since I use my own shell application that does not have a taskbar, maybe
something is going wrong here?
 
S

Slobodan Brcin \(eMVP\)

Hi Sven,
As for the comment of Slobodan, that he doesn't know what's in the driver
package. There is also a piece of binary. (DLL-flavour) that has an icon in
the taskbar if you install it on a XP pro(the usual icon left of the clock)
but since I use my own shell application that does not have a taskbar, maybe
something is going wrong here?

I don't know what level of functionality is that you require. Drivers only or support tools that came with driver as well. For
instance you said that you do not need tray icon, I wonder if there is anything else that you do not require. If there is then you
might perhaps leave drivers only and remove all support tools. And the rest of needed config options you can do from your custom
shell application.

Best regards,
Slobodan
 
K

KM

I think he mentioned that the link he is trying to launch just a shortcut to rundll32.exe which is in the build.

However, missing "DOS Windows on Windows Support" or something like that could be a problem. Especially for the installer.
 
S

Sven Meirsman

I think he mentioned that the link he is trying to launch just a shortcut
to rundll32.exe which is in the build.
However, missing "DOS Windows on Windows Support" or something like that
could be a problem. Especially for the installer.
Well, I added Windows Installer support and made sure that all dependent
components for the Windows Installer are in the build. But I'll check it
later too see if this option in included. And yes, the error message is
generated when trying to start a function in a dll using rundll32.exe
 
S

Slobodan Brcin \(eMVP\)

Hi Sven,

Can you tell us about how you start rundll32.exe? You mentioned some link what did you mean by that?
Try running it directly from command prompt.

Also why rundll32?
Why not regsvr32?

Best regards,
Slobodan
 
S

Sven Meirsman

Slobodan Brcin (eMVP) said:
Hi Sven,

I don't know what level of functionality is that you require. Drivers only
or support tools that came with driver as well. For
instance you said that you do not need tray icon, I wonder if there is
anything else that you do not require. If there is then you
might perhaps leave drivers only and remove all support tools. And the
rest of needed config options you can do from your custom
shell application.

Best regards,
Slobodan
Well, me neither. Because all binaries included are so damn cryptic. (And
are all dll's) I don't know what is what.
The functionality of the complete setup of the widcomm drivers contain:
- The physical USB bluetooth dongle driver
- headset support
- PIM synchronization
- Fax
- File transfer
- Dial-Up networking
- Network Access
- Bluetooth Serial Port
- a setup wizard, which is started using a rundll32.exe command:
"rundll32.exe c:\windows\System32\BtWizard.dll,ShowWizard

The bluetooth wizard command using the rundll32.exe generates the error
posted before. For me, this wizard and the bluetooth serial port are the two
most important components needed for my configuration. And off course, the
physical USB bluetooth dongle driver.

Sven
 
S

Sven Meirsman

Slobodan Brcin (eMVP) said:
Hi Sven,

Can you tell us about how you start rundll32.exe? You mentioned some link what did you mean by that?
Try running it directly from command prompt.

Also why rundll32?
Why not regsvr32?

Well, I gave the link in another post. ("rundll32.exe
c:\windows\System32\BtWizard.dll,ShowWizard")
Why rundll32... well, I think you have misunderstood me. Regsvr32 is used to
register the dll's, no? I expect that these are indeed registered and
installed correctly, because I went throught te setup of the drivers on my
XP embedded device. The rundll32 thing is only used in the windows explorer
application to start the wizard for the configuration of the bluetooth
device and software. (No installation is done by this wizard, only
configuration and pairing to bluetooth devices and so on)

The software places an icon on the 'My Computer' folder in windows explorer.
When you select this icon, you can invoke the 'Bluetooth Setup Wizard' as
mentioned above. This command is available by right clicking the icon or
using the windows explorer menu File->Bluetooth Setup Wizard.

I assume that the installation went well, because the 'embedding' of all
these custom explorer commands from these widcomm drivers and soft seem to
be in place, and are selectable in the windows explorer.
 
S

Slobodan Brcin \(eMVP\)

Hi Sven,

Only guessing here:
But according to what you require these must be a drivers.
Look for inf and sys files. Open inf files and look at the manifest of all additional required files. (This can be tailored to
reduce dependency)

Regarding the wizard. If you can't replace it by modifying values in registry directly then probably you will have to install
everything after you make it work that is :(

ShowWizard function could be complete program inside dll that probably uses some "Explorer shell execute" call instead of
CreateProcess. You can try using regmon and filemon to see what file or registry entries are accessed. And from that you might be
able to figure out what file extensions are not registered, or what is missing.

Best regards,
Slobodan
 
S

Slobodan Brcin \(eMVP\)

Hi Sven,

Ok. I guessed so from other thread,
Only what is left that I suggest you to try is:
Start command prompt.
And try typing and running:
rundll32.exe c:\windows\System32\BtWizard.dll,ShowWizard
from command prompt.

Best regards,
Slobodan
 
S

Sven Meirsman

Major Update! I was able to run the wizard by using the command line.
However, I did not have the command line installed, but I just copied the
cmd.exe file to the system32-folder on my test-environment. Now the wizard
runs and does everything that it should. It detects my bluetooth dongle and
my cellular phone that had bluetooth enabled.

Now, Slobodan, can you tell me what is wrong then, why does the link not
work from within windows explorer, and the cmd-line flavour does work?
I would really like to componentize this thing, because I want to limit the
post-fba actions to zero.
 
S

Slobodan Brcin \(eMVP\)

Hi Sven,

I don't know what why your link is not registered with shell to autorun. This is question for another thread.
Anyhow this probably should not concern you to solve this problem.

You can execute rundll32.exe c:\windows\System32\BtWizard.dll,ShowWizard during the FBA.
Also rundll32 is integrated as undocumented call so you can even call ShowWizard without having rundll32.exe in your image.

If you need help with this please let us know.

Best regards,
Slobodan
 
S

Sven Meirsman

Slobodan Brcin (eMVP) said:
Hi Sven,

I don't know what why your link is not registered with shell to autorun.
This is question for another thread.
Anyhow this probably should not concern you to solve this problem.

You can execute rundll32.exe c:\windows\System32\BtWizard.dll,ShowWizard during the FBA.
Also rundll32 is integrated as undocumented call so you can even call
ShowWizard without having rundll32.exe in your image.
If you need help with this please let us know.

Best regards,
Slobodan

Ok, thank you Slobodan, and of course KM for the help. I'll dig into it a
litlle deeper to get it going all in the fba.

regards,
Sven
 

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