функция обратного вызова FWPS_CALLOUT_CLASSIFY_FN1 (fwpsk.h)
Подсистема фильтров вызывает функцию выноски classifyFn1 при наличии данных для обработки выноской.
Синтаксис
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 в зависимости от фильтруемого слоя и условий, при которых вызывается функция выноски classifyFn1 . Для слоя потока этот параметр указывает на структура FWPS_STREAM_CALLOUT_IO_PACKET0 . Для всех остальных слоев этот параметр указывает на структуру NET_BUFFER_LIST , если она не имеет значение NULL.
[in, optional] classifyContext
Указатель на контекстные данные, связанные с драйвером выноски подсистемой фильтрации.
[in] filter
Указатель на структуру FWPS_FILTER1 . Эта структура описывает фильтр, указывающий выноску для действия фильтра.
[in] flowContext
Переменная типа UINT64, содержащая контекст, связанный с потоком данных. Если с потоком данных не связан контекст, этот параметр равен нулю. Если выноска добавляется в подсистему фильтрации на уровне фильтрации, который не поддерживает потоки данных, функция выноски classifyFn1 должна игнорировать этот параметр.
[in, out] classifyOut
Указатель на структуру FWPS_CLASSIFY_OUT0 , которая получает все данные, которые функция выноски classifyFn1 возвращает вызывающей объекту.
Возвращаемое значение
None
Remarks
Драйвер выноски регистрирует функции выноски в подсистеме фильтрации, вызывая функцию FwpsCalloutRegister1 .
Подсистема фильтрации вызывает функцию выноски classifyFn1 выноски с данными, которые должны обрабатываться всякий раз, когда выполняются все условия теста для фильтра в механизме фильтров, который задает выноску для действия фильтра.
Функция выноски classifyFn1 должна очистить флаг FWPS_RIGHT_ACTION_WRITE в элементе правструктуры FWPS_CLASSIFY_OUT0 в любой из следующих ситуаций:
- Когда функция callout classifyFn1 задает элемент actionType структуры FWPS_CLASSIFY_OUT0 FWP_ACTION_BLOCK.
- Если функция выноски classifyFn1 задает элемент actionType структуры FWPS_CLASSIFY_OUT0 FWP_ACTION_PERMIT, а флаг FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT устанавливается в элементе Flags структуры FWPS_FILTER1 .
- Если выноска указывает, что она намерена изменить список клона чистого буфера, задав параметру intendToModifyзначение TRUE в вызовеФункция FwpsReferenceNetBufferList0.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 7. |
Целевая платформа | Windows |
Header | fwpsk.h (включая Fwpsk.h) |
IRQL | <= DISPATCH_LEVEL |
См. также раздел
Связывание контекста с Поток данных
Функции выноски драйвера выноски
FWPS_INCOMING_METADATA_VALUES0Регистрация выносок с помощью обработчика фильтров
Использование выноски для глубокой проверки данных Stream