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


структура FWPS_CALLOUT3 (fwpsk.h)

Структура FWPS_CALLOUT3 определяет данные, необходимые для драйвера выноски для регистрации выноски в обработчике фильтров.

Синтаксис

typedef struct FWPS_CALLOUT3_ {
  GUID                                calloutKey;
  UINT32                              flags;
  FWPS_CALLOUT_CLASSIFY_FN3           classifyFn;
  FWPS_CALLOUT_NOTIFY_FN3             notifyFn;
  FWPS_CALLOUT_FLOW_DELETE_NOTIFY_FN0 flowDeleteFn;
} FWPS_CALLOUT3;

Члены

calloutKey

Определяемый драйвером выноски GUID, который однозначно идентифицирует выноску.

flags

Флаги, указывающие параметры, относящиеся к выноскам. Возможные флаги:

Ценность Значение
FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW
0x00000001
Драйвер выноски может указать этот флаг при регистрации выноски, которая будет добавлена на уровне, поддерживающем потоки данных. Если этот флаг указан, обработчик фильтров вызывает функцию выноски классифицироватьFn3 функцию выноски только в том случае, если с потоком данных связан контекст. Драйвер выноски связывает контекст с потоком данных путем вызова функции FwpsFlowAssociateContext0.
FWP_CALLOUT_FLAG_ALLOW_OFFLOAD
0x00000002
Драйвер выноски указывает этот флаг, чтобы указать, что драйвера выноски классифицируетFn3 функцию выноски не влияет на загрузку сетевой обработки данных для отключенных сетевых интерфейсных карт (сетевых адаптеров). Если этот флаг не указан, разгрузка обработки сетевых данных отключена для всего трафика, обрабатываемого любыми фильтрами, которые указывают выноску для действия фильтра.
FWP_CALLOUT_FLAG_ENABLE_COMMIT_ADD_NOTIFY
0x00000004
Драйвер выноски указывает этот флаг, указывающий, что он может получать уведомления об объектах и фильтрах, добавленных в транзакцию. Модуль фильтров отправляет уведомление после фиксации транзакции.
FWP_CALLOUT_FLAG_ALLOW_MID_STREAM_INSPECTION
0x00000008
Драйвер выноски указывает этот флаг, чтобы указать, что он может выполнять динамическую проверку потоков данных на уровне потока. См. проверки потока.
FWP_CALLOUT_FLAG_ALLOW_RECLASSIFY
0x00000010
Драйвер выноски указывает этот флаг для регистрации самого себя при переклассифицировании существующей операции сокета.
FWP_CALLOUT_FLAG_RESERVED1
0x00000020
Зарезервировано для использования системы. Драйверы выноски должны игнорировать этот флаг.
FWP_CALLOUT_FLAG_ALLOW_RSC
0x00000040
Драйвер выноски указывает этот флаг, чтобы указать, что выноска поддерживает объединение сегментов приема TCP (RSC) с большими пакетами до 64 КБ. Если этот флаг не указан, а выноска зарегистрирована, RSC отключается для всего трафика, обрабатываемого любыми фильтрами, которые указывают выноску для действия фильтра.
FWP_CALLOUT_FLAG_ALLOW_L2_BATCH_CLASSIFY
0x00000080
Драйвер выноски указывает этот флаг при регистрации выноски, которая будет добавлена на уровне 2, чтобы указать, что ее классифицировать функцию выноскиFn3 может классифицировать несколько цепочки NET_BUFFER_LIST структур. Дополнительные сведения см. в статье Использованиефильтрации уровня 2.

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

FwpsReferenceNetBufferList0
FwpsDereferenceNetBufferList0
FwpsAllocateCloneNetBufferList0
FwpsFreeCloneNetBufferList0

При использовании этого набора флагов FwpsAllocateCloneNetBufferList0 всегда возвращает ошибку INVALID_PARAMETER. Это может непредвиденно привести к тому, что сторонний драйвер выноски не сможет управлять счетчиком ссылок NET_BUFFER_LISTs, что приводит к остановке операций отправки и получения.
FWP_CALLOUT_FLAG_ALLOW_USO
0x00000100
Драйвер выноски указывает этот флаг, чтобы указать, что выноска поддерживает разгрузку сегментации UDP (USO) с пакетами, превышающими MTU сетевого носителя. Если этот флаг не указан, а выноска зарегистрирована, то вход отключается для всего трафика, обрабатываемого любыми фильтрами, которые указывают выноску для действия фильтра. Примечание. Самая ранняя версия, в которой поддерживается этот флаг, — предварительная версия Windows Insider Preview версии 10.0.25876.
FWP_CALLOUT_FLAG_ALLOW_URO
0x00000200
Драйвер выноски указывает этот флаг, чтобы указать, что выноска поддерживает разгрузку UDP с большими пакетами до 64 КБ. Если этот флаг не указан, а выноска зарегистрирована, URO отключается для всего трафика, обрабатываемого любыми фильтрами, которые указывают выноску для действия фильтра. Примечание. Если этот флаг указан, выноски не должны клонировать и повторно вводить URI-пакеты.

classifyFn

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

notifyFn

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

flowDeleteFn

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

Если драйвер выноски не связывает контекст с потоками данных, которые обрабатывает выноска, этот элемент должен иметь значение NULL.

Замечания

Драйвер выноски передает указатель на инициализированную структуру FWPS_CALLOUT3 в функцию FwpsCalloutRegister3 при регистрации выноски в обработчике фильтров.

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

FWPS_CALLOUT3 — это конкретная версия FWPS_CALLOUT. Дополнительные сведения см. в статье МПП Version-Independent имен и целевых версий Windows.

Требования

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

См. также