Home › Forums › Discussions › Support › Ethernet Bridge › Reply To: Ethernet Bridge
1) Не знаю почему, но если установить событие через SetHwPacketFilterEvent, то мост перестает работать или работает так медленно, что связь нестабильная (не знаю точно).
Ага, ну тут ошибка в NDISAPI закралась, хотя я же советовал не использовать WOW64… Но, есть и плюс, нашлась опечатка (IOCTL_NDISRD_SET_EVENT вместо IOCTL_NDISRD_SET_ADAPTER_HWFILTER_EVENT для WOW64). Неверный IOCTL сбрасывал событие для адаптера…
Обновил DLL: https://1drv.ms/u/s!AqMWR3uDO7eagZU81aJhHgoGudFVbg
#ifndef _WIN64
if (m_bIsWow64Process)
{
ADAPTER_EVENT_WOW64 AdapterEvent64;
AdapterEvent64.hAdapterHandle.QuadPart = m_Handle32to64[(unsigned)AdapterEvent.hAdapterHandle].QuadPart;
AdapterEvent64.hEvent.HighPart = 0;
AdapterEvent64.hEvent.LowPart = (ULONG_PTR)AdapterEvent.hEvent;
bIOResult = DeviceIoControl(
IOCTL_NDISRD_SET_EVENT,
&AdapterEvent64,
sizeof(ADAPTER_EVENT_WOW64),
NULL,
0,
NULL, // Bytes Returned
NULL
);
}
else
#endif //_WIN64
{
bIOResult = DeviceIoControl(
IOCTL_NDISRD_SET_ADAPTER_HWFILTER_EVENT,
&AdapterEvent,
sizeof(ADAPTER_EVENT),
NULL,
0,
NULL, // Bytes Returned
NULL
);
}
2) Иногда сбивается режим фильтра с NDIS_PACKET_TYPE_PROMISCUOUS на значение 0, но мост все равно работает: пинг до интернета и до локальных компьютеров идет норм.
Ноль – это не валидный фильтр, скорей всего получить фильтр не удалось.