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


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

Модуль фильтров вызывает функцию выноски классифицироватьFn0 при обработке данных выноской.

ПримечаниеклассификацииFn0 является конкретной версией классифицироватьFn, используемой в Windows Vista и более поздних версиях. Дополнительные сведения см. в статье МПП Version-Independent имен и целевых версий Windows. Для Windows 8 доступна классифицироватьFn2. Для Windows 7 доступен классифицироватьFn1.
 

Синтаксис

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_CALLOUT0

FWPS_CLASSIFY_OUT0

FWPS_FILTER0

FWPS_INCOMING_METADATA_VALUES0

FWPS_INCOMING_VALUES0

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsReferenceNetBufferList0

NET_BUFFER_LIST

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

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

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

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

классифицироватьFn

классифицироватьFn1

классифицироватьFn2