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

Функция FwpsFlowAssociateContext0 связывает определенный драйвером выноски контекст с потоком данных.

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

Синтаксис

NTSTATUS FwpsFlowAssociateContext0(
  [in] UINT64 flowId,
  [in] UINT16 layerId,
  [in] UINT32 calloutId,
  [in] UINT64 flowContext
);

Параметры

[in] flowId

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

[in] layerId

Идентификатор времени выполнения для слоя фильтрации, с которым связан контекст. Контекст будет связан только с указанным уровнем фильтрации. Дополнительные сведения см. в разделе Идентификаторы слоев фильтрации во время выполнения.

[in] calloutId

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

[in] flowContext

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

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

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

Код возврата Описание
STATUS_SUCCESS
Контекст был успешно связан с потоком данных.
параметр STATUS_INVALID
Параметр flowContext имеет значение NULL или выноска, указанная параметром calloutID , не имеет зарегистрированного объекта flowDeleteFn .
STATUS_OBJECT_NAME_EXISTS
Контекст уже связан с потоком данных. В этом случае драйвер выноски должен сначала вызвать функцию FwpsFlowRemoveContext0 , чтобы удалить существующий контекст, а затем снова вызвать функцию FwpsFlowAssociateContext0 , чтобы связать новый контекст с потоком данных.
Другие коды состояния
Произошла ошибка.

Комментарии

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

В подсистеме фильтрации на уровне, определяемом параметром layerId , должна быть выноска, которая зарегистрировала функцию выноски flowDeleteFn . В противном случае вызов функции FwpsFlowAssociateContext0 вернет STATUS_INVALID_PARAMETER. Модуль фильтрации вызывает функцию выноски flowDeleteFn при завершении потока, чтобы драйвер выноски смог очистить контекст, связанный с потоком.

FwpsFlowAssociateContext0 можно вызывать несколько раз для одного потока. В каждом вызове необходимо указать другую выноску и другой контекст — по одному контексту для каждой добавленной выноски.

Функция FwpsFlowAssociateContext0 связывает один контекст с одной добавленной выноской.

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

Дополнительные сведения и пример кода см. в разделах Связывание контекста с Поток данных и Пример платформы фильтрации Windows.

Требования

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

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

Связывание контекста с Поток данных

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsCalloutRegister2

FwpsFlowRemoveContext0

Пример платформы фильтрации Windows

classifyFn

flowDeleteFn