Hi Guys,
I think I found a BUG in Windows Vista+ TDI trasport/client drivers.
I am not getting the callback from the underlying trasport layer when the system receives a incoming UDP packet.
I am not really sure if seeing these logs will help understand the situation for you guys.
Please find the logs and embedded comments below.
If you have any questions, please mails me.
Windowx-XP logs:
devicedispatch:: Major:Minor = 0x0:0x0
devicedispatch:: Device Object = UDP, MAJOR Function = 0x827e38c8 irp = 0x827e38d8
devicedispatch:: Major:Minor = 0xf:0xb
devicedispatch:: Device Object = UDP, MAJOR Function = 0x827e38c8 irp = 0x00000000
devicedispatch:: Major:Minor = 0xf:0xb
devicedispatch:: Device Object = UDP, MAJOR Function = 0x827e38c8 irp = 0x00000000
devicedispatch:: Major:Minor = 0xf:0xb
devicedispatch:: Device Object = UDP, MAJOR Function = 0x827e38c8 irp = 0x00000000
devicedispatch:: Major:Minor = 0xf:0xc
devicedispatch:: Device Object = UDP, MAJOR Function = 0x828e5860 irp = 0xb2bd6ac8
devicedispatch:: Major:Minor = 0xf:0xc
devicedispatch:: Device Object = UDP, MAJOR Function = 0x828e5860 irp = 0x823cfb54
devicedispatch:: Major:Minor = 0xf:0xc
devicedispatch:: Device Object = UDP, MAJOR Function = 0x828e5860 irp = 0x823cfb54
>>> Application sending data (ioctl) …
devicedispatch:: Major:Minor = 0xf:0x9
devicedispatch:: Device Object = UDP, MAJOR Function = 0x827da2f8 irp = 0x823f9076
>>> Callback called
<tdi_event_receive_datagram:>: Invoked
<tdi_event_receive_datagram:>: [tdi_fw] : Bytes Indicated/Available 1470/1470; flags: 0x200
<tdi_event_receive_datagram:>: [tdi_fw] : BytesTaken: 0; Irp: 0x0
<internal_receive_datagram:>: After if (g_got_control == 0) check
<internal_receive_datagram:>: Rewrite address in list from 7f000001:1040->64646415:59249
<internal_receive_datagram:>: Check if the UDP package should be rewriten 7f000001:1040 (ote addr: 0:5001
<internal_receive_datagram:>: Rewriting UDP source address from 7f000001:1040->64646415:59249
<tdi_event_receive_datagram:>: Accept incoming UDP connection from 15646464:59249
>>>> Receive ioctl called
devicedispatch:: Major:Minor = 0xf:0x8
devicedispatch:: Device Object = TCP, MAJOR Function = 0x8228cee8 irp = 0x8228ceb0
>>>> Connect ioctl called
devicedispatch:: Major:Minor = 0xf:0x3
devicedispatch:: Device Object = UDP, MAJOR Function = 0x828c4008 irp = 0x823f9076
devicedispatch:: calling TDI IOCTL dispatch function …
<tdi_connect:>: Invoked
<tdi_connect:>: connobj 0x823bc028, to address 64646415:59249
Win-7 driver Logs
--------------------
devicedispatch:: Major:Minor = 0x0:0x0
devicedispatch:: Device Object = UDP, MAJOR Function = 0x859cfa80 irp = 0x846179a0
devicedispatch:: Major:Minor = 0xf:0xb
devicedispatch:: Device Object = UDP, MAJOR Function = 0x859cfa80 irp = 0x00000000
devicedispatch:: Major:Minor = 0xf:0xb
devicedispatch:: Device Object = UDP, MAJOR Function = 0x859cfa80 irp = 0x00000000
devicedispatch:: Major:Minor = 0xf:0xb
devicedispatch:: Device Object = UDP, MAJOR Function = 0x859cfa80 irp = 0x00000000
devicedispatch:: Major:Minor = 0xf:0xc
devicedispatch:: Device Object = UDP, MAJOR Function = 0x846425b0 irp = 0x846425b0
devicedispatch:: Major:Minor = 0xf:0xc
devicedispatch:: Device Object = UDP, MAJOR Function = 0x846425b0 irp = 0x846179a0
devicedispatch:: g_devcontrol: IRP_MJ_CREATE for Driver control
devicedispatch:: g_devcontrol: IRP_MJ_DEVICE_CONTROL
<process_ioctl_request:>: IOCTL_CMD_ADD_INCOMING_TUNNEL_UDP_ADDRESS called
<process_ioctl_request:>: we didn’t have a matching record, create a new one
>>> Application sending data (ioctl) …
devicedispatch:: Major:Minor = 0xf:0x9
devicedispatch:: Device Object = UDP, MAJOR Function = 0x846425b0 irp = 0x8422f8b8
devicedispatch:: Major:Minor = 0xf:0x9
devicedispatch:: Device Object = UDP, MAJOR Function = 0x846425b0 irp = 0x8422f8b8
Thanks
nani</devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></process_ioctl_request:></process_ioctl_request:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></tdi_connect:></tdi_connect:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></tdi_event_receive_datagram:></internal_receive_datagram:></internal_receive_datagram:></internal_receive_datagram:></internal_receive_datagram:></tdi_event_receive_datagram:></tdi_event_receive_datagram:></tdi_event_receive_datagram:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:></devicedispatch:>