From: Bill Gage "Wild on
I am attempting to port a Linux driver to Windows XP, Vista, Servers and
CE. Through a single PCI Express hardware connection, the Linux driver
supports multiple direct user application conections using IOCTLs and
multiple TCP/IP connections. Thats is, one hardware device can support
several different computer point-to-point links with different IP addresses.

At this point I have the user level driver working on XP but can't seem
to get an ndis driver to show up in the control panel/network
connections display. Using callbacks I can send packets that I receive
over the link into ndis without error but get nothing back. I have been
using the ndiswdm driver as an example but really don't know anything
about how ndis works, what causes MPInitialize to get called, how ndis
gets hooked into the networking protocol stack, what all the registry
entries do, etc. What I really want is some system call I can make when
a new link shows up on my connection and sets up a network stack above it.
From: Pavel A. on

"Bill Gage" <"Wild Bill"@newsgroup.nospam> wrote in message
news:OwkBsOWoIHA.2064(a)TK2MSFTNGP05.phx.gbl...
> I am attempting to port a Linux driver to Windows XP, Vista, Servers and
> CE. Through a single PCI Express hardware connection, the Linux driver
> supports multiple direct user application conections using IOCTLs and
> multiple TCP/IP connections. Thats is, one hardware device can support
> several different computer point-to-point links with different IP
> addresses.
>
> At this point I have the user level driver working on XP but can't seem to
> get an ndis driver to show up in the control panel/network connections
> display. Using callbacks I can send packets that I receive over the link
> into ndis without error but get nothing back. I have been using the
> ndiswdm driver as an example but really don't know anything about how ndis
> works, what causes MPInitialize to get called, how ndis gets hooked into
> the networking protocol stack, what all the registry entries do, etc. What
> I really want is some system call I can make when a new link shows up on
> my connection and sets up a network stack above it.

One of supported ways to create virtual LAN interfaces is a N-to-1 MUX IM
driver.
See the sample in WinDDK\6001.18001\src\network\ndis\mux\driver\5x
and related WDK documentation.

If your device is actually a SAN, Infiniband or like that, maybe
the Windows sockets direct is what you need.

Good luck...

--PA


From: Bill Gage "Wild on
Pavel A. wrote:
>
> "Bill Gage" <"Wild Bill"@newsgroup.nospam> wrote in message
> news:OwkBsOWoIHA.2064(a)TK2MSFTNGP05.phx.gbl...
>> I am attempting to port a Linux driver to Windows XP, Vista, Servers
>> and CE. Through a single PCI Express hardware connection, the Linux
>> driver supports multiple direct user application conections using
>> IOCTLs and multiple TCP/IP connections. Thats is, one hardware device
>> can support several different computer point-to-point links with
>> different IP addresses.
>>
>> At this point I have the user level driver working on XP but can't
>> seem to get an ndis driver to show up in the control panel/network
>> connections display. Using callbacks I can send packets that I receive
>> over the link into ndis without error but get nothing back. I have
>> been using the ndiswdm driver as an example but really don't know
>> anything about how ndis works, what causes MPInitialize to get called,
>> how ndis gets hooked into the networking protocol stack, what all the
>> registry entries do, etc. What I really want is some system call I can
>> make when a new link shows up on my connection and sets up a network
>> stack above it.
>
> One of supported ways to create virtual LAN interfaces is a N-to-1 MUX
> IM driver.
> See the sample in WinDDK\6001.18001\src\network\ndis\mux\driver\5x
> and related WDK documentation.
>
> If your device is actually a SAN, Infiniband or like that, maybe
> the Windows sockets direct is what you need.
>
> Good luck...
>
> --PA
>
>
I attempted to create a mux IM driver without the protocol section
since, as I understand it, the protocol section only receives messages
from an ndis driver and I don't have one. My call to
NdisIMInitializeDeviceInstanceEx succeeds but then something happens
within ndis to fail the AddDevice call (driver fails with a code 31).
Any ideas on how to get around this?

My device is somewhat like Infiniband and I need to learn more about
WSD, SDP, Open Fabrics, etc. My device needs to support regular
utilities like telnet, ftp, etc. Do these protocols do that?

Bill