ActiveSync using RNDIS solution (Windows Embedded CE 6.0)

1/6/2010

Desktop ActiveSync and the ActiveSync on the Windows Embedded CE-based device use standard Winsock APIs to communicate between them while performing the sync activity. The transport mechanism underneath is irrelevant.

Establishing the first time USB connection to the host machine.

  1. The USB cable is connected and RNDISFN performs the USB initialization.
  2. RNDISFN sends Active Sync’s compatibility ID, vendor ID and product ID to the host machine in the USB device descriptor.
  3. This compatibility ID matches the ActiveSync RNDIS INF on Windows desktop PC, and the host driver loader loads the appropriate RNDIS Drivers
  4. The IP Connection is established.
  5. Device notification kicks off repllog.exe (an ActiveSync component on Windows Embedded CE) and the desktop will also start the ActiveSync operation.
  6. Once this first time connection is established, the desktop device driver loader now associates the device’s product ID and vendor ID to the RNDIS driver.
  7. In subsequent USB connections, the product and vendor IDs in step 3 match to load the appropriate RNDIS drivers.

The following illustrates the above process

Further compatibility id details are available at this Microsoft web site.

The resolution of IP addresses for both the host machine and the Windows Embedded CE–based device is handled by the desktop pass through (DTPT) module. The DTPT module provides the DHCP server service from the device. The DTPT component also provides the proxy service for the network connection from the device to the network that the desktop machine is connected to.

See Also

Concepts

USB RNDIS in ActiveSync 4.0
RNDIS USB Client
Connection issues with RNDIS
Brief summary of the RNDIS protocol

Other Resources

RNDIS
RNDISFN client driver