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