NDIS 6.2 LWF Изменения для поддержки мобильного широкополосного доступа

Я создаю приложение для платформ Windows, которое имеет

  • Драйвер виртуального мини-порта NDIS
  • Промежуточный драйвер NDIS (Windows XP)
  • Драйвер NDIS Lightweight Filter (LWF) (Windows Vista и выше)

Теперь я хочу получить поддержку мобильного широкополосного доступа для драйвера LWF в Windows 7. который использует NDIS 6.2.

  • У меня есть INF-файл для LWF и виртуального минипорта.

Я изменил файл LWF INF для мобильного широкополосного доступа следующим образом: (Добавлено «ppip» в FilermediaType раздел )

[INSTALL.NDI]

HKR, Ndi, FilterClass, , custom
HKR, Ndi, FilterType, 0x00010001, 0x00000002
HKR, Ndi\Interfaces, UpperRange, , "noupper"HKR, Ndi\Interfaces, LowerRange, , "nolower"HKR, Ndi\Interfaces, FilterMediaTypes, , "nolower, ethernet, wan, ppip"HKR, Ndi, FilterRunType, 0x00010001, 1

И я добавил NdisWirelssWan за FilterAttach ( ) Функция как это:

if (
(AttachParameters->MiniportMediaType != NdisMedium802_3)
&& (AttachParameters->MiniportMediaType != NdisMediumWan)
&& (AttachParameters->MiniportMediaType != NdisMediumNative802_11)
&& (AttachParameters->MiniportMediaType != NdisMediumWirelessWan)
) {
status = NDIS_STATUS_INVALID_PARAMETER;
DbgPrintEx(DPFLTR_IHVNETWORK_ID, DPFLTR_TRACE_LEVEL, "!!! [%p] CFilter::Attach(): unsupported medium\n", this);
goto VExit;
}

И мой мини-порт INF-файл содержит:

[MYVNET.ndi]

Characteristics = 0x81 ; NCF_HAS_UI | NCF_VIRTUAL
*IfType = 0x06 ; IF_TYPE_ETHERNET_CSMACD
*MediaType = 0x00 ; NdisMedium802_3
*PhysicalMediaType = 0x0E ; NdisPhysicalMedium802_3

[MYVNET.Reg]

HKR, Ndi\Interfaces, UpperRange, 0, "ndis5"HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"

Поэтому после поиска в документе поддержки мобильного широкополосного доступа (МБ) я получил 2 статьи:

https://msdn.microsoft.com/en-us/library/windows/hardware/ff557185(v=vs.85).aspx

https://msdn.microsoft.com/en-us/library/windows/hardware/ff559110(v=vs.85).aspx

NdisSetNblFlag(pNbl, NDIS_NBL_FLAGS_IS_IPV4);
Value = ConvertToNetworkByteOrder(0x0800);
NET_BUFFER_LIST_INFO(pNbl, NetBufferListFrameType) = Value;

Это INF file верно ? где я должен добавить этот фрагмент кода?

  • В фильтрующем файле есть функция отправки / получения сетевого буфера?
  • или это в минипорте нетбуфера функции отправки / получения?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]