Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Фильтр сопоставления шаблонов уведомляет драйвер принять кадры, имеющие определенный шаблон на определенном смещении. Можно указать не более четырех подробных совпадений шаблонов, которые можно объединить в логических инструкциях AND или OR для оценки драйвера сетевого монитора.
Чтобы реализовать совпадения шаблонов, используйте следующие структуры сетевого монитора:
Чтобы оценить выражение OR, объедините от двух до четырех сопоставлений с образцом с структурой ANDEXP (PatternMatch1 || PatternMatch2 || PatternMatch3). Чтобы оценить оператор AND, объедините одну из четырех структур ANDEXP и структуру EXPRESSION (AndExp1 && AndExp2).
Определения сопоставления шаблонов
Одно сопоставление шаблонов определяется структурой PATTERNMATCH. Отдельный матч может работать одним из двух способов.
Обычно драйвер будет использовать основу смещения (которая может быть OFFSET_BASIS_RELATIVE_TO_FRAME, OFFSET_BASIS_RELATIVE_TO_EFFECTIVE_PROTOCOL, OFFSET_BASIS_RELATIVE_TO_IPX или OFFSET_BASIS_RELATIVE_TO_IP) и начинать подсчет оттуда. Драйвер подсчитывает оттуда байт смещения, а затем сопоставляет данные, которые он находит с первой длиной байтов в PatternToMatch. Если они одинаковы, и флаг PATTERN_MATCH_FLAGS_NOT не задан, этот шаблон передается. Если они отличаются и PATTERN_MATCH_FLAGS_NOT заданы, шаблон передается. В противном случае этот шаблон терпит неудачу.
Или:
Если установлен флаг PATTERN_MATCH_FLAGS_PORT_SPECIFIED, а для основы задано значение OFFSET_BASIS_RELATIVE_TO_IPX или OFFSET_BASIS_RELATIVE_TO_IP, сравнение будет более сложным. Во-первых, драйвер гарантирует, что протокол смещения присутствует, затем драйвер проверяет, соответствует ли указанный порт порту в кадре. Наконец, драйвер гарантирует, что элемент PatternToMatch совпадает, как и раньше, за исключением того, что в данном случае смещение начинается с конца IP или IPX адреса. Обратите внимание, что если основа не является одной из двух, то флаг PATTERN_MATCH_FLAGS_PORT_SPECIFIED будет игнорироваться, и шаблон будет оцениваться, как указано выше.
Чтобы анализировать совпадение одного шаблона, структура выражения должна иметь один элемент AndExp, содержащий одно сопоставление шаблона.
Создание фильтра сопоставления шаблонов включает создание структур PATTERNMATCH и их логическое сочетание с выражениями и структурами ANDEXP.
Написать фильтр PATTERNMATCH
- В структуре ANDEXP заполните массив совпадениями шаблонов.
- Заполните структуру массивом элементов AndExp.
- Не превышайте всего четыре совпадения шаблона для фильтра записи.
- В структуре PATTERNMATCH выберите тип флага.
- Выберите основу смещения.
- Определить значение порта.
- Определите значение смещения.
- Определите длину шаблона.
- Перечислите значение шаблона.
Примеры PATTERNMATCH
Этот кадр представляет стандартное смещение.
Фрагмент кода реализуется следующим образом:
Basis -> IP
Offset -> 4 (bytes)
Length -> 2 (bytes)
PatternToMatch[ ] = {x00, x00}
Этот фрейм показывает смещение, указанное портом, относительно IPX.
Пример кода реализуется следующим образом:
Port -> 544
Basis -> IPX
Offset -> 2 (bytes)
Length -> 2 (bytes)
PatternToMatch[ ] = {x00, x00}