Функция FwpsCalloutRegister1 (fwpsk.h)
Функция FwpsCalloutRegister1 регистрирует выноску в подсистеме фильтрации.
Синтаксис
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.
Код возврата | Описание |
---|---|
|
Выноска успешно зарегистрирована в подсистеме фильтров. |
|
Не удалось зарегистрировать выноску в подсистеме фильтров. Выноска уже зарегистрирована в подсистеме фильтров с идентификатором, идентичным ИДЕНТИФИКАТОРу 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 |