Re[4]: Добавление постоянного маршрута под Vista и 7
От: MTimur  
Дата: 14.07.10 16:39
Оценка:
Здравствуйте, Maks1509, Вы писали:

M>Здравствуйте, MTimur, Вы писали:


MT>>Правильная ссылка


M>Я как раз добавляю маршрут через CreateIpForwardEntry. Проблема в том, что для сохранения постоянности маршрута, его нужно записывать в реестр, иначе после перезагрузки в таблице маршрутов в системе такого маршрута не будет. В Windows 2000 и Windows XP все нормально, но всякие висты и семерки всю малину портят, а ведь на них сейчас активно пересаживаются пользователи. Что-то гугл на китайских сайтах находит про eb004a00-9b1a-11d4-9123-0050047759bc, там я так понял дизассемблировали iphlpapi.dll, но я ничего не понял даже с переводчиком к какому решению там пришли и что за дела там такие. =)


Не совсем понятно, что не работает именно в висте.
Не сохраняется маршрут? — Тогда здесь:

MIB_IPPROTO_NETMGMT

A static route. This value is used to identify route information for IP routing set through network management such as the Dynamic Host Configuration Protocol (DCHP), the Simple Network Management Protocol (SNMP), or by calls to the CreateIpForwardEntry, DeleteIpForwardEntry, or SetIpForwardEntry functions.


Или CreateIpForwardEntry с ошибкой отрабатывает? — Тогда там и искать ошибку, например, вот такая "мелочь" может быть:

On Windows Vista and Windows Server 2008, the route metric specified in the dwForwardMetric1 member of the MIB_IPFORWARDROW structure represents a combination of the route metric added to the interface metric specified in the Metric member of the MIB_IPINTERFACE_ROW structure of the associated interface. So the dwForwardMetric1 member of the MIB_IPFORWARDROW structure should be equal to or greater than Metric member of the associated MIB_IPINTERFACE_ROW structure. If an application would like to set the route metric to 0, then the dwForwardMetric1 member of the MIB_IPFORWARDROW structure should be set equal to the value of the interface metric specified in the Metric member of the associated MIB_IPINTERFACE_ROW structure. An application can retrieve the interface metric by calling the GetIpInterfaceEntry function.


Если не ошибаюсь, этот самый dwForwardMetric1 должен быть не меньше магической 10.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.