Partager via


NDIS_HD_SPLIT_ATTRIBUTES structure (ndis.h)

La structure NDIS_HD_SPLIT_ATTRIBUTES définit les attributs de fractionnement d’en-tête-données, le cas échéant, associés à un adaptateur miniport.

Syntaxe

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;

Membres

Header

Structure NDIS_OBJECT_HEADER pour la structure des caractéristiques du fournisseur (NDIS_HD_SPLIT_ATTRIBUTES). Le pilote définit le membre Type de la structure que Header spécifie sur NDIS_OBJECT_TYPE_HD_SPLIT_ATTRIBUTES, le membre Revision sur NDIS_OBJECT_HD_SPLIT_ATTRIBUTES_REVISION_1 et le membre Size sur NDIS_SIZEOF_HD_SPLIT_ATTRIBUTES_REVISION_1.

HardwareCapabilities

Fonctionnalités matérielles de fractionnement d’en-tête et de données prises en charge par l’adaptateur miniport. Ces fonctionnalités doivent inclure des fonctionnalités actuellement désactivées par les paramètres de fichier INF ou via la page Propriétés avancées . La valeur de HardwareCapabilities est au niveau du bit OU des indicateurs suivants :

NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT

L’adaptateur miniport peut fractionner l’en-tête et les données en plusieurs DLL distinctes qui répondent aux exigences de prise en charge du fractionnement d’en-tête et de données.

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV4_OPTIONS

L’adaptateur miniport peut fractionner des trames Ethernet IPv4 qui incluent des options IPv4. L’adaptateur miniport peut prendre en charge le fractionnement de certaines options IPv4 sans en fractionner d’autres.

Note La carte réseau ne doit pas fractionner les trames IPv4 qui contiennent des options IPv4 non prises en charge. Si un frame IPv4 est fractionné, la partie d’en-tête du frame de fractionnement doit contenir l’en-tête IPv4 entier et toutes les options IPv4 présentes.
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_IPV6_EXTENSION_HEADERS

L’adaptateur miniport peut fractionner des trames Ethernet IPv6 qui incluent des en-têtes d’extension IPv6. L’adaptateur miniport peut prendre en charge certains en-têtes d’extension IPv6 tout en ne prenant pas en charge d’autres.

Note La carte réseau ne doit pas fractionner les trames IPv6 qui contiennent des en-têtes d’extension IPv6 non pris en charge. Si une trame IPv6 est fractionnée, la partie d’en-tête du frame de fractionnement doit contenir l’en-tête IPv6 entier et tous les en-têtes d’extension IPv6 présents.
 

NDIS_HD_SPLIT_CAPS_SUPPORTS_TCP_OPTIONS

L’adaptateur miniport peut fractionner des trames TCP avec d’autres options TCP en plus de l’option timestamp. L’adaptateur miniport peut prendre en charge certaines options TCP et pas d’autres.

Note Si la seule option TCP dans un frame est l’option timestamp, le fournisseur de fractionnement des données doit être en mesure de fractionner le frame.
 
Note Si un en-tête TCP contient une option TCP non prise en charge, la carte réseau doit fractionner l’image au début de l’en-tête TCP ou ne doit pas fractionner le frame.
 

CurrentCapabilities

Fonctionnalités actuelles de fractionnement d’en-tête et de données prises en charge par l’adaptateur miniport. Le pilote miniport utilise les mêmes indicateurs que ceux définis pour le membre HardwareCapabilities . Dans ce cas, les indicateurs sont définis pour indiquer les fonctionnalités actuelles qui dépendent des paramètres de configuration actuels.

HDSplitFlags

Ensemble d’indicateurs qui contrôlent la status de fractionnement d’en-tête-données pour un adaptateur miniport. Le pilote miniport doit définir ce membre sur zéro avant d’appeler le NdisMSetMiniportAttributes , fonction. Une fois que NdisMSetMiniportAttributes a été retourné, le pilote doit case activée les indicateurs et configurer le matériel en conséquence. NDIS définit ce membre avec un OR au niveau du bit des indicateurs suivants :

NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT

Si cet indicateur est défini, le pilote miniport doit activer le fractionnement des données d’en-tête dans le matériel. Sinon, le fractionnement en-tête-données est désactivé. Si l’ordinateur utilise le fractionnement des données d’en-tête et que le pilote miniport définit également l’indicateur NDIS_HD_SPLIT_CAPS_SUPPORTS_HEADER_DATA_SPLIT dans le membre CurrentCapabilities , NDIS définit NDIS_HD_SPLIT_ENABLE_HEADER_DATA_SPLIT.

BackfillSize

Taille de renvoi, en octets, pour la partie données d’une trame fractionnée. Le pilote de miniport doit être défini
BackfillSize à zéro avant d’appeler NdisMSetMiniportAttributes. NDIS définit ce membre si le pilote miniport doit préallouer le stockage de remplissage dans la partie données pour les trames fractionnées. Une fois que NdisMSetMiniportAttributes a été retourné, le pilote doit utiliser la valeur BackfillSize définie par NDIS pour préallouer les mémoires tampons de données.

MaxHeaderSize

Taille maximale, en octets, pour la partie d’en-tête d’un frame fractionné. Le pilote miniport doit définir MaxHeaderSize sur zéro avant d’appeler NdisMSetMiniportAttributes. NDIS définit ce membre sur la taille maximale de la mémoire tampon d’en-tête pour les trames fractionnées. Une fois que NdisMSetMiniportAttributes a correctement retourné, le pilote doit utiliser la valeur fournie par NDIS.

Note Si la longueur d’un en-tête dépasse MaxHeaderSize en raison de la présence d’options IPv4, d’en-têtes IPSec ou d’en-têtes d’extension IPv6, le frame ne doit pas être fractionné. Si un en-tête qui inclut un en-tête TCP ou UDP dépasse MaxHeaderSize en raison de la présence d’en-tête TCP, d’options TCP ou d’en-tête UDP, la carte réseau doit fractionner l’image au début de l’en-tête de protocole de couche supérieure ou ne doit pas fractionner le frame.
 

Remarques

Pour prendre en charge le fractionnement des en-têtes et des données, un pilote miniport transmet un pointeur vers un NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES structure dans le paramètre MiniportAttributes du NdisMSetMiniportAttributes , fonction. Le membre HDSplitAttributes de NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES contient un pointeur vers la structure NDIS_HD_SPLIT_ATTRIBUTES. Un pilote miniport appelle NdisMSetMiniportAttributes à partir de sa fonction MiniportInitializeEx pendant l’initialisation.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.1 et versions ultérieures.
En-tête ndis.h (inclure Ndis.h)

Voir aussi

MiniportInitializeEx

NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES

NDIS_OBJECT_HEADER

NdisMSetMiniportAttributes