структура FWPS_CALLOUT2 (fwpsk.h)
Структура FWPS_CALLOUT2 определяет данные, необходимые драйверу выноски для регистрации выноски в обработчике фильтров.
Синтаксис
typedef struct FWPS_CALLOUT2_ {
GUID calloutKey;
UINT32 flags;
FWPS_CALLOUT_CLASSIFY_FN2 classifyFn;
FWPS_CALLOUT_NOTIFY_FN2 notifyFn;
FWPS_CALLOUT_FLOW_DELETE_NOTIFY_FN0 flowDeleteFn;
} FWPS_CALLOUT2;
Члены
calloutKey
Guid, определяемый драйвером выноски, который однозначно идентифицирует выноску.
flags
Флаги, указывающие параметры выноски. Возможные флаги:
Значение | Значение |
---|---|
|
Драйвер выноски может указать этот флаг при регистрации выноски, которая будет добавлена на уровне, поддерживающем потоки данных. Если этот флаг указан, обработчик фильтров вызывает функцию выноски classifyFn2 драйвера выноски только при наличии контекста, связанного с потоком данных. Драйвер выноски связывает контекст с потоком данных, вызывая функцию FwpsFlowAssociateContext0 . |
|
Драйвер выноски задает этот флаг, чтобы указать, что функция выноски classifyFn2 драйвера выноски не затрагивается путем разгрузки обработки сетевых данных для сетевых карт с поддержкой разгрузки. Если этот флаг не указан, разгрузка обработки сетевых данных отключается для всего трафика, обрабатываемого фильтрами, задающими выноску для действия фильтра. |
|
Драйвер выноски задает этот флаг, чтобы указать, что он может получать уведомления об объектах и фильтрах, добавленных в транзакцию. Подсистема фильтрации отправляет уведомление после фиксации транзакции. |
|
Драйвер выноски задает этот флаг, чтобы указать, что он может выполнять динамическую проверку потоков данных на уровне потока. См. Stream Инспекция. |
|
Драйвер выноски указывает этот флаг для регистрации для вызова при переклассифицировании существующей операции сокета. |
|
Зарезервировано для системного использования. Драйверы выносок должны игнорировать этот флаг. |
|
Драйвер выноски задает этот флаг, чтобы указать, что выноска поддерживает объединение сегментов приема TCP (RSC) с большими пакетами размером до 64 КБ. Если этот флаг не указан и выноска зарегистрирована, RSC отключается для всего трафика, обрабатываемого фильтрами, которые указывают выноску для действия фильтра. |
|
Драйвер выноски задает этот флаг при регистрации выноски, которая будет добавлена на уровне 2, чтобы указать, что его функция выноски classifyFn2 может классифицировать несколько цепочек NET_BUFFER_LIST структур. Дополнительные сведения см. в разделе Использование фильтрации уровня 2.
Внимание!
Если драйвер выноски устанавливает этот флаг, он не может использовать следующие функции для изменения NET_BUFFER_LISTs.
Если этот флаг установлен, FwpsAllocateCloneNetBufferList0 всегда будет возвращать ошибку INVALID_PARAMETER . Это может неожиданно привести к тому, что сторонний драйвер выноски не сможет управлять количеством ссылок NET_BUFFER_LISTs, что приведет к остановке операций отправки и получения. |
|
Драйвер выноски задает этот флаг, чтобы указать, что выноска поддерживает разгрузку сегментации UDP (USO) с пакетами, превышающими MTU сетевого носителя. Если этот флаг не указан и выноска зарегистрирована, uso отключается для всего трафика, обрабатываемого любыми фильтрами, задающими выноску для действия фильтра. Примечание: Самая ранняя версия, в которой поддерживается этот флаг, — Windows Insider Preview версии 10.0.25876. |
|
Драйвер выноски задает этот флаг, чтобы указать, что выноска поддерживает разгрузку приема UDP (URO) с большими пакетами размером до 64 КБ. Если этот флаг не указан и выноска зарегистрирована, то URO отключается для всего трафика, обрабатываемого любыми фильтрами, задающими выноску для действия фильтра. Примечание: Если этот флаг указан, выноски не должны клонировать и повторно пересылать входящие пакеты URO. |
classifyFn
Указатель на функцию выноски classifyFn2 драйвера выноски. Подсистема фильтрации вызывает эту функцию всякий раз, когда есть сетевые данные для обработки выноской.
notifyFn
Указатель на функцию notifyFn2 драйвера выноски. Обработчик фильтров вызывает эту функцию для уведомления драйвера выноски о событиях, связанных с выноской.
flowDeleteFn
Указатель на функцию выноски flowDeleteFn драйвера выноски. Подсистема фильтрации вызывает эту функцию всякий раз, когда поток данных, обрабатываемый выноской, завершается.
Если драйвер выноски не связывает контекст с потоками данных, которые обрабатывает выноска, этот элемент должен иметь значение NULL.
Комментарии
Драйвер выноски передает указатель на инициализированную структуру FWPS_CALLOUT2 функцию FwpsCalloutRegister2 при регистрации выноски с помощью обработчика фильтров.
Выноска может установить флаг FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW только для подключений, для которых драйвер заинтересован в выполнении проверки потока. Эта выноска будет игнорироваться во всех остальных подключениях. Производительность будет повышена, и драйверу не придется поддерживать ненужные данные о состоянии.
Эта структура по существу идентична предыдущей версии , FWPS_CALLOUT1. Единственное отличие заключается в том, что члены этой версии хранят обновленные версии указателей функции выноски, а дополнительные флаги доступны для установки драйверов выносок.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 8. |
Верхняя часть | fwpsk.h (включая Fwpsk.h) |