Вызов CreateIpForwardEntry возвращает ERROR_INVALID_PARAMETER. Документация PSDK описывает эту ошибку как:Как указать *, который * член в структуре MIB_IPFORWARDROW недействителен?
Параметр 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 для нахождения в документации того, что я не смог найти. Я использую версию документации, которая поставляется с моей версией PSDK (Server 2003 R2), а другая в ваших ссылках - самая последняя и самая большая. Я бы дал вам +10, но StackOverflow разрешает только +1. :) Теперь ... Я спешу читать и пробовать то, на что вы указали мне, и попытаться понять, почему я не смог определить эту информацию (лишение сна?). Я отчитаю, если это было так, и отметьте принятые соответственно. –
Обновление: я просто проверил документацию PSDK Server 2003 R2: (1) Я действительно пропустил требование dwForwardType, о котором говорится в старой документации. (2) MIB_IPPROTO_NETMGMT нигде не встречается. Я попытаюсь исправить исправления кода и отчитаться. –
Заключительный комментарий, который позволяет принять этот ответ, поскольку исходный вопрос был * Как * сказать ...Самый быстрый способ определить, какой из параметров неверен, - попробовать их в командной строке, используя команду Windows ROUTE ADD. –