функция обратного вызова FWPS_CALLOUT_CLASSIFY_FN0 (fwpsk.h)
Модуль фильтров вызывает функцию выноски классифицироватьFn0 при обработке данных выноской.
Синтаксис
FWPS_CALLOUT_CLASSIFY_FN0 FwpsCalloutClassifyFn0;
void FwpsCalloutClassifyFn0(
[in] const FWPS_INCOMING_VALUES0 *inFixedValues,
[in] const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
[in, out] void *layerData,
[in] const FWPS_FILTER0 *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в зависимости от от отфильтрованного слоя и условий, в которых вызывается функция классифицироватьFn0. Для слоя потока этот параметр указывает на FWPS_STREAM_CALLOUT_IO_PACKET0 структура. Для всех других слоев этот параметр указывает на структуру NET_BUFFER_LIST, если она не NULL.
[in] filter
Указатель на структуру FWPS_FILTER0. Эта структура описывает фильтр, указывающий выноску для действия фильтра.
[in] flowContext
Переменная UINT64, содержащая контекст, связанный с потоком данных. Если контекст не связан с потоком данных, этот параметр равен нулю. Если выноска добавляется в обработчик фильтров на уровне фильтрации, который не поддерживает потоки данных, функция классифицируетFn0 функцию выноски следует игнорировать этот параметр.
[in, out] classifyOut
Указатель на структуру FWPS_CLASSIFY_OUT0, которая получает все данные, которые функция вызова классифицируетFn0.
Возвращаемое значение
Никакой
Замечания
Драйвер выноски регистрирует функции выноски в обработчике фильтров, вызвав функцию FwpsCalloutRegister0.
Модуль фильтров вызывает функцию выноски классифицироватьFn0 с данными, которые будут обрабатываться, когда все условия теста верны для фильтра в обработчике фильтров, который указывает выноску для действия фильтра.
Функция выноски классифицироватьFn0 должна очистить флаг FWPS_RIGHT_ACTION_WRITE в правах член структуры FWPS_CLASSIFY_OUT0 в любой из следующих ситуаций:
- Если функция выноски классифицируетFn0, actionType член структуры FWPS_CLASSIFY_OUT0 FWP_ACTION_BLOCK.
- Если функция выноски классифицируетFn0 задает элемент actionTypeFWPS_CLASSIFY_OUT0 структуры FWP_ACTION_PERMIT, а флаг FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT установлен в элементе Flags структуры FWPS_FILTER0.
- Когда выноска указала, что она намерена изменить список клона чистого буфера, задав параметр intendToModify значение TRUE в вызове функции FwpsReferenceNetBufferList0.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows Vista. |
целевая платформа | Виндоус |
заголовка | fwpsk.h (include Fwpsk.h) |
IRQL | <= DISPATCH_LEVEL |
См. также
связывание контекста с потоком данных
FWPS_INCOMING_METADATA_VALUES0Пример ы изменения пакетов
регистрации выносок с помощью модуля фильтров
использование выноски для глубокой проверки потоковых данных