Hi,

I am trying to figure out the best (i.e. easiest, fastest and least
prone to error; yeah, I know) approach to developing a network driver
for a USB-connected network card. From my research so far, I think I
can do this in 3 different ways:

1. Remote NDIS - not really an option in this case because the network
card has only 64Kbytes of RAM and most of it is used by the device
firmware.

2. custom USB + NDIS driver - This seems to be the most complex
option. I have written NDIS drivers before but have no experience
writing a USB driver.

3. Use an NDIS-WDM driver - write an NDIS driver with a WDM lower
edge. I am guessing that this will allow me to use the native USB
driver leaving me to focus on the NDIS driver.

Am I correct so far?

Based on the above, (3) sounds the most promising way to go.

If anyone has any other suggestions or comments, please let me know.

Thanks,
Harshal

Re: Options for a NDIS-over-USB driver by Don

Don
Wed Feb 04 13:07:26 CST 2004

You might look at the PCIDRV sample that is in the Win2k3 SP1 DDK (Eliyas
Yakub wrote it and might be able to get it for you). This is a NDIS-WDM
driver with a second driver below it, in the fashion of your #2 proposal.
This would give you a strong starting point for that option or #3.


--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting


Remove StopSpam from the email to reply
"Harshal" <mumbaiyaa@yahoo.com> wrote in message
news:9f8e33a7.0402041102.5b3194ab@posting.google.com...
> Hi,
>
> I am trying to figure out the best (i.e. easiest, fastest and least
> prone to error; yeah, I know) approach to developing a network driver
> for a USB-connected network card. From my research so far, I think I
> can do this in 3 different ways:
>
> 1. Remote NDIS - not really an option in this case because the network
> card has only 64Kbytes of RAM and most of it is used by the device
> firmware.
>
> 2. custom USB + NDIS driver - This seems to be the most complex
> option. I have written NDIS drivers before but have no experience
> writing a USB driver.
>
> 3. Use an NDIS-WDM driver - write an NDIS driver with a WDM lower
> edge. I am guessing that this will allow me to use the native USB
> driver leaving me to focus on the NDIS driver.
>
> Am I correct so far?
>
> Based on the above, (3) sounds the most promising way to go.
>
> If anyone has any other suggestions or comments, please let me know.
>
> Thanks,
> Harshal



Re: Options for a NDIS-over-USB driver by Maxim

Maxim
Wed Feb 04 16:16:38 CST 2004

> 3. Use an NDIS-WDM driver - write an NDIS driver with a WDM lower
> edge. I am guessing that this will allow me to use the native USB
> driver leaving me to focus on the NDIS driver.

This is possibly the best way.

--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com



Re: Options for a NDIS-over-USB driver by mumbaiyaa

mumbaiyaa
Thu Feb 05 12:18:25 CST 2004

"Maxim S. Shatskih" <maxim@storagecraft.com> wrote in message news:<#hxKSx26DHA.1636@TK2MSFTNGP12.phx.gbl>...
> > 3. Use an NDIS-WDM driver - write an NDIS driver with a WDM lower
> > edge. I am guessing that this will allow me to use the native USB
> > driver leaving me to focus on the NDIS driver.
>
> This is possibly the best way.


Thanks to you and to Don for your responses.

Will I be able to use the default USB driver as the 'lower layer' in
this setup? I couldn't find for sure if the USB driver could be used
by another driver (an NDIS one in this case)?

I am guessing that instead of triggering an interrupt as in a regular
NDIS driver, I would have to call a function (IoRP?) to pass the
packet to the WDM driver. But I am not clear on how to tell the WDM
driver that it should send its packets to this driver? Is there some
documentation specific to NDIS-WDM drivers?

Thanks,
Harshal

Re: Options for a NDIS-over-USB driver by bburgin

bburgin
Thu Feb 05 21:11:01 CST 2004

------=_NextPart_0001_20E677FA
Content-Type: text/plain
Content-Transfer-Encoding: 7bit



Re #3: Take a look at the new DDK sample netvmini as a starting point, have
it get a pointer to the USB stack, roll your own IRPs, etc...

Bryan S. Burgin
bburgin@microsoft.com

This posting is provided "AS IS" with no warranties, and confers no rights.
------=_NextPart_0001_20E677FA
Content-Type: text/x-rtf
Content-Transfer-Encoding: 7bit

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fprq2\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\f0\fs20
\par
\par Re #3: Take a look at the new DDK sample netvmini as a starting point, have it get a pointer to the USB stack, roll your own IRPs, etc...
\par
\par Bryan S. Burgin
\par bburgin@microsoft.com
\par
\par This posting is provided "AS IS" with no warranties, and confers no rights.
\par }
------=_NextPart_0001_20E677FA--