问个问题别说我问得怪-....
想通过AllocateAndGetTcpExTableFromStack获取端口到进程的信息,但是用了之后没获取到任何TCP表信息不知道为什么....宏定义
_PROCVAR Typedef proto:dword,:dword,:dword,:dword,:dword
PROCVAR Typedef ptr _PROCVAR
这是数据结构的定义
lpAllocateAndGetTcpExTableFromStack PROCVAR ?
szDll db 'Iphlpapi.dll',0
szAllocateAndGetTcpExTableFromStack db 'AllocateAndGetTcpExTableFromStack',0
MIB_TCPEXROW struct
dwState dd ? ;//连接状态
dwLocalAddr dd ? ;//本地地址
dwLocalPort dd ? ;//本地端口
dwRemoteAddr dd ? ;//远程地址
dwRemotePort dd ? ;//远程端口
dwProcessId dd ? ;//进程ID号
MIB_TCPEXROW ends
MIB_TCPEXTABLE struct
dwNumEntries dd ?
stMIB_TCPEXROW MIB_TCPEXROW 256 dup (<>)
MIB_TCPEXTABLE ends
这是调用
invoke LoadLibrary,addr szDll
mov hDllInstance,eax
invoke GetProcAddress,hDllInstance,addr szAllocateAndGetTcpExTableFromStack
mov lpAllocateAndGetTcpExTableFromStack,eax
invoke GetProcessHeap
mov hHeap,eax
invoke lpAllocateAndGetTcpExTableFromStack,addr stMIB_TCPEXTABLE,TRUE,hHeap,2,2
函数返回为0根据MCRO的说法返回0为SUCCESS,但是我查看了数据BUFFER确没得到TCP表的信息,这是为什么?是数据定义有问题?
汗别觉得我问得怪...........迫切希望有高人解答!谢谢了!