Compartir a través de


Acceso a la descarga de TCP/IP NET_BUFFER_LIST información

Las versiones 6.0 y posteriores de NDIS proporcionan datos de descarga tcp/IP fuera de banda (OOB) en el miembro NetBufferListInfo de la estructura NET_BUFFER_LIST , que especifica una lista vinculada de estructuras de NET_BUFFER . El miembro NetBufferListInfo es una matriz de valores que contienen información común a todas las estructuras NET_BUFFER de la lista.

Use los siguientes identificadores con la macro NET_BUFFER_LIST_INFO para establecer y obtener los datos OOB de descarga tcp/IP en la matriz NetBufferListInfo :

TcpIpChecksumNetBufferListInfo
Especifica la información de suma de comprobación que se usa en la descarga de tareas de suma de comprobación del protocolo TCP/IP en un controlador de minipuerto. Al especificar TcpIpChecksumNetBufferListInfo, NET_BUFFER_LIST_INFO devuelve una estructura NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO (no un puntero a la estructura). Esta estructura contiene una unión que permite tener acceso a la información de suma de comprobación como un único valor PVOID o como campos de bits.

IPsecOffloadV1NetBufferListInfo
Especifica la información de descarga de la descarga de seguridad del protocolo de Internet (IPsec) que se usa en la descarga de tareas de IPsec desde el protocolo TCP/IP a un controlador de minipuerto. Al especificar IPsecOffloadV1NetBufferListInfo, NET_BUFFER_LIST_INFO devuelve una estructura NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO .

TcpLargeSendNetBufferListInfo
Especifica información que se usa para descargar la segmentación de un paquete TCP grande del protocolo TCP/IP a un controlador de miniport. Al especificar TcpLargeSendNetBufferListInfo, NET_BUFFER_LIST_INFO devuelve una estructura NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO (no un puntero a la estructura). Esta estructura contiene una unión que permite tener acceso a la información como un único valor PVOID o como campos de bits.

Ieee8021QNetBufferListInfo
Especifica la información 802.1Q sobre un paquete. Al especificar Ieee8021QNetBufferListInfo, NET_BUFFER_LIST_INFO devuelve el miembro Value de una estructura de NDIS_NET_BUFFER_LIST_8021Q_INFO . Esta estructura puede especificar la información de identificador de prioridad 802.1p y LAN virtual (VLAN). La información de prioridad de 802.1p se usa para establecer la prioridad de paquetes en redes compartidas de medios compartidos 802.

Si un controlador de minipuerto informa de la compatibilidad con la encapsulación de NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB, debe insertar los datos Ieee8021QNetBufferListInfo en paquetes Ethernet de descarga grande de envío de carga 1 (LSOV1) y grandes paquetes Ethernet de descarga de la versión 2 (LSOV2).

TcpOffloadBytesTransferred
Especifica el número de bytes de datos transferidos en una operación de envío, recepción o desconexión de la chimenea TCP.

TcpReceiveNoPush
Especifica un valor booleano que representa el modo de inserción de una solicitud de recepción de descarga de chimenea TCP. Si es TRUE, la solicitud de recepción está en modo no push. De lo contrario, la solicitud de recepción está en modo de inserción.

En el caso de los tipos de descarga LSOV1, LSOV2, suma de comprobación e IPsec, un controlador de minipuerto realiza la descarga de tareas en función del tipo de datos OOB y de las funcionalidades de descarga notificadas. Por ejemplo, si un controlador de protocolo requiere servicios LSOV1 para un paquete IPv4, cada solicitud de envío que proporciona el controlador de protocolo incluye la información del miembro LsoV1Transmit en los datos de OOB de NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO . Tenga en cuenta que el controlador de protocolo debe comprobar que el controlador de minipuerto admite IPv4, con el tipo de encapsulación especificado, antes de realizar la solicitud de envío.

La estructura NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO contiene el tamaño máximo de segmento (MSS). El miembro TcpHeaderOffset especifica la ubicación del encabezado TCP para que el controlador de miniporte no tenga que analizar encabezados IP, opciones de IP o encabezados de extensión IP.

Un controlador de minipuerto NDIS 6.0 y versiones posteriores que admita LSOV2 y LSOV1 debe comprobar el miembro Type de NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO para determinar si la pila de controladores usa LSOV2 o LSOV1 y debe realizar la descarga adecuada.

Para LSOv1, antes de que un controlador de miniporte complete el envío de un paquete TCP grande que ha segmentado en paquetes más pequeños mediante LSO, el controlador escribe el número de bytes de carga TCP que envió en los paquetes segmentados en el miembro TcpPayload de NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO.

Si un controlador de minipuerto especifica la marca NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q en sus funcionalidades, el controlador puede realizar servicios de descarga de tareas para NET_BUFFER_LIST estructuras que contienen el encabezado VLAN en los datos del búfer. En el caso de los datos recibidos, esta marca indica que el controlador de minipuerto realizará el cálculo de suma de comprobación de recepción y colocará el encabezado VLAN en el paquete Ethernet.

Si un controlador de minipuerto especifica la marca NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB en sus funcionalidades, el controlador puede realizar la descarga en NET_BUFFER_LIST estructuras que contienen el encabezado VLAN en los datos de ieee8021QnetBufferListInfo OOB. En el caso de descarga de suma de comprobación de recepción, la minipuerta inserta el encabezado VLAN en los datos ieee8021QnetBufferListInfo OOB.