Драйвер устройства WinXPe NDIS 5.1 IPv6

Написание драйвера устройства WinXPe NDIS 5.1. Начал с исходного кода драйвера Intel E100 из DDK и адаптировался к трехскоростному ядру Ethernet Altera. Прием пакетов через разбросанный сбор DMA работает хорошо, видно хорошие данные. Передача пакета через отдельный разбросанный сбор DMA утверждает, что работает хорошо. Проблема в том, что ipconfig показывает IP-адрес только IPv6 для сетевой карты. Панель управления, конфигурация сети, интернет-протокол, установлен статический IP-адрес IPv4 и нет DHCP. Но ipconfig его не видит. Не удается найти какие-либо OID, которые, по-видимому, сообщают WinXPe что-либо о IPv6 по сравнению с IPv4. Панель управления, конфигурация сети правильно обновляется для подключения и отключения Ethernet, но, похоже, ничего не нравится ipconfig. Откуда ipconfig получает информацию об IPv6 и как драйвер может на нее повлиять? Спасибо.


person Frank Natoli    schedule 27.04.2012    source источник
comment
Дополнительная информация: Win32_NetworkAdapterConfiguration показывает, что для IPEnabled установлено значение 0 для моего устройства NDIS, но установлено значение -1 для устройств NDIS, для которых ipconfig показывает IP-адрес IPV4. Что настраивает или влияет на IPEnabled? Netsh интерфейс Win7 ipv4, по-видимому, может влиять на конфигурацию, но WinXPe netsh гораздо более ограничен.   -  person Frank Natoli    schedule 01.05.2012
comment
Дополнительная информация: реализован Win32_NetworkAdapterConfiguration EnableStatic, но происходит сбой с результатом = 84, IP не включен. Вручную отредактируйте реестр CurrentControlSet, Control, Services, Tcpip, Parameters, Interfaces, ‹GUID›, чтобы установить для IPEnabled значение 1, но это не помогает. Мой ‹GUID› содержит менее половины элементов функционального ‹GUID›. Что отвечает за заполнение этих элементов?   -  person Frank Natoli    schedule 02.05.2012
comment
Эти вопросы обычно лучше размещать в списке рассылки NTDEV на OSR Online :)   -  person 0xC0000022L    schedule 12.05.2012


Ответы (1)


Проблема заключалась в неполной реализации OID_GEN_CURRENT_PACKET_FILTER, которая не позволяла драйверу более высокого уровня передавать пакеты IPv4 в/из драйвера. Хотя ни один из битов флага в OID_GEN_CURRENT_PACKET_FILTER не имеет отношения к IPv4 [или IPv6], это имело значение. Позвонил в Microsoft в моей учетной записи MSDN, чтобы решить эту проблему.

person Frank Natoli    schedule 11.05.2012