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


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

Версия 3 функции обратного вызова, вызываемой во время классификации при совпадении фильтра выносок. Разница заключается в том, что этот обратный вызов возвращает структуру FWPS_FILTER3 .

Синтаксис

FWPS_CALLOUT_CLASSIFY_FN3 FwpsCalloutClassifyFn3;

void FwpsCalloutClassifyFn3(
  const FWPS_INCOMING_VALUES0 *inFixedValues,
  const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
  void *layerData,
  const void *classifyContext,
  const FWPS_FILTER3 *filter,
  UINT64 flowContext,
  FWPS_CLASSIFY_OUT0 *classifyOut
)
{...}

Параметры

inFixedValues

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

inMetaValues

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

layerData

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

classifyContext

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

filter

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

flowContext

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

classifyOut

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

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

None

Remarks

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

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

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

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

Требования

Требование Значение
Заголовок fwpsu.h