Функция FwpsCalloutRegister1 (fwpsk.h)

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

ПримечаниеFwpsCalloutRegister1 — это конкретная версия FwpsCalloutRegister , используемая в Windows 7 и более поздних версиях. Дополнительные сведения см. в разделах Имена Version-Independent и Выбор конкретных версий Windows . Для Windows 8 доступен FwpsCalloutRegister2. Для Windows Vista доступен FwpsCalloutRegister0 .
 

Синтаксис

NTSTATUS FwpsCalloutRegister1(
  [in, out]       void                *deviceObject,
  [in]            const FWPS_CALLOUT1 *callout,
  [out, optional] UINT32              *calloutId
);

Параметры

[in, out] deviceObject

Указатель на объект устройства, ранее созданный драйвером выноски. Дополнительные сведения о том, как драйвер выноски создает объект устройства, см. в разделе Создание объекта устройства.

[in] callout

Указатель на константную FWPS_CALLOUT1 структуру, содержащую данные, необходимые для регистрации выноски в подсистеме фильтрации.

[out, optional] calloutId

Указатель на переменную типа UINT32, которая получает идентификатор времени выполнения, идентифицирующий выноску в подсистеме фильтров. Драйвер выноски передает этот идентификатор функции FwpsCalloutUnregisterById0 при отмене регистрации выноски из подсистемы фильтров. Если драйвер выноски фильтрует поток данных, он также передает этот идентификатор функциям FwpsFlowAssociateContext0 и FwpsFlowRemoveContext0 . Если драйвер выноски внедряет данные в потоки данных, он также передает этот идентификатор функции FwpsStreamInjectAsync0 . Подсистема фильтров также передает этот идентификатор в функцию выноски flowDeleteFn драйвера выноски. Этот параметр является необязательным и может иметь значение NULL.

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

Функция FwpsCalloutRegister1 возвращает один из следующих кодов NTSTATUS.

Код возврата Описание
STATUS_SUCCESS
Выноска успешно зарегистрирована в подсистеме фильтров.
STATUS_FWP_ALREADY_EXISTS
Не удалось зарегистрировать выноску в подсистеме фильтров. Выноска уже зарегистрирована в подсистеме фильтров с идентификатором, идентичным ИДЕНТИФИКАТОРу GUID, указанному в элементе calloutKeyструктуры FWPS_CALLOUT1 , на которую указывает параметр выноски .
Другие коды состояния
Произошла ошибка.

Комментарии

Драйвер выноски вызывает функцию FwpsCalloutRegister1 , чтобы зарегистрировать выноску в подсистеме фильтрации. Драйвер выноски может зарегистрировать выноску в подсистеме фильтрации в любое время, даже если подсистема фильтров в настоящее время не работает.

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

Драйвер выноски отменяет регистрацию выноски из подсистемы фильтров, вызывая либоФункция FwpsCalloutUnregisterById0 илиФункция FwpsCalloutUnregisterByKey0. Драйвер выноски не может быть выгружен до тех пор, пока все выноски, ранее зарегистрированные в подсистеме фильтров, не будут успешно отменены.

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 7.
Целевая платформа Универсальное
Верхняя часть fwpsk.h (включая Fwpsk.h)
Библиотека Fwpkclnt.lib
IRQL PASSIVE_LEVEL

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

FWPS_CALLOUT1

FwpsCalloutRegister0

FwpsCalloutRegister2

FwpsCalloutUnregisterById0

FwpsCalloutUnregisterByKey0

FwpsFlowAssociateContext0

FwpsFlowRemoveContext0

FwpsStreamInjectAsync0

IoCreateDevice

Типы выносок

flowDeleteFn