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


функция обратного вызова FWPS_CALLOUT_CLASSIFY_FN3 (fwpsk.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в зависимости от отфильтрованного слоя и условий, в которых вызывается функция классифицироватьFn3. Для слоя потоков этот параметр указывает на структуру FWPS_STREAM_CALLOUT_IO_PACKET0. Для всех других слоев этот параметр указывает на структуру NET_BUFFER_LIST, если она не NULL.

classifyContext

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

filter

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

flowContext

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

classifyOut

Указатель на структуру FWPS_CLASSIFY_OUT0, которая получает все данные, которые функция вызова классифицируетFn3.

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

Никакой

Замечания

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows Vista.
заголовка fwpsk.h
IRQL <= DISPATCH_LEVEL

См. также