IM Asynchronous packet send/receive - Anyone knows if possible?

Does anyone know if its possible to create a packet and then send it up the stack (or send out), asynchronously from an IMDriver. Are there any locking issues / race conditions that I have to be worried about?. I plan on doing this based on when a timer fires. What are the possible limitations of doing something like this (as an example calling MPSendPackets yourself).

What I am worried about is the SendPacketHandler being called while I (in the IM driver) make an attempt to call the same.

A related question : Are multiple, possibly simultaneous calls to NdisSend() or NdisMIndicateRecivePacket() self-serialized, or do I need to do something for serializing them?

 

Thanks
-Johnny


MSN Photos is the easiest way to share and print your photos: Click Here

Hi,
The issues you need to consider is

  1. Waiting for the send to complete before halting.
  2. If you allocate a packet within IM then just call NdisSend else if send
    handler is called you have to take overhead of copying NDIS_PACKET
    contents.
  3. You need not synchronize the calls to send/receive if you are using
    independent data structures (the usual stuff).

-Shashi