SetPertCpConnectionStats和GetPertCpConnectionStats返回错误代码1214(无效网络名) 我试图获得与我的C++服务中Windows中的“资源监视器”中显示的统计数据相似的数据。为此,我使用了中所示的示例。但是我被卡住了,因为SetPertCpConnectionStats和GetPertCpConnectionStats返回时出现错误代码1214。唯一的区别是btn。上面提到的链接和我的链接的示例中的代码是,我不是在处理特定的本地和远程端口,而是在处理tcp表中的所有条目,但我认为这不会有任何区别

SetPertCpConnectionStats和GetPertCpConnectionStats返回错误代码1214(无效网络名) 我试图获得与我的C++服务中Windows中的“资源监视器”中显示的统计数据相似的数据。为此,我使用了中所示的示例。但是我被卡住了,因为SetPertCpConnectionStats和GetPertCpConnectionStats返回时出现错误代码1214。唯一的区别是btn。上面提到的链接和我的链接的示例中的代码是,我不是在处理特定的本地和远程端口,而是在处理tcp表中的所有条目,但我认为这不会有任何区别,windows,winapi,tcp,tcpdump,Windows,Winapi,Tcp,Tcpdump,有人能帮我吗?如果我处理所有条目,我可以重现这个错误。根据您链接的示例,除了本地和远程端口之外,gettcrow还有一个搜索参数。该状态是TCP连接的数据传输阶段的正常状态 以下示例适用于我 DWORD RunEstatsTest(bool v6) //set as IPv4(FALSE) { PMIB_TCPTABLE tcpTable = NULL; DWORD status, size = 0; status = GetTcpTable(tcpTable, &a

有人能帮我吗?

如果我处理所有条目,我可以重现这个错误。根据您链接的示例,除了本地和远程端口之外,
gettcrow
还有一个搜索参数。该状态是TCP连接的数据传输阶段的正常状态

以下示例适用于我

DWORD RunEstatsTest(bool v6) //set as IPv4(FALSE)
{
    PMIB_TCPTABLE tcpTable = NULL;

    DWORD status, size = 0;

    status = GetTcpTable(tcpTable, &size, TRUE);
    if (status != ERROR_INSUFFICIENT_BUFFER) {
        return status;
    }
    tcpTable = (PMIB_TCPTABLE)malloc(size);
    if (tcpTable == NULL) {
        return ERROR_OUTOFMEMORY;
    }
    status = GetTcpTable(tcpTable, &size, TRUE);
    if (status != ERROR_SUCCESS) {
        free(tcpTable);
        return status;
    }

    for (int i = 0; i < tcpTable->dwNumEntries; i++) {
        if (MIB_TCP_STATE_ESTAB == tcpTable->table[i].State)
        {
            ToggleAllEstats(&tcpTable->table[i], TRUE, v6);

            GetAllEstats(&tcpTable->table[i], v6);

            ToggleAllEstats(&tcpTable->table[i], FALSE, v6);
        }
    }
    free(tcpTable);
    return ERROR_SUCCESS;
}
DWORD runesttest(bool v6)//设置为IPv4(FALSE)
{
PMIB_TCPTABLE TCPTABLE=NULL;
DWORD状态,大小=0;
status=GetTcpTable(tcpTable和size,TRUE);
如果(状态!=错误\u缓冲区不足){
返回状态;
}
tcpTable=(PMIB_tcpTable)malloc(大小);
if(tcpTable==NULL){
返回错误\u OUTOFMEMORY;
}
status=GetTcpTable(tcpTable和size,TRUE);
如果(状态!=错误\u成功){
免费(可接受);
返回状态;
}
对于(int i=0;idwNumEntries;i++){
if(MIB_TCP_STATE_ESTAB==tcpTable->table[i].STATE)
{
ToggleAllEstats(&tcpTable->table[i],TRUE,v6);
getAllests(&tcpTable->table[i],v6);
toggallests(&tcpTable->table[i],FALSE,v6);
}
}
免费(可接受);
返回错误\成功;
}

感谢您的回复,这解决了问题。我浏览了一下表,发现对于所有状态不等于MIB_TCP_state_ESTAB的条目,remoteAddr和remoteSocket都为0。你知道在这个表中使用这些条目吗?