Compartir a través de


Función FwpsFlowAssociateContext0 (fwpsk.h)

La función FwpsFlowAssociateContext0 asocia un contexto definido por el controlador de llamada con un flujo de datos.

NotaFwpsFlowAssociateContext0 es una versión específica de FwpsFlowAssociateContext. Para obtener más información, vea NOMBRES DE Version-Independent DE PMA y versiones específicas de Windows dirigidas a destinatarios.
 

Sintaxis

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

Parámetros

[in] flowId

Identificador en tiempo de ejecución que especifica el flujo de datos con el que se va a asociar el contexto. El identificador en tiempo de ejecución de un flujo de datos se proporciona a un controlador de llamada a través del valor de metadatos de FWPS_METADATA_FIELD_FLOW_HANDLE que se pasó a la función de llamada classifyFn del controlador de llamada.

[in] layerId

Identificador en tiempo de ejecución de la capa de filtrado con la que se asocia el contexto. El contexto solo se asociará con la capa de filtrado especificada. Para obtener más información, consulte Identificadores de capa de filtrado en tiempo de ejecución.

[in] calloutId

Identificador en tiempo de ejecución de la llamada en el motor de filtro. Este identificador se devolvió cuando el controlador de llamada llamó a la función FwpsCalloutRegister0, FwpsCalloutRegister1 o FwpsCalloutRegister2 para registrar la llamada con el motor de filtro.

[in] flowContext

Contexto definido por el controlador de llamada que se va a asociar al flujo de datos. Este parámetro no debe ser cero. Este contexto es opaco para el motor de filtro.

Valor devuelto

La función FwpsFlowAssociateContext0 devuelve uno de los siguientes códigos NTSTATUS.

Código devuelto Descripción
STATUS_SUCCESS
El contexto se ha asociado correctamente al flujo de datos.
parámetro de STATUS_INVALID
El parámetro flowContext es NULL o la llamada especificada por el parámetro calloutID no tiene un flowDeleteFn registrado.
STATUS_OBJECT_NAME_EXISTS
Ya hay un contexto asociado al flujo de datos. En este caso, un controlador de llamada debe llamar primero a la función FwpsFlowRemoveContext0 para quitar el contexto existente y, a continuación, llamar de nuevo a la función FwpsFlowAssociateContext0 para asociar el nuevo contexto con el flujo de datos.
Otros códigos de estado
Se produjo un error.

Comentarios

Al filtrar un flujo de datos, un controlador de llamada puede llamar a la función FwpsFlowAssociateContext0 para asociar un contexto con el flujo de datos. A continuación, puede usar este contexto para conservar cualquier información de estado o datos específicos del controlador entre llamadas por el motor de filtro a la función de llamada classifyFn de una llamada para ese flujo de datos.

Debe haber una llamada en el motor de filtro en la capa identificada por el parámetro layerId que ha registrado una función de llamada flowDeleteFn . De lo contrario, la llamada a la función FwpsFlowAssociateContext0 devolverá STATUS_INVALID_PARAMETER. El motor de filtro llama a esa función de llamada flowDeleteFn cuando finaliza el flujo para que el controlador de llamada pueda limpiar el contexto asociado al flujo.

Puede llamar a FwpsFlowAssociateContext0 varias veces para el mismo flujo. En cada llamada, debe especificar una llamada diferente y un contexto diferente, un contexto por cada llamada agregada.

La función FwpsFlowAssociateContext0 asocia un único contexto con una sola llamada agregada.

Puede asociar varios contextos a un flujo. Sin embargo, cada contexto debe estar asociado a una llamada diferente. La nueva llamada puede estar en la misma capa que la anterior o en una capa diferente.

Para obtener más información y código de ejemplo, vea Asociar contexto con una Data Flow y el ejemplo de plataforma de filtrado de Windows.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows Vista.
Plataforma de destino Universal
Encabezado fwpsk.h (incluya Fwpsk.h)
Library Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

Consulte también

Asociación de contexto con un Data Flow

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsCalloutRegister2

FwpsFlowRemoveContext0

Ejemplo de plataforma de filtrado de Windows

classifyFn

flowDeleteFn