Как определить, * какой * член в структуре MIB_IPFORWARDROW является недействительным? - PullRequest
0 голосов
/ 15 октября 2010

Вызов CreateIpForwardEntry возвращает ERROR_INVALID_PARAMETER. Документация PSDK описывает эту ошибку как:

Параметр pRoute равен NULL, SetIpForwardEntry не может прочитать из памяти, на которую указывает pRoute, или один из членов Структура MIB_IPFORWARDROW недопустима.

Я точно знаю, что pRoute не равен NULL и что вызов 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 Ответ

1 голос
/ 15 октября 2010

Я ничего не знаю о IP-маршрутизации, но в документации для MIB_IPFORWARDROW нет 0 в качестве допустимого значения для dwForwardType.Кроме того, документация для CreateIpForwardEntry указывает, что dwForwardProto должно быть равно 3 (MIB_IPPROTO_NETMGMT).

...