porting to windows vista - NdisSendPackets do not work

A

Andre Siqueira

Someone can help me??

Andre Siqueira escreveu:
I'm not "locking" the user buffer because I allocate memory and
then copy the user buffer with NdisMoveMemory.

I don't use NetBuffers because I want the code run in NDIS >= 5.0,
so I can have the same driver for windows 2000/ XP/ 2003/ Vista.

The problem is that when I call NdisSendPackets, the function
SendCompleteHandler is called with the status
NDIS_STATUS_SUCCESS, even the packet didn't go to the
network.

Thanks,

Andre.


Pavel A. escreveu:
 
S

stewo68

Andre Siqueira wrote:
[..]
Hmm, what's wrong about NDIS_STATUS_SUCCESS? Isn't this how one would
usually expect NdisSendPackets() to work?

I guess you are somewhat confused about the fact that you see
NDIS_STATUS_SUCCESS *although* the frame described by the NDIS_PACKET
does *not* actually go to the network, right?

This is called a "lying send" but is ok and common practice for network
drivers. Just because there is usually no use in the information
whether the network driver was actually able to send a frame to the
network or not.

(Think about it a little: The fact that a frame was *sent* out to the
*local* network (LAN) does not also mean it got *received* by some
other station(s), not to mention a "remote destination" in a WAN, e.g.
Internet. In general, it is the responsibility of higher level protocol
drivers to ensure data delivery by using mechanisms such as timeouts
and retries. This is true although some network media allow for layer-2
delivery status, e.g. WLAN or Token-Ring/FDDI).

Stephan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top