怎么通过NtDeviceIoControlFile获得IP地址、端口信息

【求助】如何通过NtDeviceIoControlFile获得IP地址、端口信息
通过SSDT HOOK 挂钩了NtDeviceIoControlFile
但是不知道如何从输入输出buffer里获得TCP/UDP相关的信息,主要就是源、目的IP和端口信息
应该是可以得到的吧

------解决方案--------------------
首先判断文件对象名是不是afd的,然后根据ioctlcode解读buffer
------解决方案--------------------
winsock和协议驱动程序就通过afd中转
举个栗子,IOCTL_AFD_SEND对应的是typedef struct _AFD_SEND_INFO {
LPWSABUF BufferArray;
ULONG BufferCount;
ULONG AfdFlags;
ULONG TdiFlags;
} AFD_SEND_INFO, *PAFD_SEND_INFO;
不过这些类型在win7和winxp有的有差异
------解决方案--------------------
tcp的是连接的时候指定ip
typedef struct _AFD_CONNECT_INFO {
PVOID UseSAN;
PVOID Root;
PVOID ConnectEndpoint;
struct sockaddr RemoteAddress;
} AFD_CONNECT_INFO , *PAFD_CONNECT_INFO;
winxp不是这样的,win7也不全是这样的,我还没搞清楚win7有哪几种AFD_CONNECT_INFO