Compartir a través de


Función FwpsInjectMacSendAsync0 (fwpsk.h)

La función FwpsInjectMacSendAsync0 puede volver a expulsar un marco de control de acceso multimedia (MAC) (o un clon del fotograma) de nuevo a la ruta de acceso de datos salientes de capa 2 desde la que se interceptó o insertar un marco MAC inventado.

NotafwpsInjectMacSendAsync0 es una versión específica de FwpsInjectMacSendAsync. Consulta nombres Version-Independent DEL PMA y destinatarios de versiones específicas de Windows para obtener más información.

 

Sintaxis

NTSTATUS FwpsInjectMacSendAsync0(
  [in]           HANDLE               injectionHandle,
  [in, optional] HANDLE               injectionContext,
  [in]           UINT32               flags,
  [in]           UINT16               layerId,
  [in]           IF_INDEX             interfaceIndex,
  [in]           NDIS_PORT_NUMBER     NdisPortNumber,
  [in, out]      NET_BUFFER_LIST      *netBufferLists,
  [in]           FWPS_INJECT_COMPLETE completionFn,
  [in, optional] HANDLE               completionContext
);

Parámetros

[in] injectionHandle

Identificador de inyección obtenido anteriormente por una llamada al fwpsInjectionHandleCreate0 función con las marcas parámetro establecido en FWPS_INJECTION_TYPE_L2.

Note Establezca el parámetro addressFamily de la función FwpsInjectionHandleCreate0 en AF_UNSPEC.
 

[in, optional] injectionContext

Identificador opcional para el contexto de inyección. Si se especifica, se puede obtener llamando a función fwpsQueryPacketInjectionState0 cuando el estado de inyección de paquetes FWPS_PACKET_INJECTION_STATE es FWPS_PACKET_INJECTED_BY_SELF o FWPS_PACKET_PREVIOUSLY_INJECTED_BY_SELF.

[in] flags

Reservado. Debe establecerse en cero.

[in] layerId

Identificador en tiempo de ejecución de la capa de filtrado en la que se está procesando el flujo de datos.

[in] interfaceIndex

Índice de interfaz que se pasa al del controlador de llamada clasifiqueFn valor entrante FWPS_FIELD_XxxMAC_FRAMEXxx_INTERFACE_INDEX.

[in] NdisPortNumber

Número de puerto NDIS que se pasa al del controlador de llamada clasifiqueFn valor entrante FWPS_FIELD_XxxMAC_FRAMEXxx_NDIS_PORT.

[in, out] netBufferLists

Puntero a una estructura NET_BUFFER_LIST que describe los datos de paquete que se insertan. Un controlador de llamada asigna una estructura de NET_BUFFER_LIST que se usará para insertar datos de paquetes mediante una llamada a la función FwpsAllocateCloneNetBufferList0 o a la función FwpsAllocateNetBufferAndNetBufferList0. La estructura NET_BUFFER_LIST debe comenzar con un encabezado MAC.

[in] completionFn

Puntero a una finalizaciónFn función de llamada proporcionada por el controlador de llamada. El motor de filtros llama a esta función después de los datos del paquete, descritos por el parámetro netBufferLists, se ha insertado en la pila de red. Este puntero debe especificarse al insertar estructuras NET_BUFFER_LIST clonadas o creadas. Al insertar estructuras de NET_BUFFER_LIST originales, este parámetro puede ser NULL si las estructuras originales no se modifican.

[in, optional] completionContext

Puntero a un contexto proporcionado por el controlador de llamada que se pasa a la función de llamada a la que apunta el parámetro completionFn. Este parámetro es opcional y se puede NULL.

Valor devuelto

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

Código devuelto Descripción
STATUS_SUCCESS
La inserción de datos de fotogramas MAC se inició correctamente. El motor de filtros llama a la función de finalización después de que el motor de filtro haya completado la inserción de los datos del marco MAC o cuando se produjo un error posteriormente. En caso de error, el estado miembro de la estructura de NET_BUFFER_LIST completada indicará el motivo del error.
STATUS_FWP_TCPIP_NOT_READY
La capa MAC no está lista para aceptar la inyección de datos de paquetes.
STATUS_FWP_INJECT_HANDLE_CLOSING
El controlador de inyección se está cerrando.
STATUS_FWP_INJECT_HANDLE_STALE
El identificador de inyección no se creó con las marcas parámetro del función FwpsInjectionHandleCreate0 establecida en FWPS_INJECTION_TYPE_L2.
otros códigos de estado
Error.

Observaciones

Un controlador de devolución de llamada llama a la función FwpsInjectMacSendAsync0 para volver a expulsar un marco MAC previamente absorbido (o un clon del marco) a la ruta de acceso de datos entrantes de capa 2 desde la que se interceptó o para insertar un marco MAC inventado.

El parámetro netBufferLists puede ser una cadena de NET_BUFFER_LIST. Sin embargo, la función de finalización se puede invocar varias veces cada una, completando un segmento (o un solo NET_BUFFER_LIST) de la cadena.

Los fotogramas insertados podrían volver a clasificarse si los paquetes coinciden con el mismo filtro que el clasificado originalmente. Por lo tanto, al igual que con las llamadas en capas IP, las llamadas de nivel 2 también deben protegerse contra la inspección infinita de paquetes llamando a FwpsQueryPacketInjectionState0.

Requisitos

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

Consulte también

FwpsAllocateCloneNetBufferList0 FwpsAllocateNetBufferAndNetBufferList0 FwpsInjectionHandleCreate0

fwpsQueryPacketInjectionState0

NET_BUFFER_LIST

clasificarFn

finalizaciónFn