Hi,

> Hi,
>
> I'm developing an application that has to send a packet at a precise
> (preferably within a millisecond) point in time. For examble delaying a
> packet 200 ms. I know all data about the packet, but do not need the
packet
> data itself. I've got a delay of about 20 ms, that i can't control. It can
> vary up to 10 ms. I assume this delay comes from copying the packet (the
> main delay must be here, rigth?) to and from the kernel driver (I know -
> User mode switching also occurs), and therefore i'm considering adding
> further functionality to the kernel driver, where i can retrieve the
header
> only, and leave the packet in the kernel driver buffer, and then tell the
> kernel driver at a later point in time to send the packet.

The delay is due to many factors among which context switches and driver
processing.
I suggest you to wait the new version of winpcap, that we hope to release
within a month.
It will provide greatly enhanced write capabilities, with buffering of the
packets and the possibility to associate a timestamp to every packet. The
precision should be between the microsecond and the millisecond, depending
on the hardwar.

> Now for my question. I can se how the tab function is called by the NIC
> driver when a packet i recieved, but how does the kernel driver see when
> something should be sent? The packet.dll just writes the file (kernel
> buffer), but where in the kernel driver source code, does the driver check
> the file, for packets to be sent??

PacketWrite() in write.c.

Loris

> I hope you can help me.
>
> - Jesper
>


Reply via email to