tcpmib.h) (MIB_TCPROW_OWNER_PID 结构

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

语法

typedef struct _MIB_TCPROW_OWNER_PID {
  DWORD dwState;
  DWORD dwLocalAddr;
  DWORD dwLocalPort;
  DWORD dwRemoteAddr;
  DWORD dwRemotePort;
  DWORD dwOwningPid;
} MIB_TCPROW_OWNER_PID, *PMIB_TCPROW_OWNER_PID;

成员

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 头文件。

含义
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 连接处于已建立状态,表示打开的连接,接收的数据可以传递给用户。 这是 TCP 连接的数据传输阶段的正常状态。
MIB_TCP_STATE_FIN_WAIT1
6
TCP 连接为 FIN-WAIT-1 状态,等待来自远程 TCP 的连接终止请求或之前发送的连接终止请求的确认。
MIB_TCP_STATE_FIN_WAIT2
7
TCP 连接为 FIN-WAIT-2 状态,等待来自远程 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。

注解

MIB_TCPROW_OWNER_PID 结构是通过调用 GetExtendedTcpTable 返回的,其中 TableClass 参数设置为从 TCP_TABLE_CLASS 枚举TCP_TABLE_OWNER_PID_LISTENER、TCP_TABLE_OWNER_PID_CONNECTIONSTCP_TABLE_OWNER_PID_ALL,ulAf 参数设置为 AF_INET4

dwState 成员指示 TCP 状态图中 TCP 条目的状态。 TCP 连接在其生存期内会经历一系列状态。 状态为:LISTEN、SYN-SENT、SYN-RECEIVED、ESTABLISHED、FIN-WAIT-1、FIN-WAIT-2、CLOSE-WAIT、CLOSING、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 头文件。

要求

要求
最低受支持的客户端 Windows Vista、Windows XP SP2 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008、Windows Server 2003 SP1 [仅限桌面应用]
标头 tcpmib.h (包括 Iphlpapi.h)

另请参阅

GetExtendedTcpTable

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

TCP_TABLE_CLASS

in_addr

inet_ntoa

ntohl

ntohs