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.
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 |
---|---|
|
El identificador de inyección se creó correctamente. |
|
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. |
|
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 |