Dear gurus,
We're running the passthru-type winsock Layered Service Provider
based on the Platform Builder 4.2 sample code on an iPAQ of the
recent vintage. Two Pocket PC (as opposed to vanilla WinCE 4.2)
changes Microsoft recommended have indeed been applied to the code.
When the LSP is installed on the fly (through the INST_LSP program
supplied in the Platform Builder), very few applications load and
use the LSP DLL. ActiveSync is among them, however, if started
after the LSP install. Internet Explorer is not, even if started
afterwards. The device.exe and services.exe are not either which
is understandable due to the very helpful blog by Igor Dvorkin,
thanks a lot:
http://blogs.msdn.com/cenet/archive/2004/12/07/277890.aspx
Ok, when the install code is transferred to the DllRegisterServer()
export within the DLL itself and the WS2 Registry is configured
appropriately, the device.exe and services.exe do in fact start
loading and using the LSP DLL upon the soft restart. Moreover,
some of the other apps like the platform manager (cemgrc.exe),
process viewer (cepwcli.exe), VC++ Spy (cespycli.exe) load and
use the LSP as well. However, most applications like ActiveSync
and Internet Explorer do not. What might be the reason? The LSP
needs to observe all the sockets, not just some.
I see that the ssllsp.dll is in fact loaded and used by virtually
all relevant apps. What does it do differently? The LSP of mine
is installing itself over all base providers for the time being,
just like the sample code. The DllRegisterServer() reports no
install issues anywhere, and the run-time trace seems reasonable
when the DLL is used. The DllRegisterServer() returns S_OK, just
like the real server registration. Should I start playing with
the WSAPROTOCOL_INFOW members?
Many thanks for your insights,
Ilya Faenson
Rockville, MD USA
ifaenson@hotmail.com