Función FwpsCalloutRegister0 (fwpsk.h)

La función FwpsCalloutRegister0 registra una llamada con el motor de filtro.

NotaFwpsCalloutRegister0 es la versión específica de FwpsCalloutRegister que se usa en Windows Vista y versiones posteriores. Para obtener más información, consulte NOMBRES de PMA Version-Independent y versiones específicas de destino de Windows . Para Windows 8, FwpsCalloutRegister2 está disponible. Para Windows 7, FwpsCalloutRegister1 está disponible.
 

Sintaxis

NTSTATUS FwpsCalloutRegister0(
  [in, out]       void                *deviceObject,
  [in]            const FWPS_CALLOUT0 *callout,
  [out, optional] UINT32              *calloutId
);

Parámetros

[in, out] deviceObject

Puntero a un objeto de dispositivo creado anteriormente por el controlador de llamada. Para obtener más información sobre cómo un controlador de llamada crea un objeto de dispositivo, consulte Creación de un objeto device.

[in] callout

Puntero a una estructura de FWPS_CALLOUT0 constante que contiene los datos necesarios para registrar la llamada con el motor de filtros.

[out, optional] calloutId

Puntero a una variable con tipo UINT32 que recibe un identificador en tiempo de ejecución que identifica la llamada en el motor de filtro. El controlador de llamada pasa este identificador a la función FwpsCalloutUnregisterById0 al anular el registro de la llamada del motor de filtro. Si un controlador de llamada filtra un flujo de datos, también pasa este identificador a las funciones FwpsFlowAssociateContext0 y FwpsFlowRemoveContext0 . Si un controlador de llamada inserta datos en flujos de datos, también pasa este identificador a la función FwpsStreamInjectAsync0 . El motor de filtros también pasa este identificador a la función de llamada flowDeleteFn del controlador de llamada. Este parámetro es opcional y puede ser NULL.

Valor devuelto

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

Código devuelto Descripción
STATUS_SUCCESS
La llamada se registró correctamente con el motor de filtro.
STATUS_FWP_ALREADY_EXISTS
No se pudo registrar la llamada con el motor de filtro. Una llamada ya está registrada en el motor de filtro con un identificador idéntico al GUID especificado en el miembro calloutKey de la estructura de FWPS_CALLOUT0 a la que apunta el parámetro callout .
Otros códigos de estado
Se produjo un error.

Comentarios

Un controlador de llamada llama a la función FwpsCalloutRegister0 para registrar una llamada con el motor de filtro. Un controlador de llamada puede registrar una llamada con el motor de filtro en cualquier momento, incluso si el motor de filtros no se está ejecutando actualmente.

Se puede agregar una llamada y filtros que especifican la llamada para la acción del filtro al motor de filtros antes de que un controlador de llamada registre la llamada con el motor de filtro. En esta situación, los filtros con un tipo de acción de FWP_ACTION_CALLOUT_TERMINATING o FWP_ACTION_CALLOUT_UNKNOWN se tratan como FWP_ACTION_BLOCK y los filtros con un tipo de acción de FWP_ACTION_CALLOUT_INSPECTION se omiten hasta que la llamada se registra en el motor de filtros.

Un controlador de llamada anula el registro de una llamada del motor de filtros mediante una llamada a Función FwpsCalloutUnregisterById0 o Función FwpsCalloutUnregisterByKey0 . No se puede descargar un controlador de llamada hasta que todas las llamadas registradas anteriormente con el motor de filtro se hayan anulado correctamente el registro.

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 PASSIVE_LEVEL

Consulte también

Creación de un objeto device

FWPS_CALLOUT0

FwpsCalloutRegister1

FwpsCalloutRegister2

FwpsCalloutUnregisterById0

FwpsCalloutUnregisterByKey0

FwpsFlowAssociateContext0

FwpsFlowRemoveContext0

FwpsStreamInjectAsync0

IoCreateDevice

Tipos de llamadas

flowDeleteFn