Q & A for LAP writers on Windows Mobile

I wanted to write a blog entry about LASS and LAP, but almost everything I could say has already been said by Marcus on his blog entries here.   One thing I can add is taking the Q and A that appears in the comments. Here is some Q and A in no particular order. What…


LSP installer code for Windows Mobile and Windows CE

Great news the installer code I’ve been describing on my blog is now available at codeplex.  Please note, codeplex is very new, and still has some issues. I also expect to publish the lsp_helper library on which the Windows Mobile LSPs are based. [Author: Igor Dvorkin]


Importing a session key into CAPI

I’ve seen a lot of non-optimal code to import a session key into CAPI.  The attached code provides a utility function to do the import.   Note: KeySize depends on the algorithm of the session key.   key_import_tester.cpp

Bugs in the CE sample LSP

I’ve spent the last few days looking at LSPs and have found some errors in the sample. These are: 1.      Passing the wrong WSAPROTOCOLINFO to the next person in the chain:         Symptom:  WSPSocket  fails when layered over another LSP.   Fix: DCATALOG::FindNextProviderInChain needs to start by setting      *BaseProviderCatalogEntry=NULL 2.      Assuming  *lpErrno == 0:  …


Issues for LSPs that connect to local host

As discussed in my previous post, the autobind_lsp performs hard binding.  This will cause issues for LSPs that need to connect to localhost.   About hard binding: Hard binding is a per socket TCP options specified by:     WSAIoctl(…, SIO_UCAST_IF,..).  Once a socket is hard bound, all data on that socket must be sent/received from…


Default LSPs in WM 5.0 [autobind_lsp].

The following description of the autobind_lsp is copied  fromhttp://www.intrinsyc.com/whitepapers/RIL_whitepaper_MS_Intrinsyc_June2004.pdf”When an application makes a Connection Manager connection request, Connection Manager determines which IP interface the application should use to reach the destination network requested.  Connection manager passes this information to the AutoBind LSP.  If the application does not explicitly bind its sockets to an interface, then…


Default LSPs in WM 5.0

In WM 5.0 2 new LSPs are present by default, the dtpt_lsp and the autobind_lsp. This article will discuss the dtpt_lsp and the next article will talk about the autobind_lsp. Desktop Passthrough (DTPT)  is the  technology that allows the CE device to talk on the desktop network while Active Sync is running. DTPT is implemented using a…

How do clients know a service is ready?

Often clients start before servers, and need to be signaled when the service is ready. In this post we’ll  find a good solution to this problem. Approach #1: Server signals a named event, clients waits for the event.     Server:         //Create manual reset event for service started         hEvent = CreateEvent(NULL,TRUE,FALSE, SRV_STARTED_EVENT);         SetEvent(hEvent)…


There is a LASS in my smartphone.

The Local Authentication SubSystem (LASS) is a new feature in Windows Mobile 5.0. This feature is available for  both PPC and SP. Using LASS, applications can force users to authenticate. The most interesting LASS API is VerifyUser. To play with LASS set up a password and then try the following code snippet:       #include <lass.h>      #include <lass_ae.h>…

Smartcards on Windows Mobile 5

Starting with Window Mobile 5 the SCRM is included in the default configuration. This means when you purchase a smartcard reader for WM 2005 you will be able to access it using the SCard APIs that are exported from winscard.lib. The SCRM on Windows Mobile is API compatible with the desktop version  so if you…