Re: Dynamically unload and load serial driver

Hello Michel,
Thank you for the reply. I think you are correct, but unfortunately I had
to restart my system and it is no longer in the same state.
Before the restart, I did notice in the "Active" area of the registry that
there was an entry with many of the same features as the other two COM ports.
It didn't have the "COM1" key and I had thought it was completely unloaded.
Perhaps due to the RAS/unimodem problem, it couldn't completely deactivate.
I will be testing this system again and if it gets into the same state, I
will attempt to do more to unload the driver completely.

Thank you,

"Michel Verhagen (eMVP)" wrote:

Error 110 is "The system cannot open the device or file specified."
meaning it can't find, or more probable; can't open the driver dll
because it is still in use.

- Are you sure the driver unloaded?
- How did you get the handle to the serial driver?
- Can you still find "COM1:" using FindFirst/NextDevice after unloading it?

Good luck,

Michel Verhagen, eMVP
Check out my blog:

Microsoft Embedded Partner
Consultancy, training and development services.

Craig wrote:
Due to a problem with RAS, the COM port cannot be opened (in RasDial calls).
I don't want to have to reset my device to let the driver reload. I have
been able to unload the serial driver using DeactivateDevice. However, when
I attempt to reload the serial driver using ActivateDeviceEx, I always get
the error 110.
This is the typical COM1 driver found in [HKLM\Drivers\BuiltIn\Serial].

I call: ActivateDeviceEx(_T("Drivers\\BuiltIn\\Serial"), NULL, 0, NULL );

My OS is CE 5.0. I don't have any access to PB debug information.

Please let me know if this is possible and what I might be doing wrong.

Thank you,