Below you will find changes you can make to a working Ethernet IM driver that will allow it to function with NDISWAN adapters over TCP/IP. I found it extremely difficult to figure this out so I hope you find this information beneficial. If you are using the newest IMSAMP, it already works with NDISWAN if you follow step #6 below. If not, you can find Jim Mateer's newest version of his excellent IM driver sample at <ftp://ftp.pcausa.net/devonly/imdrv/imdrv.zip>.
Here are the steps to follow:
1. Get NDISWAN to bind to your transport. Put something like this in your NetRules for your transport: MyIMTransport ndisWanAdapterDialOutIP non non 100
2. Prefix your corresponding IM adapter name with NdisWan so that you bind correctly to RasArp (e.g. NdisWanMyIMAdapter3)
3. Disable the binding of the real NDISWAN adapter from TCP/IP
4. Set the packet filter of the real NDISWAN adapter to forward BROADCAST and DIRECTED packets (do this in your ProtocolBindAdapter routine)
5. Report that your corresponding virtual IM adapter has a medium type of NdisMedium802_3 from MiniportInitialize (do not report NdisMediumWan)
6. Make sure the phone book entry you are using to dial has "IP header compression" disabled (Haven't figured out why this is necessary yet)
7. Other than these changes, pretend that you are coding an IM for an Ethernet adapter and you should be fine.
Questions/Comments/Bugs/Etc. - <scottm@highlevel.com>