Tuesday, October 23, 2007

Internet Pass-through connectivity problems with ActiveSync and WMDC (Vista) - Error 0x80072f78

A friend called me few days ago asking for help connecting a Windows Mobile 5.0 Palm Treo to the internet via the Vista’s Windows Mobile Device Center (WMDC) pass-through. In this case the Smartphone was connected to the desktop thru Bluetooth, but this is not the first time I have to face this problem. Actually you can find the same problem even in USB connections, and not just using WMDC, also using ActiveSync 4.x.
One of the symptoms of this problem is an error 0x80072f78 trying to browse a site from the device, or just getting an ugly connectivity settings error.
If you’ve tried to solve this problem before looking for help on the web, probably you’ve found kind of a “black magic” solution: a registry tweak adding a new DWORD value named “AllowLSP”. But what is all of this about??
Let’s start from the beginning: LSP = Layered Service Provider. It’s a feature of Microsoft Winsock 2 Service Provider Interface (SPI). It makes possible to modify transport services, i.e. implementing a firewall. You can find more info here.

DTPT (Desktop Pass Through) allows the device to talk with the desktop network (or the internet if the desktop has internet access) while ActiveSync is running. It’s implemented as a socket level proxy technology, including a server side (ActiveSync or WMDC) and a client side implemented as a LSP (the DTPT LSP).

ActiveSync, from its version 4.2 and above, has changed the way it interacts with the Microsoft Windows networking stack to support Layered Service Providers (LSP) on outgoing Desktop-Pass-Through connections. In many corporate environments this provides improved compatibility and policy compliance.
Unfortunately, there are several cases where you can find LSPs interfering with ActiveSync communication. So, we need to enable ActiveSync on the desktop to function together with LSP applications
.

It requires to edit (or create) a DWORD registry key called “AllowLSP” on the desktop, in the following registry path:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services]

The possible decimal values are:

0: Bypass LSPs for incoming and outgoing connections.
1: Bypass LSPs for incoming connection and use LSPs for outgoing connection.
2: Use LSPs for incoming and bypass LPSs outgoing connections.
3: Use LSPs for incoming and outgoing connections.

The value which used to work in this case is “0”, because it bypasses LSPs as previous ActiveSync versions use to do. But if your computer environment relies on LSPs (a very common scenario in corporate networks), probably you’ll need to identify which LSP is causing the conflict and then decide whether you can uninstall the related software package. It’s doable running this command from a command prompt:

netsh winsock show catalog

As result you’ll find a list of each LSP installed on your machine. For sure this information is really cryptic, but it can be helpful in order to determine what you need to remove.
In some scenarios you can use the value of “2”. It allows LSPs for incoming connections but bypasses them for outgoing connections.
It’s highly probable that you need to reset your desktop (or restart activesync killing the “wcescomm.exe” process and launching ActiveSync manually) to reflect the changes.

Additionally, if you have a firewall running, please add the following processes to the application exception list:
  • Wcescomm.exe
  • WcesMgr.exe
  • RAPIMgr.exe
  • CEAPPMGR.exe

If this post cannot help you, probably you can find an answer in this link.

Hope you finally get your device connected to the internet thru ActiveSync!

8 comments:

Anonymous said...

Great solution!

Best Regards,
Dad Pihto

Kiev/Ukraine

Anonymous said...

Thanks, worked perfectly after adding the DWORD AllowLSP.

krishna said...

Please explain me how to connect vista machine to emulator in winodws CE.

Jose Gallardo said...

First of all you need to download and install Windows Mobile Device Center (WMDC) from the following link:
http://www.microsoft.com/windowsmobile/devicecenter.mspx

To connect the device emulator, you'll need to launch WMDC and enable DMA connectivity:
Mobile Device Settings - Connection Settings - Allow Connection to one of the following: DMA.

Open the Device Emulator Manager from the VS Tools menu, right click on the emulator image and select "Cradle". The emulator should get connected thru WMDC.

HTH!

VE6CPU said...

This didn't work for me using Vista Business and WMDC 6.1. Still can't get the WM6 Pro emulator to connect to the internet while cradled.

Stephen

Jose Gallardo said...

Do you get a succesful connection with WMDC? Do you have the "connected" icon on top in your emulator screen?
If not, you probably need to *reset* DMA by changing "allow connections to one of the following" to Bluetooth or something else, closing WMDC settings and entering again to enable DMA back.
After that, if you're not connected to WMDC, please uncradle and cradle your emulator.
If it doesn't work neither, please perform a soft reset of your emulator image.
I'll try to post soon some of this tips for emulator connectivity issues and workarounds.
HTH!

Krista said...

Hi - this is a great help, thanks. Here is a bit of extra info that I found on the topic: I have AT&T Tilt, WM 6, and ActiveSync 4.5. This info did not get me 'all the way' - it turns out I had to disable the proxy on the PPC/phone - Instructions for disable proxy.

Cerebro' said...

If you have already tried this and it still does not work (as it appears it doesn't for some of us), you may want to look at the article here:

http://www.howardforums.com/printthread.php?t=1085384&pp=15&page=2

It points out that, at least on the Treo, ATT hard coded their own proxy into the phone and so it will not use the ActiveSync passthrough connection properly.

It is a simple registry fix (turns network autodetect back ON), and it is described in detail there.

Best regards,

Cerebro'