MIB_TCPROW_OWNER_MODULE结构 (tcpmib.h)

MIB_TCPROW_OWNER_MODULE结构包含的信息描述与所有权数据、IPv4 地址、TCP 连接使用的端口以及与连接关联的特定进程 ID(PID)的 IPv4 TCP 连接。

Syntax

typedef struct _MIB_TCPROW_OWNER_MODULE {
  DWORD         dwState;
  DWORD         dwLocalAddr;
  DWORD         dwLocalPort;
  DWORD         dwRemoteAddr;
  DWORD         dwRemotePort;
  DWORD         dwOwningPid;
  LARGE_INTEGER liCreateTimestamp;
  ULONGLONG     OwningModuleInfo[TCPIP_OWNING_MODULE_SIZE];
} MIB_TCPROW_OWNER_MODULE, *PMIB_TCPROW_OWNER_MODULE;

Members

dwState

类型:DWORD

dwState

类型:DWORD

TCP 连接的状态。 此成员可以是 Iprtrmib.h 头文件中定义的值之一。

在适用于 Windows Vista 及更高版本的 Windows SDK 上,头文件的组织已更改。 此成员可以是 Tcpmib.h 头文件中定义的MIB_TCP_STATE枚举中的值之一,而不是 Iprtrmib.h 头文件中的值。 请注意, Tcpmib.h 头文件自动包含在 Iprtrmib.h 中,该文件自动包含在 Iphlpapi.h 头文件中。 不应直接使用 Tcpmib.hIprtrmib.h 头文件。

价值 Meaning
MIB_TCP_STATE_CLOSED
1
TCP 连接处于 CLOSED 状态,表示根本没有连接状态。
MIB_TCP_STATE_LISTEN
2
TCP 连接处于 LISTEN 状态,等待来自任何远程 TCP 和端口的连接请求。
MIB_TCP_STATE_SYN_SENT
3
TCP 连接处于 SYN-SENT 状态,在发送连接请求(SYN 数据包)后等待匹配的连接请求。
MIB_TCP_STATE_SYN_RCVD
4
TCP 连接处于 SYN-RECEIVED 状态,在接收并发送连接请求(SYN 数据包)后等待确认连接请求确认。
MIB_TCP_STATE_ESTAB
5
TCP 连接处于 ESTABLISHED 状态,表示打开的连接,接收的数据可以传送给用户。 这是 TCP 连接的数据传输阶段的正常状态。
MIB_TCP_STATE_FIN_WAIT1
6
TCP 连接是 FIN-WAIT-1 状态,等待来自远程 TCP 的连接终止请求,或确认之前发送的连接终止请求。
MIB_TCP_STATE_FIN_WAIT2
7
TCP 连接是 FIN-WAIT-1 状态,正在等待来自远程 TCP 的连接终止请求。
MIB_TCP_STATE_CLOSE_WAIT
8
TCP 连接处于 CLOSE-WAIT 状态,正在等待来自本地用户的连接终止请求。
MIB_TCP_STATE_CLOSING
9
TCP 连接处于 CLOSING 状态,正在等待来自远程 TCP 的连接终止请求确认。
MIB_TCP_STATE_LAST_ACK
10
TCP 连接处于 LAST-ACK 状态,等待先前发送到远程 TCP 的连接终止请求的确认(其中包括其连接终止请求的确认)。
MIB_TCP_STATE_TIME_WAIT
11
TCP 连接处于 TIME-WAIT 状态,等待足够的时间来传递,以确保远程 TCP 收到其连接终止请求的确认。
MIB_TCP_STATE_DELETE_TCB
12
TCP 连接处于删除 TCB 状态,表示删除传输控制块(TCB),这是用于维护每个 TCP 条目信息的数据结构。

dwLocalAddr

类型:DWORD

本地计算机上的 TCP 连接的本地 IPv4 地址。 值为零表示侦听器可以接受任何接口上的连接。

dwLocalPort

类型:DWORD

本地计算机上的 TCP 连接的本地端口号(以网络字节顺序排列)。

dwRemoteAddr

类型:DWORD

远程计算机上的 TCP 连接的 IPv4 地址。 当 dwState 成员MIB_TCP_STATE_LISTEN时,此值没有意义。

dwRemotePort

类型:DWORD

远程计算机上的 TCP 连接的网络字节顺序中的远程端口号。 当 dwState 成员MIB_TCP_STATE_LISTEN时,此成员没有意义。

dwOwningPid

类型:DWORD

发出此 TCP 连接的上下文绑定的进程 PID。

liCreateTimestamp

类型: LARGE_INTEGER

FILETIME 结构,指示创建此 TCP 链接的上下文绑定作何时发生。

OwningModuleInfo[TCPIP_OWNING_MODULE_SIZE]

类型: ULONGLONG[TCPIP_OWNING_MODULE_SIZE]

包含所有权信息的不透明数据的数组。

注解

MIB_TCPROW_OWNER_MODULE结构由对 GetExtendedTcpTable 的调用返回,TableClass 参数设置为TCP_TABLE_OWNER_MODULE_LISTENERTCP_TABLE_OWNER_MODULE_CONNECTIONS或从TCP_TABLE_CLASS枚举TCP_TABLE_OWNER_MODULE_ALL,ulAf 参数设置为AF_INET4

dwState 成员指示 TCP 状态图中 TCP 条目的状态。 TCP 连接在其生存期内通过一系列状态进行。 状态包括:LISTEN、SYN-SENT、SYN-RECEIVED、ESTABLISHED、FIN-WAIT-1、FIN-WAIT-2、CLOSE-WAIT、CLOSE、LAST-ACK、TIME-WAIT 和虚构状态 CLOSED。 CLOSED 状态是虚构的,因为它表示没有传输控制块时的状态,因此,没有连接。 RFC 793 中介绍了 TCP 协议。 有关详细信息,请参阅 http://www.ietf.org/rfc/rfc793.txt

dwLocalPortdwRemotePort 成员按网络字节顺序排列。 若要使用 dwLocalPortdwRemotePort 成员,可能需要 Windows 套接字或类似函数中的 ntohsinet_ntoa 函数。 dwLocalAddrdwRemoteAddr 成员以与 in_addr 结构相同的格式存储为 DWORD。 若要使用 dwLocalAddrdwRemoteAddr 成员,可能需要 Windows 套接字或类似函数中的 ntohlinet_ntoa 函数。 在 Windows Vista 及更高版本中, RtlIpv4AddressToStringRtlIpv4AddressToStringEx 函数可用于将 dwLocalAddrdwRemoteAddr 成员中的 IPv4 地址转换为字符串,而无需加载 Windows 套接字 DLL。

在适用于 Windows Vista 及更高版本的 Windows SDK 上,头文件的组织已更改。 此结构在 Tcpmib.h 头文件中定义,而不是 在 Iprtrmib.h 头文件中定义。 请注意, Tcpmib.h 头文件自动包含在 Iprtrmib.h 中,该文件自动包含在 Iphlpapi.h 头文件中。 不应直接使用 Tcpmib.hIprtrmib.h 头文件。

要求

Requirement 价值
最低支持的客户端 具有 SP2 的 Windows Vista、Windows XP [仅限桌面应用]
支持的最低服务器 具有 SP1 的 Windows Server 2008、Windows Server 2003 [仅限桌面应用]
Header tcpmib.h (include Iphlpapi.h)

另请参阅

GetExtendedTcpTable

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

SYSTEMTIME

TCP_TABLE_CLASS

in_addr

inet_ntoa

ntohl

ntohs