Hi,
For the last 5-6 months I have tried the "ndisprot like" examples from the 3
versions of the DDKs (packet, ndisuio, ndisprot) and practically I have
learned a few things through trial and error.
I have been working on an application that needs to move from layer 3 of the
Network stack to as close as possible to the layer 2. I thought to take
(initially) ndisuio example and use it.
The problem is that I am actually trying to create a network bridge between
two NIC interfaces but to do so I need a good throughput which basically
comes down to asynchronous operation.
I am familiar with the implications of that (dublicate frames, forwarded
frame unless broadcast needs to have the dest MAC of the neighbour device
etc.). I have solutions for these. The problem is the bridging! I am really
desperate for a solution...
I 've figured out that I can't open 2 handles per interface (or am i wrong
here?) so that leaves me with overlapped operation.
Now i tried that but it all seems to fail.
Does any of this DDK examples really supports overlapped operation? Either
on opening a device or on the createfile? And when using overlapped operation
is it better (faster) to use createfile with readfile/writefile and
getoverlappedresult or a callback function?
And okay, we are not supposed to use the same overlapped structure but
assuming that we have 100 frames per second am i supposed to initialise 100
frame structs containing 100 different overlapped structs? Isn't there
another way??
Is there anyone out there who has achieved proper overlapped operation using
any of these three DDK examples?
Can that someone kindly provide me with some advice? Please?
ps: At some point I have tried 4 different versions of the same driver (2
per interface, one for reading one for writing) in an attempt tto overcome
the "only one handle per interface" rule, but the throughput of the bridge
has been pathetic (8-10Kb/s on a FTP transfer on a 10/100Mbps bridging). Any
idea why that can be? Are multiple ndisuio drivers not supposed to be loaded
together?
Kind regards,
dimitris
de4rag@hotmail.com