Compartir a través de


Función FwpsInjectionHandleCreate0 (fwpsk.h)

La función FwpsInjectionHandleCreate0 crea un identificador que puede usar funciones de inyección de paquetes para insertar datos de paquetes o transmitirlos en 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. Consulta nombres Version-Independent DEL PMA y destinatarios de versiones específicas de Windows para obtener más información.
 

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

La familia de direcciones no está especificada.

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 llamando a cualquiera de los función fwpsInjectNetworkReceiveAsync0 o la función función FwpsInjectNetworkSendAsync0.

FWPS_INJECTION_TYPE_STREAM

Los datos del flujo se insertarán mediante una llamada a función fwpsStreamInjectAsync0.

FWPS_INJECTION_TYPE_TRANSPORT

Los datos de transporte se insertarán llamando a cualquiera de los función fwpsInjectTransportReceiveAsync0 o fwpsInjectTransportReceiveAsync0 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 identificador 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 a la función FwpsInjectionHandleCreate0 más adelante para crear un identificador de inyección.
otros códigos de estado
Error.

Observaciones

Un controlador de llamada llama a la función FwpsInjectionHandleCreate0 para crear un identificador que se puede usar para insertar datos de paquetes o transmitir datos 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, vea HELPERFUNCTIONS_INJECTIONDATA.CPP.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible a partir de Windows Vista.
de la plataforma de destino de Universal
encabezado de fwpsk.h (incluya Fwpsk.h)
biblioteca de Fwpkclnt.lib
irQL PASSIVE_LEVEL

Consulte también

fwpsInjectionHandleDestroy0

fwpsQueryPacketInjectionState0

funciones de inyección de paquetes