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


структура FWPS_CLASSIFY_OUT0 (fwpstypes.h)

Структура FWPS_CLASSIFY_OUT0 определяет данные, возвращаемые вызывающей функции выноски classifyFn выноски.

ПримечаниеFWPS_CLASSIFY_OUT0 — это определенная версия FWPS_CLASSIFY_OUT. Дополнительные сведения см. в разделах Имена Version-Independent и Выбор конкретных версий Windows .
 

Синтаксис

typedef struct FWPS_CLASSIFY_OUT0_ {
  FWP_ACTION_TYPE actionType;
  UINT64          outContext;
  UINT64          filterId;
  UINT32          rights;
  UINT32          flags;
  UINT32          reserved;
} FWPS_CLASSIFY_OUT0;

Члены

actionType

Значение FWP_ACTION_TYPE , указывающее предлагаемое действие, которое необходимо выполнить, как определено функцией выноски classifyFn драйвера выноски. Драйвер выноски задает для этой переменной одно из следующих значений:

FWP_ACTION_BLOCK

Блокировать передачу или получение данных.

FWP_ACTION_CONTINUE

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

FWP_ACTION_NONE

Не выполняйте никаких действий с данными.

FWP_ACTION_NONE_NO_MATCH

Не выполняйте никаких действий с данными, так как они не соответствуют перечисленным типам данных фильтра.

FWP_ACTION_PERMIT

Разрешить передачу или получение данных.

Доступ на запись к этому элементу контролируется флагом FWPS_RIGHT_ACTION_WRITE в элементе прав . Если установлен флаг FWPS_RIGHT_ACTION_WRITE , драйвер выноски может записать любое из указанных выше значений в этот элемент. Если флаг FWPS_RIGHT_ACTION_WRITE не установлен, драйвер выноски не должен записывать данные в этот элемент, если он не наложен вето на действие FWP_ACTION_PERMIT , которое ранее было возвращено фильтром с более высоким весом в подсистеме фильтрации. В такой ситуации драйвер выноски задает этому члену значение FWP_ACTION_BLOCK.

outContext

Зарезервировано для системного использования. Драйверы выносок не должны использовать этот элемент.

filterId

Зарезервировано для системного использования. Драйверы выносок не должны использовать этот элемент.

rights

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

FWPS_RIGHT_ACTION_WRITE

Если этот флаг установлен, драйвер выноски может записывать данные в элемент actionType этой структуры. Если этот флаг не установлен, драйвер выноски может записывать данные только в элемент actionType этой структуры, если он наложен вето на действие FWP_ACTION_PERMIT , которое ранее было возвращено фильтром с более высоким весом в подсистеме фильтров.

flags

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

FWPS_CLASSIFY_OUT_FLAG_ABSORB

Заблокированные данные удаляются автоматически без ведения журнала событий или аудита. Обычно это используется для изменения пакета, когда исходный пакет должен быть поглощен, а измененный пакет должен быть обработан далее.

Этот флаг применяется на следующих уровнях, если для элемента actionType задано значение FWP_ACTION_BLOCK:

FWPS_LAYER_INBOUND_MAC_FRAME_NATIVE
FWPS_LAYER_OUTBOUND_MAC_FRAME_NATIVE
FWPS_LAYER_INBOUND_MAC_FRAME_ETHERNET
FWPS_LAYER_OUTBOUND_MAC_FRAME_ETHERNET
FWPS_LAYER_INGRESS_VSWITCH_ETHERNET
FWPS_LAYER_EGRESS_VSWITCH_ETHERNET
FWPS_LAYER_INBOUND_IPPACKET_V4
FWPS_LAYER_INBOUND_IPPACKET_V6
FWPS_LAYER_OUTBOUND_IPPACKET_V4
FWPS_LAYER_OUTBOUND_IPPACKET_V6
FWPS_LAYER_INBOUND_TRANSPORT_V4
FWPS_LAYER_INBOUND_TRANSPORT_V6
FWPS_LAYER_OUTBOUND_TRANSPORT_V4
FWPS_LAYER_OUTBOUND_TRANSPORT_V6
FWPS_LAYER_INBOUND_ICMP_ERROR_V4
FWPS_LAYER_INBOUND_ICMP_ERROR_V6
FWPS_LAYER_OUTBOUND_ICMP_ERROR_V4
FWPS_LAYER_OUTBOUND_ICMP_ERROR_V6
FWPS_LAYER_DATAGRAM_DATA_V4
FWPS_LAYER_DATAGRAM_DATA_V6
FWPS_LAYER_STREAM_PACKET_V4
FWPS_LAYER_STREAM_PACKET_V6
FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V4
FWPS_LAYER_ALE_AUTH_RECV_ACCEPT_V6
FWPS_LAYER_ALE_AUTH_CONNECT_V4
FWPS_LAYER_ALE_AUTH_CONNECT_V6

Этот флаг также можно установить на уровнях FWPS_LAYER_ALE_FLOW_ESTABLISHED_V4 и FWPS_LAYER_ALE_FLOW_ESTABLISHED_V6. Но делать это не рекомендуется, так как эти уровни предназначены для связи контекста с потоками.

Если этот флаг не установлен, действие блокировки будет подлежать обычному ведению журнала событий и аудиту.

FWPS_CLASSIFY_OUT_FLAG_BUFFER_LIMIT_REACHED

Модуль фильтрации устанавливает этот флаг, когда буфер данных подсистемы фильтров для потоковой передачи данных заполнен. Это может произойти, если функция выноски classifyFn многократно запрашивает дополнительные данные, задав члену streamActionструктуры FWPS_STREAM_CALLOUT_IO_PACKET0значение FWPS_STREAM_ACTION_NEED_MORE_DATA до достижения предела буфера. Если этот флаг установлен, функция выноски classifyFn драйвера выноски должна разрешать или блокировать все потоковые данные.

Этот флаг применим только на уровнях потока.

FWPS_CLASSIFY_OUT_FLAG_NO_MORE_DATA

Stream данные запрашивались после отключения потока.

reserved

Зарезервировано для системного использования. Драйверы выносок не должны использовать этот элемент.

Комментарии

Модуль фильтров передает указатель на FWPS_CLASSIFY_OUT0 структуру функции выноски classifyFn выноски. Драйвер выноски использует эту структуру для возврата данных вызывающей объекту.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows Vista.
Верхняя часть fwpstypes.h (включая Fwpsk.h, Fwpmtypes.h, Fwpmk.h)

См. также раздел

FWPS_STREAM_CALLOUT_IO_PACKET0

Идентификаторы слоев фильтрации во время выполнения

classifyFn