функция обратного вызова FWPS_CALLOUT_CLASSIFY_FN1 (fwpsk.h)
Подсистема фильтрации вызывает функцию выноски классифицироватьFn1 всякий раз, когда есть данные для обработки выноской.
Синтаксис
FWPS_CALLOUT_CLASSIFY_FN1 FwpsCalloutClassifyFn1;
void FwpsCalloutClassifyFn1(
[in] const FWPS_INCOMING_VALUES0 *inFixedValues,
[in] const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
[in, out] void *layerData,
[in, optional] const void *classifyContext,
[in] const FWPS_FILTER1 *filter,
[in] UINT64 flowContext,
[in, out] FWPS_CLASSIFY_OUT0 *classifyOut
)
{...}
Параметры
[in] inFixedValues
Указатель на структуру FWPS_INCOMING_VALUES0. Эта структура содержит значения для каждого поля данных в фильтруемом слое.
[in] inMetaValues
Указатель на объект структура FWPS_INCOMING_METADATA_VALUES0. Эта структура содержит значения для каждого поля метаданных в фильтруемом слое.
[in, out] layerData
Указатель на структуру, описывающую необработанные данные в фильтруемом слое. Этот параметр может быть nullв зависимости от от отфильтрованного слоя и условий, при которых вызывается функция классифицироватьFn1. Для слоя потока этот параметр указывает на FWPS_STREAM_CALLOUT_IO_PACKET0 структура. Для всех других слоев этот параметр указывает на структуру NET_BUFFER_LIST, если она не NULL.
[in, optional] classifyContext
Указатель на контекстные данные, связанные с драйвером выноски обработчиком фильтров.
[in] filter
Указатель на структуру FWPS_FILTER1. Эта структура описывает фильтр, указывающий выноску для действия фильтра.
[in] flowContext
Переменная UINT64, содержащая контекст, связанный с потоком данных. Если контекст не связан с потоком данных, этот параметр равен нулю. Если выноска добавляется в обработчик фильтров на уровне фильтрации, который не поддерживает потоки данных, функция классифицироватьFn1 следует игнорировать этот параметр.
[in, out] classifyOut
Указатель на структуру FWPS_CLASSIFY_OUT0, которая получает все данные, которые функция классифицируетFn1 вызывающей функции.
Возвращаемое значение
Никакой
Замечания
Драйвер выноски регистрирует функции выноски с подсистемой фильтрации, вызвав функцию FwpsCalloutRegister1.
Модуль фильтрации вызывает функцию выноски классифицироватьFn1 с данными, которые необходимо обрабатывать, когда все условия теста верны для фильтра в обработчике фильтров, который задает выноску для действия фильтра.
Функция выноски классифицироватьFn1 должна очистить флаг FWPS_RIGHT_ACTION_WRITE в правах члена структуры FWPS_CLASSIFY_OUT0 в любой из следующих ситуаций:
- Если функция выноски классифицируетFn1actionType элемент структуры FWPS_CLASSIFY_OUT0 FWP_ACTION_BLOCK.
- Если функция выноски classifyFn1 задает элемент actionType FWP_ACTION_PERMIT структуры FWPS_CLASSIFY_OUT0, а флаг FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT задан в элемент е флагов FWPS_FILTER1.
- Когда выноска указала, что планируется изменить список клона чистого буфера путем задания параметра ToModify значение TRUE в вызове функцию FwpsReferenceNetBufferList0.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 7. |
целевая платформа | Виндоус |
заголовка | fwpsk.h (include Fwpsk.h) |
IRQL | <= DISPATCH_LEVEL |
См. также
связывание контекста с потоком данных
FWPS_INCOMING_METADATA_VALUES0Пример ы изменения пакетов
регистрации выносок с помощью модуля фильтров
использование выноски для глубокой проверки потоковых данных