Поделиться через


функция обратного вызова FWPS_CALLOUT_CLASSIFY_FN2 (fwpsk.h)

Подсистема фильтров вызывает функцию выноски classifyFn2 , когда есть данные для обработки выноски.

ПримечаниеclassifyFn2 — это конкретная версия classifyFn, используемая в Windows 8 и более поздних версиях. Дополнительные сведения см. в разделах Имена Version-Independent и Выбор конкретных версий Windows . Для Windows 7 доступен класс classifyFn1 . Для Windows Vista доступна функция classifyFn0 .

 

Синтаксис

FWPS_CALLOUT_CLASSIFY_FN2 FwpsCalloutClassifyFn2;

void FwpsCalloutClassifyFn2(
  [in]                const FWPS_INCOMING_VALUES0 *inFixedValues,
  [in]                const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
  [in, out, optional] void *layerData,
  [in, optional]      const void *classifyContext,
  [in]                const FWPS_FILTER2 *filter,
  [in]                UINT64 flowContext,
  [in, out]           FWPS_CLASSIFY_OUT0 *classifyOut
)
{...}

Параметры

[in] inFixedValues

Указатель на структуру FWPS_INCOMING_VALUES0 . Эта структура содержит значения для каждого поля данных в фильтруемом слое.

[in] inMetaValues

Указатель на FWPS_INCOMING_METADATA_VALUES0 структура. Эта структура содержит значения для каждого поля метаданных в фильтруемом слое.

[in, out, optional] layerData

Указатель на структуру, описывающую необработанные данные в фильтруемом слое. Этот параметр может иметь значение NULL в зависимости от фильтруемого слоя и условий, при которых вызывается функция выноски classifyFn2 . Для слоя потока этот параметр указывает на структура FWPS_STREAM_CALLOUT_IO_PACKET0 . Для всех остальных слоев этот параметр указывает на структуру NET_BUFFER_LIST , если она не имеет значение NULL.

[in, optional] classifyContext

Указатель на контекстные данные, связанные с драйвером выноски подсистемой фильтрации.

[in] filter

Указатель на структуру FWPS_FILTER2 . Эта структура описывает фильтр, указывающий выноску для действия фильтра.

[in] flowContext

Переменная типа UINT64, содержащая контекст, связанный с потоком данных. Если с потоком данных не связан контекст, этот параметр равен нулю. Если выноска добавляется в подсистему фильтрации на уровне фильтрации, который не поддерживает потоки данных, функция выноски classifyFn2 должна игнорировать этот параметр.

[in, out] classifyOut

Указатель на структуру FWPS_CLASSIFY_OUT0 , которая получает все данные, которые функция выноски classifyFn2 возвращает вызывающей объекту.

Возвращаемое значение

None

Remarks

Драйвер выноски регистрирует функции выноски в подсистеме фильтров, вызывая функцию FwpsCalloutRegister2 .

Модуль фильтрации вызывает функцию выноски classifyFn2 выноски с данными, которые должны обрабатываться всякий раз, когда выполняются все условия теста для фильтра в механизме фильтров, который задает выноску для действия фильтра.

Функция выноски classifyFn2 в выноске должна очистить флаг FWPS_RIGHT_ACTION_WRITE в элементе правструктуры FWPS_CLASSIFY_OUT0 в любой из следующих ситуаций:

  • Когда функция выноски classifyFn2 задает для элемента actionType структуры FWPS_CLASSIFY_OUT0 значение FWP_ACTION_BLOCK.
  • Если функция выноски classifyFn2 задает элемент actionType структуры FWPS_CLASSIFY_OUT0 значение FWP_ACTION_PERMIT, а флаг FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT устанавливается в элементе Flags структуры FWPS_FILTER2 .
  • Если выноска указывает, что она намерена изменить список клона чистого буфера, задав параметру intendToModify значение TRUE в вызовеФункция FwpsReferenceNetBufferList0.

    Эта функция по существу идентична предыдущей версии , classifyFn1. Однако на обновленную структуру FWPS_FILTER2 указывает параметр фильтра , а параметр layerData является необязательным.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 8.
Целевая платформа Windows
Header fwpsk.h (включая Fwpsk.h)
IRQL <= DISPATCH_LEVEL

См. также раздел

Связывание контекста с Поток данных

Функции выноски драйвера выноски

Ведение журнала данных

FWPS_CLASSIFY_OUT0

FWPS_FILTER2

FWPS_INCOMING_METADATA_VALUES0

FWPS_INCOMING_VALUES0

FwpsCalloutRegister2

FwpsReferenceNetBufferList0

NET_BUFFER_LIST

Примеры изменения пакетов

Регистрация выносок с помощью обработчика фильтров

Использование выноски для глубокой проверки данных Stream

Использование выноски для глубокой проверки

classifyFn

classifyFn0

classifyFn1