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 >
