![]() |
Модераторы: marykone |
![]() ![]() ![]() |
|
Guest |
|
|||
Unregistered |
Использую функцию PfAddFiltersToInterface для добавления правил фильтрации сетевому интерфейсу(фаервол пишу). Фаервол не работает, помогите найти ощибку.
вот вся софтина http://users.oskol.ru/~maximoff/firewall.rar DWORD PfAddFiltersToInterface( INTERFACE_HANDLE ih, DWORD cInFilters, PPF_FILTER_DESCRIPTOR pfiltIn, DWORD cOutFilters, PPF_FILTER_DESCRIPTOR pfiltOut, PFILTER_HANDLE pfHandle ); Парметры PPF_FILTER_DESCRIPTOR pfiltIn и PPF_FILTER_DESCRIPTOR pfiltOut указетли на массивы входных и выходных правил, соответсвенно (это вольный первод, вот оригинал Pointer to an array of filter descriptions to use as input(output) filters MSDN). Для организации массивов использую DynamicArray(Borland C++Builder6): DynamicArray <PF_FILTER_DESCRIPTOR> pfiltIn; DynamicArray <PF_FILTER_DESCRIPTOR> pfiltOut; Затем передаю в функцию: PfAddFiltersToInterface( *ppInterface, pfiltIn.Length, (PPF_FILTER_DESCRIPTOR)&(pfiltIn[0]), pfiltOut.Length, (PPF_FILTER_DESCRIPTOR)&(pfiltOut[0]), NULL); Естественно, фаервол не работает, точнее он либо только все запрещает, либо все разрешает: не получается привязать правила интерфейсу. Может быть это из-за DynamicArray? Далее: в структуре правила мне понятно поле dwRule - определяет правило для фильтра, что ему присваивать? У меня dwRule=0. typedef struct _PF_FILTER_DESCRIPTOR { DWORD dwFilterFlags; DWORD dwRule;//Specifies the rule for the filter. PFADDRESSTYPE pfatType; PBYTE SrcAddr; PBYTE SrcMask; PBYTE DstAddr; PBYTE DstMask; DWORD dwProtocol; DWORD fLateBound; WORD wSrcPort; WORD wDstPort; WORD wSrcPortHighRange; WORD wDstPortHighRange; } PF_FILTER_DESCRIPTOR |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Сетевые технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |