NDIS IM driver with a Virtual Adapter...

Hi,

Been banging my head against the wall on this one.

I have an NDIS IM driver and a “Virtual Miniport Adapter” I’m trying to
insert a packet into the stream on a MiniportTimer handler. I’m using the
virtual adapter timer loop to do this and I thought all I should need to do
is when my timer event fires, look up the binding handle for the physical
adapter, set up my packet descriptor and buffer descriptor and my packet
data and call NdisSend. I have code already that inserts packets into the
stream for the physical adapter when the timer event is fired for the
physical adapter and all is fine there. Is there anything “special” I
should be aware of when I try the switching from virtual to physical case?

A few more details:

  1. The packet is showing up on the wire when I run a packet capture
    tool. Only one byte is modified when I see it. The in the MAC header, the
    “Type” field has been modified from my original buffer. (And I’ve checked
    that my buffer is correct when I build my packet up and call NdisSend.

  2. The bugcheck dumps mostly have references in the stack to the timer
    functions in the kernel, but sometimes I see that my send packet buffer pool
    has been corrupted.

Thanks for any insight you might lend.

Paul