呼叫CreateIpForwardEntry返回ERROR_INVALID_PARAMETER。所述PSDK文檔描述誤差爲:如何判斷* MIB_IPFORWARDROW結構中哪個*成員無效?
的pRoute參數爲NULL, SetIpForwardEntry無法讀取 從存儲器所指向的pRoute, 或 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在文檔中查找我無法找到的內容。我正在使用我的PSDK版本(Server 2003 R2)附帶的文檔版本,並且鏈接中的文檔版本是最新和最好的版本。我會給你+10,但StackOverflow只允許+1。 :)現在......我急於閱讀並嘗試你指出的內容,並試圖理解爲什麼我無法發現那些信息(睡眠不足?)。如果是這樣,我會報告回來並相應地接受。 – 2010-10-15 22:46:02
更新:我剛剛檢查了PSDK Server 2003 R2文檔:(1)我的確遺漏了舊版文檔中提到的dwForwardType要求。 (2)無法找到MIB_IPPROTO_NETMGMT。我會嘗試隱含的代碼修復並回報。 – 2010-10-15 22:59:12
最終評論,允許接受這個答案,原來的問題是*如何*告訴...確定哪個參數不正確的最快捷方式是使用Windows命令ROUTE ADD在命令行上嘗試它們。 – 2010-11-05 19:27:10