I am trying to understand how to implement adapter teams in NDIS IM drivers.
I have studied MUX and passthru samples from Win2k3 Sp1 DDK.
I want to expand the psstrhu sample into this simple driver that can at it’s
‘judgement’ pass a packet down through any of the adapters it is bound to.
For example if there are NIC1,2,3 and the driver is attached to NIC 1 and 2
only. In that case when IE send a packet down, the driver should be able to
send the packet down through either interface depending on certain settings
(could be registry parameter, wahtever).
Can some one give me some pointers to how to proceed. Where are the key
functions that I need to focus and edit?
can an IM driver in NDIS (like passthrough) be used to wake up an OS from
S3/s4 ? Since it is not attached to any real device it thre a way to make
this happen?
AP
On 7/2/07, A P wrote: > > hi experts, > > I am trying to understand how to implement adapter teams in NDIS IM > drivers. > > I have studied MUX and passthru samples from Win2k3 Sp1 DDK. > > I want to expand the psstrhu sample into this simple driver that can at > it’s ‘judgement’ pass a packet down through any of the adapters it is bound > to. For example if there are NIC1,2,3 and the driver is attached to NIC 1 > and 2 only. In that case when IE send a packet down, the driver should be > able to send the packet down through either interface depending on certain > settings (could be registry parameter, wahtever). > > Can some one give me some pointers to how to proceed. Where are the key > functions that I need to focus and edit? > > ap >
> Can some one give me some pointers to how to proceed. Where are the key
functions that I need to focus and edit?
It does not work this way with NDIS - if you want to write a proper NDIS IM filter you have to understand how NDIS actually works. Otherwise, even a minor modification is going to turn a production-grade sample into a piece of crap.
Don’t limit yourself only to passthru and MUX samples. First of all, try to understand how miniports and protocols work and interact with one another, so look at ndisprot and netvmini samples. Then
remember that NDIS IM is just a combination of miniport and protocol in the same driver, and, at this point, everything will start making sense when you look at passthru and MUX. You are also going to realize that there are some situations that passthru does not cover (for example, a situation when you want to examine all data of a packet, indicated by miniport that relies upon abomination known as partial indication), so that you will be able to adjust your driver to various possibilities…
Concerning your actual question, in the simplest scenario all you have to do is to play around with handles that you pass to NdisSendPackets() and NdisMIndicatePacket(). However, be aware that
underlying miniports may support different media, so that you may have to deal with media-specific
details as well; some miniports may rely upon partial indications, so that you may have to adjust your code to it; etc,etc,etc…
To summarize, you are about to start quite a complex project, so that this is not the question of simply applying few modifications to the existing sample…