Compartir vía


Envío de marcos Ethernet

El transporte TCP/IP de Windows admite un conjunto de requisitos para enviar fotogramas Ethernet. Cualquier controlador (por ejemplo, un controlador intermedio MUX o un controlador de filtro) que origine solicitudes de envío o modifique las solicitudes de envío de controladores excesivos debe admitir los requisitos que implementa el transporte TCP/IP.

Nota Si algún controlador de una pila de controladores no sigue estos requisitos, los controladores de minipuerto subyacentes, los controladores intermedios MUX y los controladores de filtro pueden comportarse de forma impredecible.

En el caso de las solicitudes de envío Ethernet, los controladores deben admitir estos requisitos:

  • Si un controlador origina una solicitud de envío, el controlador debe asignar una estructura de NET_BUFFER_LIST para los marcos Ethernet. El miembro NetBufferListInfo de cada estructura de NET_BUFFER_LIST debe incluir los datos fuera de banda (OOB) necesarios para el uso concreto. Los datos OOB se aplican a todas las estructuras de NET_BUFFER asociadas a una estructura de NET_BUFFER_LIST.

  • Si un controlador origina una solicitud de envío, el controlador debe asignar una o varias estructuras de NET_BUFFER para los marcos Ethernet y vincular estas estructuras a la estructura NET_BUFFER_LIST. Cada estructura NET_BUFFER que está vinculada a una estructura de NET_BUFFER_LIST describe un único marco Ethernet. El controlador puede encadenar varias estructuras de NET_BUFFER_LIST en una solicitud de envío.

  • Todas las estructuras NET_BUFFER asociadas a una estructura de NET_BUFFER_LIST deben tener el mismo tipo de marco Ethernet y la misma versión del protocolo IP (IPv4 o IPv6).

  • Todas las estructuras NET_BUFFER asociadas a una estructura de NET_BUFFER_LIST deben tener las mismas direcciones MAC de origen y destino.

  • Si un controlador envía fotogramas TCP o UDP, todas las estructuras de NET_BUFFER asociadas a una estructura de NET_BUFFER_LIST deben estar asociadas a la misma conexión TCP o UDP. Nota Sujeto a los siguientes requisitos, las tramas Ethernet transmitidas se pueden dividir. Es decir, varias listas de descriptores de memoria (MDL) se pueden asociar a una estructura de NET_BUFFER en una solicitud de envío.

  • No divida el encabezado MAC del marco Ethernet de transmisión en varios MDL. Trate la marca LAN virtual (VLAN) (o Prioridad), si está presente, como parte del encabezado MAC. Por lo tanto, esta marca debe estar en el mismo MDL que el resto del encabezado MAC.

  • Si un controlador cambia los vínculos de la cadena MDL en una estructura de NET_BUFFER o la cadena de NET_BUFFER en una estructura de NET_BUFFER_LIST, el controlador debe restaurar los vínculos a la configuración original antes de que devuelva la propiedad del NET_BUFFER_LIST a un controlador demasiado excesivo. Sin embargo, no es necesario que los controladores restaure los vínculos entre estructuras de NET_BUFFER_LIST.