empaquetado de datos de NET_BUFFER
El empaquetado de datos se rediseñó en NDIS 6.0. La arquitectura de envío y recepción que se basa en la estructura de NDIS_PACKET se ha reemplazado por una arquitectura basada en estructuras de NET_BUFFER y NET_BUFFER_LIST . Una estructura de NET_BUFFER es el equivalente funcional de una estructura de NDIS_PACKET. Una estructura de NET_BUFFER especifica un búfer (cadena MDL) para los datos de red, así como espacio reservado para NDIS, controladores de protocolo y controladores de minipuerto. NET_BUFFER estructuras se pueden vincular en una lista descrita por una estructura NET_BUFFER_LIST. Una estructura de NET_BUFFER_LIST también proporciona almacenamiento para datos fuera de banda (OOB) que se aplican a todas las estructuras de NET_BUFFER de la lista.
Todos los componentes de la pila de controladores de red de próxima generación de Microsoft, incluido el transporte TCP/IP y Winsock, usan NET_BUFFER empaquetado de datos. El empaquetado uniforme de datos en toda la pila del controlador elimina la necesidad de volver a empaquetar los datos, simplifica el control de datos y reduce el número de llamadas de función.
Para dar cabida a los controladores más antiguos que usan estructuras de NDIS_PACKET, NDIS 6.0 convierte NDIS_PACKET estructuras en estructuras NET_BUFFER y viceversa. Esta traducción es transparente para los controladores NDIS.
NDIS propaga los requisitos de reposición de datos de un controlador a los controladores de nivel superior. Al asignar NET_BUFFER y estructuras de NET_BUFFER_LIST para enviar datos, un controlador de nivel superior asigna suficiente espacio de datos para dar cabida a todos los controladores de nivel inferior de la pila. Como resultado, los controladores de nivel inferior no tienen que asignar espacio de búfer adicional para acomodar encabezados específicos de la capa. En su lugar, pueden usar el espacio de reposición asignado previamente para este propósito.
Para obtener más información sobre la arquitectura de NET_BUFFER, consulte arquitectura de NET_BUFFER.