SetIpInterfaceEntry возвращает ERROR_INVALID_PARAMETER

С фигурными скобками у вас есть точка с запятой, вызванная для вас, а в скобках нет. Рассмотрим функцию takeWhile, так как она ожидает частичную функцию, только {case xxx => ??? } является корректным определением вместо круглых скобок вокруг выражения case.

0
задан Aleksandar Pesic 24 February 2019 в 22:55
поделиться

1 ответ

Решил, благодаря моему коллеге ...

Причина была в том, что в моем случае поле row.SitePrefixLength изначально было установлено на 64, что является недопустимым значением, в соответствии с MIB_IPINTERFACE_ROW doc page :

[ 1114] Для адреса IPv4 любое значение, большее 32, является недопустимым.

Как только я вставил следующую строку перед вызовом SetIpInterfaceEntry , все пошло хорошо:

row.SitePrefixLength = 0;

Несмотря на то, что это решило проблему, осталось еще мало открытых вопросов :

  1. Как получилось, что текущее текущее значение недопустимо?
  2. Какое значение указать, если вы встретите там недопустимое значение? Похоже, что установка его на 0 является ответом, но я не уверен в этом.

Но, во-первых, я, вероятно, должен выяснить, какова цель SitePrefixLength field / param. :)

ОБНОВЛЕНИЕ : Я только что нашел ответ на свой второй оставшийся вопрос - он был на одной и той же странице документа все время (позор мне не все читает). Таким образом, ответ таков:

Для IPv4 элемент SitePrefixLength должен быть равен 0.

0
ответ дан Aleksandar Pesic 24 February 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: