Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Минипортные драйверы МБ, поддерживающие необработанные IP-пакеты в пути отправки и получения данных, должны соблюдать следующие рекомендации:
Флаги сетевого списка буферов (NBL) для обработки пакетов RAW IP
Для пакетов IPv4:
NblFlags элемент структуры NET_BUFFER_LIST должен иметь значение NDIS_NBL_FLAGS_IS_IPV4.
Элемент NetBufferListFrameType структуры NET_BUFFER_LIST должен иметь значение 0x0800 (Ethertype IPv4) в порядке байтов сети.
Для пакетов IPv6:
NblFlags элемент структуры NET_BUFFER_LIST должен иметь значение NDIS_NBL_FLAGS_IS_IPV6.
Элемент NetBufferListFrameType структуры NET_BUFFER_LIST должен иметь значение 0x86dd (Ethertype IPv6) в сетевом порядке байтов.
Драйверы минипорта могут использовать макрос NdisSetNblFlag для задания флагов в списке сетевых буферов. В следующей строке показано, как установить флаг пакета IPv4 в списке сетевых буферов.
NdisSetNblFlag(pNbl, NDIS_NBL_FLAGS_IS_IPV4);
Драйверы минипорта могут использовать NET_BUFFER_LIST_INFO для получения и установки информации в списке сетевых буферов. В следующей строке показано, как изменить NetBufferListFrameType OOB в списке сетевых буферов для пакетов IPV4:
Value = ConvertToNetworkByteOrder(0x0800);
NET_BUFFER_LIST_INFO(pNbl, NetBufferListFrameType) = Value;
Отправка обработки путей
Служба МБ устанавливает эти флаги в NBL перед передачей списка в драйвер минипорта для отправки по сети. Минипорт-драйвер может проверить флаги в входной NBL.
Обработка канала приёма
Драйверы минипортов должны задавать флаги в NBL перед передачей его в службу MB для полученных пакетов.
Если ваш минипорт-драйвер реализует обработку необработанных IP-пакетов на этапе разработки драйверов, но по-прежнему включен спуфинг DHCP-сервера (EnableDhcp = 1), ваш минипорт-драйвер должен обеспечить следующее:
Аппаратный адрес и его длина в ответе DHCP от драйвера минипорта должны соответствовать значениям CurrentMacAddress и MacAddressLength членов, указанных драйвером минипорта в структуре NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES.
Идентификатор транзакции (участник xid) в ответе DHCP от минипорт-драйвера должен точно совпадать с идентификатором транзакции, указанным в DHCP-запросе клиента.