I need a way to find out the Round trip time and the retransmission count (both packets and bytes) per socket. I can either obtain at the user level or in the filter driver. In linux, one can obtain this information by reading the sock info from tcp_ehash, and then obtain the tcp_sock using tcp_sk on struct sock*; but i couldnt find an equavalent in windows. I am not using the Winsock Kernel, all the connections are opened by a user process and in the filter driver I intercept the egress packets. There is a possibility getting this information by keeping per flow information and determining if the packet send down by the protocol driver was send earlier but I wish to avoid keeping this state.
Is there anyway to get this information from kernel in the driver, or is there anyway that the user mode process can query the socket to obtain these information.

Please help.