Функция FwpsFlowAssociateContext0 (fwpsk.h)
Функция FwpsFlowAssociateContext0 связывает определяемый драйвером выноски контекст с потоком данных.
Синтаксис
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.
Возвращаемый код | Описание |
---|---|
|
Контекст успешно связан с потоком данных. |
|
Параметр flowContext имеет значение NULL или выноску, указанную параметром calloutID, не имеет flowDeleteFn. |
|
Контекст уже связан с потоком данных. В этом случае драйвер выноски должен сначала вызвать функцию 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 |
См. также
связывание контекста с потоком данных