Compartir a través de


Envío de paquetes desde un controlador de miniport de CoNDIS WAN

Un controlador de capa superior llama a NdisCoSendNetBufferLists para enviar paquetes de datos de red a un controlador de miniport de CoNDIS WAN subyacente en una lista de estructuras de NET_BUFFER_LIST. El controlador intermedio NDISWAN reenvía esas estructuras NET_BUFFER_LIST desde el controlador de capa superior. NDISWAN vuelve a empaquetar las estructuras antes de enviarlos. NDISWAN reenvía paquetes en nuevas estructuras de NET_BUFFER_LIST.

El controlador intermedio NDISWAN llama a NDIS para reenviar las nuevas estructuras de NET_BUFFER_LIST, NDIS llama a la función MiniportCoSendNetBufferLists del controlador de miniport wan.

El controlador de miniport de CoNDIS WAN posee las estructuras de NET_BUFFER_LIST y los datos asociados hasta que se completa el envío. El controlador de miniport debe llamar posteriormente a NdisMSendNetBufferListsComplete para completar la solicitud de envío.

Una llamada de finalización no indica necesariamente que se han transmitido los datos de red; sin embargo, a excepción de las NIC inteligentes, los datos de red normalmente se han transmitido. Sin embargo, una llamada de finalización indica que el controlador de miniporte está listo para liberar la propiedad de las estructuras de NET_BUFFER_LIST.

Una vez que el controlador de miniporte DE CONDIS WAN recibe NET_BUFFER_LIST estructura que contiene un paquete de datos de red, debe enviar el paquete a una conexión virtual activa (VC).

Un controlador de miniporte WAN de CoNDIS especifica el número de paquetes pendientes que puede tener por VC en el miembro MaxSendWindow de la estructura NDIS_WAN_CO_INFO. El controlador de miniporte proporciona esta estructura cuando el controlador de miniporte responde a la solicitud de OID_WAN_CO_GET_INFO del controlador de protocolo. Sin embargo, el controlador de minipuerto puede ajustar este número de forma dinámica y por VC mediante el miembro SendWindow de la estructura WAN_CO_LINKPARAMS . El controlador de miniporte pasa esta estructura a la función NdisMCoIndicateStatusEx. NDISWAN usa el valor actual de SendWindow como su límite en envíos pendientes. El controlador de miniport puede establecer el valor del miembro SendWindow en cero para especificar que no puede controlar ningún paquete pendiente. Es decir, si el miembro SendWindow está establecido en cero, la ventana de envío se apaga y NDISWAN deja de enviar paquetes para el VC determinado.

Los paquetes que envía un controlador de minipuerto WAN contienen tramas SIMPLES PPP DE PPP si se establece el marco PPP. Para el marco SLIP o RAS, los paquetes solo contienen la parte de datos sin ningún marco. Para obtener más información sobre el marco de paquetes WAN, consulte Wan Packet Framing.

Un controlador de miniport wan no debe intentar proporcionar bucle invertido de software ni bucle invertido en modo promiscuo. Ambos tipos de bucle invertido son totalmente compatibles con el controlador NDISWAN.