Compartir a través de


estructura NDIS_HD_SPLIT_ATTRIBUTES (ndis.h)

La estructura NDIS_HD_SPLIT_ATTRIBUTES define los atributos de división de datos de encabezado, si los hay, que están asociados a un adaptador de minipuerto.

Sintaxis

typedef struct _NDIS_HD_SPLIT_ATTRIBUTES {
  NDIS_OBJECT_HEADER Header;
  ULONG              HardwareCapabilities;
  ULONG              CurrentCapabilities;
  ULONG              HDSplitFlags;
  ULONG              BackfillSize;
  ULONG              MaxHeaderSize;
} NDIS_HD_SPLIT_ATTRIBUTES, *PNDIS_HD_SPLIT_ATTRIBUTES;

Miembros

Header

Estructura NDIS_OBJECT_HEADER de la estructura de características del proveedor (NDIS_HD_SPLIT_ATTRIBUTES). El controlador establece el miembro Type de la estructura que Header especifica para NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES, el miembro Revision en NDIS_OBJECT_HD_SPLIT_ATTRIBUTES_REVISION_1 y el miembro Size en NDIS_SIZEOF_HD_SPLIT_ATTRIBUTES_REVISION_1.

HardwareCapabilities

Las funcionalidades de hardware de división de datos de encabezado que admite el adaptador de miniporte. Estas funcionalidades deben incluir funcionalidades que están deshabilitadas actualmente por la configuración de archivos INF o a través de la página Propiedades avanzadas . El valor de HardwareCapabilities es un OR bit a bit de las marcas siguientes:

NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT

El adaptador de minipuerto puede dividir el encabezado y los datos en MDL independientes que cumplan los requisitos de compatibilidad con la división de datos de encabezado.

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS

El adaptador de minipuerto puede dividir fotogramas Ethernet IPv4 que incluyen opciones IPv4. El adaptador de minipuerto puede admitir la división de algunas opciones de IPv4, sin dividir otras.

Nota La NIC no debe dividir fotogramas IPv4 que contengan opciones IPv4 no admitidas. Si se divide un marco IPv4, la parte de encabezado del marco dividido debe contener todo el encabezado IPv4 y todas las opciones IPv4 que están presentes.
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS

El adaptador de minipuerto puede dividir marcos Ethernet IPv6 que incluyen encabezados de extensión IPv6. El adaptador de minipuerto puede admitir algunos encabezados de extensión IPv6, a la vez que no admite otros.

Nota La NIC no debe dividir fotogramas IPv6 que contengan encabezados de extensión IPv6 no admitidos. Si se divide un marco IPv6, la parte de encabezado del marco dividido debe contener todo el encabezado IPv6 y todos los encabezados de extensión IPv6 que están presentes.
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS

El adaptador de minipuerto puede dividir fotogramas TCP con otras opciones TCP, además de la opción timestamp. El adaptador de minipuerto puede admitir algunas opciones tcp y no admitir otras.

Nota Si la única opción TCP de un marco es la opción timestamp, el proveedor de división de datos debe poder dividir el marco.
 
Nota Si un encabezado TCP contiene una opción TCP no admitida, la NIC debe dividir el marco al principio del encabezado TCP o no debe dividir el marco.
 

CurrentCapabilities

Las funcionalidades actuales de división de datos de encabezado que admite el adaptador de miniporte. El controlador de minipuerto usa las mismas marcas definidas para el miembro HardwareCapabilities . En este caso, las marcas se establecen para indicar las funcionalidades actuales que dependen de las opciones de configuración actuales.

HDSplitFlags

Conjunto de marcas que controlan el estado de la división de datos de encabezado para un adaptador de minipuerto. El controlador de minipuerto debe establecer este miembro en cero antes de llamar a Función NdisMSetMiniportAttributes . Después de que NdisMSetMiniportAttributes vuelva correctamente, el controlador debe comprobar las marcas y configurar el hardware en consecuencia. NDIS establece este miembro con un OR bit a bit de las marcas siguientes:

NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT

Si se establece esta marca, el controlador de minipuerto debe habilitar la división de datos de encabezado en el hardware. De lo contrario, la división de datos de encabezado está deshabilitada. Si el equipo usa la división de datos de encabezado y el controlador de minipuerto también establece la marca de NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT en el miembro CurrentCapabilities , NDIS establece NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT.

BackfillSize

Tamaño de reposición, en bytes, para la parte de datos de un marco dividido. El controlador de minipuerto debe establecerse.
BackfillSize en cero antes de llamar a NdisMSetMiniportAttributes. NDIS establece este miembro si el controlador de minipuerto debe asignar previamente el almacenamiento de reposición en la parte de datos para fotogramas divididos. Después de que NdisMSetMiniportAttributes devuelva correctamente, el controlador debe usar el valor BackfillSize que NDIS establece para asignar previamente los búferes de datos.

MaxHeaderSize

Tamaño máximo, en bytes, para la parte de encabezado de un marco dividido. El controlador de miniport debe establecer MaxHeaderSize en cero antes de llamar a NdisMSetMiniportAttributes. NDIS establece este miembro en el tamaño máximo del búfer de encabezado para los fotogramas divididos. Después de que NdisMSetMiniportAttributes devuelva correctamente, el controlador debe usar el valor proporcionado por NDIS.

Nota Si la longitud de un encabezado supera MaxHeaderSize debido a la presencia de opciones IPv4, encabezados IPSec o encabezados de extensión IPv6, el marco no debe dividirse. Si un encabezado que incluye un encabezado TCP o UDP supera MaxHeaderSize debido a la presencia de encabezado TCP, opciones TCP o encabezado UDP, la NIC debe dividir el marco al principio del encabezado del protocolo de capa superior o no debe dividir el marco.
 

Comentarios

Para admitir la división de datos de encabezado, un controlador de minipuerto pasa un puntero a un NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES estructura en el parámetro MiniportAttributes del Función NdisMSetMiniportAttributes . El miembro HDSplitAttributes de NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES contiene un puntero a la estructura NDIS_HD_SPLIT_ATTRIBUTES. Un controlador de minipuerto llama a NdisMSetMiniportAttributes desde su función MiniportInitializeEx durante la inicialización.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.1 y versiones posteriores.
Encabezado ndis.h (incluya Ndis.h)

Consulte también

MiniportInitializeEx

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

NdisMSetMiniportAttributes