Función FwpsFlowAssociateContext0 (fwpsk.h)
La función FwpsFlowAssociateContext0 asocia un contexto definido por el controlador de llamada con un flujo de datos.
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 |
---|---|
|
El contexto se ha asociado correctamente al flujo de datos. |
|
El parámetro flowContext es NULL o la llamada especificada por el parámetro calloutID no tiene un flowDeleteFn registrado. |
|
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. |
|
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