NDIS Intermediate Driver

Hi,

I am designing a new layer between TCP/IP and MAC layer using NDIS
intermediate drivers (PassThru samples) on Windows CE 5.0. The new layer
has its own header and few control packets. I wanted to know whether it
is possible to change the packet structure at this intermediate layer or
not. Also, whether this is a good design or not. If not, what are the
other ways in which I can implement this middle layer between TCP/IP and
MAC layer?

I am confused because at many places, it suggests not to modify packet
data virtual memory or buffer descriptor at the intermediate drivers if
you haven’t allocated it.

I will greatly appreciate any help in this regard. Thanks in advance.

Best Regards,

-Niranjan

Niranjan,

Yes, it is preferred you allocate your own NDIS packets/buffers if you’re
modifying
data flow. I’ve never tried the NDIS 5.1 style “in place” packet updates on
CE but
I’ve had to support earlier than 5.0 CE versions as well.

The NDIS intermediate drivers should work fine for your purposes with one
potentially
significant caveat. Unless you make your software stand on its head, the CE
NDIS intermeds do not function over the connection oriented MAC drivers,
while
that’s exactly what much of the shipping network hardware employs.

As far as the alternative CE network filtering mechanisms are concerned, I
happen
to have used the WinSocks LSPs (Layered Service Providers) and NDISWAN shims
inserted between the NDIS and the ASYNCMAC. The former is above TCP/IP so
likely not suitable for you. You may have to resort to the latter though if
NDISWAN
support is in order.

Hope that helps,

Ilya Faenson

-----Original Message-----
Subject: NDIS Intermediate Driver
From: “Niranjan”
Date: Tue, 16 Aug 2005 11:21:06 -0500
X-Message-Number: 15

Hi,

I am designing a new layer between TCP/IP and MAC layer using NDIS
intermediate drivers (PassThru samples) on Windows CE 5.0. The new layer
has its own header and few control packets. I wanted to know whether it
is possible to change the packet structure at this intermediate layer or
not. Also, whether this is a good design or not. If not, what are the
other ways in which I can implement this middle layer between TCP/IP and
MAC layer?

I am confused because at many places, it suggests not to modify packet
data virtual memory or buffer descriptor at the intermediate drivers if
you haven’t allocated it.

I will greatly appreciate any help in this regard. Thanks in advance.

Best Regards,

-Niranjan

Thanks Ilya for figuring out a very important point. I will try to find out
whether my network MAC drivers are connection-oriented or connectionless.

If NdisWAN support is not in order, can I still use intermediate drivers by
using NdisCoSendPackets, NdisCoReceivePacket functions and other related
function in the intermediate driver (PassThru Samples) code?

Best Regards,
-Niranjan

“Ilya Faenson” <> wrote in message news:xxxxx@ntdev…

Niranjan,

Yes, it is preferred you allocate your own NDIS packets/buffers if you’re
modifying
data flow. I’ve never tried the NDIS 5.1 style “in place” packet updates
on
CE but
I’ve had to support earlier than 5.0 CE versions as well.

The NDIS intermediate drivers should work fine for your purposes with one
potentially
significant caveat. Unless you make your software stand on its head, the
CE
NDIS intermeds do not function over the connection oriented MAC drivers,
while
that’s exactly what much of the shipping network hardware employs.

As far as the alternative CE network filtering mechanisms are concerned, I
happen
to have used the WinSocks LSPs (Layered Service Providers) and NDISWAN
shims
inserted between the NDIS and the ASYNCMAC. The former is above TCP/IP so
likely not suitable for you. You may have to resort to the latter though
if
NDISWAN
support is in order.

Hope that helps,

Ilya Faenson

-----Original Message-----
Subject: NDIS Intermediate Driver
From: “Niranjan”
> Date: Tue, 16 Aug 2005 11:21:06 -0500
> X-Message-Number: 15
>
> Hi,
>
>
> I am designing a new layer between TCP/IP and MAC layer using NDIS
> intermediate drivers (PassThru samples) on Windows CE 5.0. The new layer
> has its own header and few control packets. I wanted to know whether it
> is possible to change the packet structure at this intermediate layer or
> not. Also, whether this is a good design or not. If not, what are the
> other ways in which I can implement this middle layer between TCP/IP and
> MAC layer?
>
>
> I am confused because at many places, it suggests not to modify packet
> data virtual memory or buffer descriptor at the intermediate drivers if
> you haven’t allocated it.
>
>
> I will greatly appreciate any help in this regard. Thanks in advance.
>
>
> Best Regards,
>
> -Niranjan
>
>
>

> to have used the WinSocks LSPs (Layered Service Providers) and NDISWAN

shims
inserted between the NDIS and the ASYNCMAC. The former is above TCP/IP

There is no NDISWAN in WinCE. No WANARP too. These modules are combined to a
monolithic PPP.DLL with a custom ARP upper edge and NDIS protocol lower edge.

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

No need to ever filter CoNDIS, also it is not supported IIRC :slight_smile: PPP
filtering is done by filtering above NDISWAN and below WANARP.


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

“Niranjan” wrote in message
news:xxxxx@shadowstor.com
> Thanks Ilya for figuring out a very important point. I will try to find out
> whether my network MAC drivers are connection-oriented or connectionless.