Compartir a través de


Función FwpsInjectionHandleCreate0 (fwpsk.h)

La función FwpsInjectionHandleCreate0 crea un identificador que las funciones de inyección de paquetes pueden usar para insertar datos de paquetes o transmitirlos a la pila de red TCP/IP y por la función FwpsQueryPacketInjectionState0 para consultar el estado de inyección de paquetes.

NotaFwpsInjectionHandleCreate0 es una versión específica de FwpsInjectionHandleCreate. Para obtener más información, consulte NOMBRES de PMA Version-Independent y versiones específicas de destino de Windows .
 

Sintaxis

NTSTATUS FwpsInjectionHandleCreate0(
  [in, optional] ADDRESS_FAMILY addressFamily,
  [in]           UINT32         flags,
  [out]          HANDLE         *injectionHandle
);

Parámetros

[in, optional] addressFamily

Familia de direcciones para la que se va a crear el identificador de inyección. Puede ser una de las siguientes familias de direcciones:

AF_UNSPEC

No se especifica la familia de direcciones.

AF_INET

Familia de direcciones IPv4.

AF_INET6

Familia de direcciones IPv6.

En el caso de las inyecciones de transporte, transmisión y reenvío, este parámetro es opcional y se puede establecer en AF_UNSPEC, lo que indica una familia de direcciones no especificada. Este valor se define en Ws2def.h.

[in] flags

Valor de marca establecido por un controlador de llamada para indicar el tipo de datos que se van a insertar. Esta marca puede tener uno o varios de los siguientes valores:

FWPS_INJECTION_TYPE_FORWARD

Los datos del paquete se insertarán mediante una llamada a Función FwpsInjectForwardAsync0 .

FWPS_INJECTION_TYPE_NETWORK

Los datos de red se insertarán mediante una llamada a Función FwpsInjectNetworkReceiveAsync0 o Función FwpsInjectNetworkSendAsync0 .

FWPS_INJECTION_TYPE_STREAM

Stream datos se insertarán mediante una llamada a Función FwpsStreamInjectAsync0 .

FWPS_INJECTION_TYPE_TRANSPORT

Los datos de transporte se insertarán mediante una llamada a Función FwpsInjectTransportReceiveAsync0 o Función FwpsInjectTransportSendAsync0 .

Para crear un identificador de inyección que usarán varias funciones de inyección, combine los bits de tipo de inyección con operaciones OR bit a bit. Si el valor de marca se establece en cero, el controlador de inyección resultante se puede usar para las inyecciones de transporte, flujo y reenvío.

[out] injectionHandle

Puntero a una variable que recibe el identificador.

Valor devuelto

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

Código devuelto Descripción
STATUS_SUCCESS
El identificador de inyección se creó correctamente.
STATUS_FWP_TCPIP_NOT_READY
La pila de red TCP/IP no está lista. Un controlador de llamada debe llamar de nuevo a la función FwpsInjectionHandleCreate0 más adelante para crear un identificador de inyección.
Otros códigos de estado
Se produjo un error.

Comentarios

Un controlador de llamada llama a la función FwpsInjectionHandleCreate0 para crear un identificador que se puede usar para insertar datos de paquetes o transmitirlos en la pila de red TCP/IP y para consultar el estado de inyección de paquetes. Un controlador de llamada pasa el identificador creado a las funciones de inserción de paquetes y FwpsQueryPacketInjectionState0.

Una vez que un controlador de llamada haya terminado de usar un identificador de inyección, debe llamar a la función FwpsInjectionHandleDestroy0 para destruir el identificador. Si las inyecciones pendientes aún no se han completado, esta función esperará a su finalización antes de devolverla.

Cuando se realizan inyecciones en la capa de red y se filtran las familias de direcciones IPv4 e IPv6, el controlador de llamada debe crear dos identificadores de inyección llamando a la función FwpsInjectionHandleCreate0 dos veces: una llamada con addressFamily establecida en AF_INET y una segunda llamada con addressFamily establecida en AF_INET6.

Para las capas MAC ( *MAC_FRAME_NATIVE, *MAC_FRAME_ETHERNET, *VSWITCH_ETHERNET), puede usar el mismo identificador de inyección adquirido con la marca FWPS_INJECTION_TYPE_L2. El tipo de inyección está vinculado más cerca de las funciones de inyección que las capas.

Para obtener un ejemplo de código, consulte HELPERFUNCTIONS_INJECTIONDATA.CPP DESampler de PMA.

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

FwpsInjectionHandleDestroy0

FwpsQueryPacketInjectionState0

Funciones de inyección de paquetes