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


Функция 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, переданное в функцию выноски драйвера выноски классификацииFn.

[in] layerId

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

[in] calloutId

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

[in] flowContext

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

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

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

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

Замечания

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

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

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows Vista.
целевая платформа Всеобщий
заголовка fwpsk.h (include Fwpsk.h)
библиотеки Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

См. также

связывание контекста с потоком данных

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsCalloutRegister2

FwpsFlowRemoveContext0

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

классифицироватьFn

flowDeleteFn