代码之家  ›  专栏  ›  技术社区  ›  Android Eve

如何判断mib_IpForwardRow结构中的*成员是无效的?

  •  0
  • Android Eve  · 技术社区  · 14 年前

    电话 CreateIpForwardEntry 返回错误\无效的\参数。PSDK文档将此错误描述为:

    proute参数为空, SetIPForwardEntry无法读取 从普鲁特所指的记忆中, 或 MIB_IPForwardRow结构无效。

    我确信Proute不是空的,并且不涉及对setipForwardEntry的调用,这将导致错误的唯一原因是“mib-ipForwardRow结构的成员之一无效”。

    我怎么知道 哪一个 Mib_IpForwardRow的成员中有哪些无效?

    为了进一步澄清我的问题:我确切地知道每个成员都有什么价值(我记录他们)。然而,在这一点上,我不知道哪一个是错误的。它们对我来说都是有效的。很高兴知道 为什么? 其中一个成员无效。但为此我首先需要知道 哪一个 其中无效。

    例如,在其中一个测试用例(产生上述错误)中,我有:

    dwForwardDest = 199.239.136.200
    dwForwardMask = 255.255.255.255
    dwForwardPolicy = 0
    dwForwardNextHop = 127.0.0.1
    dwForwardIfIndex = 1
    dwForwardType = 0
    dwForwardProto = 0X2
    dwForwardAge = 0
    dwForwardNextHopAS = 0
    dwForwardMetric1 =  1
    dwForwardMetric2 =  -1
    dwForwardMetric3 = -1
    dwForwardMetric4 = -1
    dwForwardMetric5 = 0
    

    知道为什么createipForwardEntry()不同意接受上述参数吗?

    更新:下面提供的提示非常有用,但没有真正提供 方法 如何讲述 哪一个 mib_IpForwardRow结构中的成员无效。我确实纠正了上面提到的两个成员,但问题仍然存在:

    Dest = 199.239.136.200
    Mask = 255.255.255.255
    Policy = 0
    NextHop = 127.0.0.1
    IfIndex = 1
    Type = 0X3
    Proto = 0X3
    Age = 0
    NextHopAS = 0
    Metric1 = 1
    Metric2 = -1
    Metric3 = -1
    Metric4 = -1
    Metric5 = -1
    

    知道为什么createipForwardEntry()不同意接受上述参数吗?

    小贴士、想法、见解将受到极大的赞赏。

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Luke    14 年前

    我对IP路由一无所知,但是 documentation for MIB_IPFORWARDROW 未将0列为dwForwardType的有效值。此外, documentation for CreateIpForwardEntry 指示dwForwardProto必须为3(mib_ipProto_netmgmt)。