Need guidance developing NIC driver



All,

I've been tasked to look into writing a Network Adaptor driver for
Win2K that presents two physical (possibly different vendor and/or
model) PCI NIC cards as a single logical network card to the OS. The
two cards will be on parallel networks and each have the same IP
address (as each other). In addition, this logical N/W card needs to
keep track of what other IP addresses exist on the network and whether
they communicate wiuth "enhanced" TCP/IP. "Enhanced" TCP/IP is a
protocal where the TCP/IP packet header is moved to the end of the data
packet, and in its place, our own header is prepended to the data
packet.

These parallel networks are a process control network and are connected
to DCU's (distributed control system controllers - glorified,
programmable PCL's) which use the parallel networks for redundancy, but
also they use the "enhanced" TCP/IP headers for network loading and
statistic gathering.

Our company currently has a PCI network card (we refer to it as an ECCP
card) that has this parallel network capability, but the cards are a
large form-factor (13" long card) and have a high power draw - its
getting tougher to find computer chassis' that can fit the card as well
as power it (with all the other goodies), as well as the fact that they
are getting increasingly more expensive to manufacture. So the company
wants to retire the ECCP card. I do have the source code for the ECCP
card drive, as a place to start.

We will only be supporting Win2K & later.

I've gotten a pair of books on driver development:
"Programming the MS Windows Driver Model" by Walter Oney and "The W2K
Device Driver Book" by Baker and Lozano.

In one of these books, it specifies that writing a network driver is
not for the faint of heart, and will most probably take longer than
anticipated!

My managers are prodding me for a time schedule, and I don't even know
where to begin!

I've been poking around the Microsoft website looking for resources...
I stumbled across this page:
http://www.microsoft.com/whdc/resources/MVP/xtremeMVP_2thingsDB.mspx

Written by Don Burn, in which he writes '"How do I get started writing
a Windows Device Driver?" The best answer is to take a course.'
However, no specific courses are suggested.

Additionally, there is no email address for Mr. Burn (I suppose to
protect him from getting emails like this one!) with which to ask about
suggested courses.

Could someone on this list suggest a good starting course for driver
development? I have several years of Developer Studio (C++) behind me,
but I have never attempted to write a device driver.

Regards,
Bill

.



Relevant Pages

  • Re: virtual network interface over PCI
    ... Not sure whether establishing a virtual network connection to the OS on ... TCP/IP stack on the card as well as an FTP server. ... An NDIS intermediate driver is not what you ... The PCI card in question has a embedded controller/OS built in. ...
    (microsoft.public.development.device.drivers)
  • Re: netstat - negative number of queues free
    ... > This is the integrated Broadcom gigabit Ethernet card. ... > driver would either have been included in 5.0.7 or, more likely, ... > $cable a few times under high network load. ... > The users access the data by telnetting to the server and running ...
    (comp.unix.sco.misc)
  • Re: Need guidance developing NIC driver
    ... OTOH how router will decide to what adapter will be packet send if both have ... >> model) PCI NIC cards as a single logical network card to the OS. ... >> I've gotten a pair of books on driver development: ...
    (microsoft.public.development.device.drivers)
  • Re: Linksys WPC11 (v3) on W2K, WPA: any hope?
    ... network PCMCIA card, which worked. ... when I try to use a Linksys WPC11 wireless card in this ... When I install the new driver, ... Supports Wi-Fi Protected Access (WPA) with additional supplicants from Funk Software ...
    (alt.internet.wireless)
  • Re: Wireless and SuSE
    ... I put SuSE 10.3 on her system and everything appears to be tickety-boo. ... WG311v3 wireless card that needs to use ndiswrapper to drive it. ... Its all down to chipset of the network card, ... I did find an RT61 driver project, with GUI, which compiles against the kernel ...
    (uk.comp.os.linux)