Partager via


structure NDIS_TCP_CONNECTION_OFFLOAD (ntddndis.h)

La structure NDIS_TCP_CONNECTION_OFFLOAD fournit des informations de déchargement de connexion pour les paramètres actuels et pour les fonctionnalités prises en charge.

Syntaxe

typedef struct _NDIS_TCP_CONNECTION_OFFLOAD {
  NDIS_OBJECT_HEADER Header;
  ULONG              Encapsulation;
  ULONG              SupportIPv4 : 2;
  ULONG              SupportIPv6 : 2;
  ULONG              SupportIPv6ExtensionHeaders : 2;
  ULONG              SupportSack : 2;
  ULONG              CongestionAlgorithm : 4;
  ULONG              TcpConnectionOffloadCapacity;
  ULONG              Flags;
} NDIS_TCP_CONNECTION_OFFLOAD, *PNDIS_TCP_CONNECTION_OFFLOAD;

Membres

Header

Structure NDIS_OBJECT_HEADER de la structure NDIS_TCP_CONNECTION_OFFLOAD. Définissez le membre Type de la structure spécifiée par l’en-tête sur NDIS_OBJECT_TYPE_DEFAULT, le membre Revisionsur NDIS_TCP_CONNECTION_OFFLOAD_REVISION_1 et le membre Size sur NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_1.

Encapsulation

Paramètres d’encapsulation pour le déchargement de la cheminée TCP. Pour plus d’informations sur ce membre, consultez la section Remarques suivante.

SupportIPv4

Valeur ULONG qu’une cible de déchargement définit pour indiquer qu’elle prend en charge IPv4. La pile de pilotes TCP/IP définit ce membre pour activer IPv4.

SupportIPv6

Valeur ULONG qu’une cible de déchargement définit pour indiquer qu’elle prend en charge IPv6. La pile de pilotes TCP/IP définit ce membre pour activer IPv6. Notez qu’une cible de déchargement peut prendre en charge IPv4 et IPv6.

SupportIPv6ExtensionHeaders

Valeur ULONG définie par une cible de déchargement pour indiquer qu’elle prend en charge les en-têtes d’extension IPv6 (c’est-à-dire le routage, la fragmentation/le réassemblage, l’authentification, l’encapsulation, le traitement de tronçon par tronçon et les options de destination). La pile de pilotes TCP/IP définit ce membre pour activer les en-têtes d’extension IPv6.

SupportSack

Valeur ULONG qu’une cible de déchargement définit pour indiquer qu’elle prend en charge les accusés de réception sélectifs TCP (SACK) pour les opérations de transmission et de réception. La pile de pilotes TCP/IP définit ce membre pour activer les SACK pour les opérations de transmission et de réception.

Si une cible de déchargement définit le membre SupportSack , la cible doit être en mesure de générer et d’utiliser des segments SACK. Si une cible de déchargement ne prend pas en charge l’option SACK, la cible doit être en mesure d’ignorer l’option SACK et de traiter le reste du segment TCP normalement.

CongestionAlgorithm

Réservé pour un usage futur.

Si vous êtes un fournisseur de matériel indépendant (IHV) et que vous souhaitez implémenter des algorithmes de contrôle de la congestion non par défaut, par exemple TCP composé, contactez Microsoft à l’adresse External TCP Offload Triage.

TcpConnectionOffloadCapacity

Valeur ULONG qu’une cible de déchargement définit pour indiquer le nombre maximal de connexions TCP déchargées qu’elle prend en charge. Ce nombre inclut les connexions IPv4 et IPv6.

Flags

Réservé.

Remarques

La structure NDIS_TCP_CONNECTION_OFFLOAD spécifie les services actuels ou pris en charge qu’un adaptateur miniport fournit pour le déchargement de la cheminée TCP.

La structure NDIS_TCP_CONNECTION_OFFLOAD est utilisée dans le structure NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES , structure NDIS_BIND_PARAMETERS , OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG OID OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES OID, NDIS_STATUS_OFFLOAD_RESUME status indication, et NDIS_STATUS_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES status indication. (Pour plus d’informations sur NDIS_STATUS_OFFLOAD_RESUME, consultez la documentation sur le déchargement de la cheminée TCP NDIS 6.0.)

Les pilotes miniport ne reçoivent pas les requêtes OID. NDIS utilise les informations fournies par le pilote miniport dans les attributs et les indications status pour fournir des réponses aux requêtes OID et fournir des paramètres de liaison.

NDIS fournit une structure NDIS_TCP_CONNECTION_OFFLOAD en réponse à une requête de OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG ou de OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES. En réponse à une requête OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG, la structure NDIS_TCP_CONNECTION_OFFLOAD spécifie les paramètres de configuration actuels de la cible de déchargement. En réponse à une requête OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES, la structure de NDIS_TCP_CONNECTION_OFFLOAD spécifie les fonctionnalités matérielles de la cible de déchargement pour le déchargement des connexions TCP à partir du transport TCP/IP.

Le membre Encapsulation de NDIS_TCP_CONNECTION_OFFLOAD définit les paramètres d’encapsulation du déchargement de la cheminée TCP pour l’adaptateur miniport.

Pour un OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES requête, NDIS fournit un indicateur unique qui indique les fonctionnalités d’encapsulation matérielle dans le membre Encapsulation .

Pour un OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG requête, NDIS fournit un OR au niveau du bit des indicateurs d’encapsulation, qui indique les paramètres d’encapsulation actuels.

Les indicateurs suivants sont définis pour le membre Encapsulation :

Important Un pilote miniport ou mux capable de cheminée doit définir le membre Encapsulation sur NDIS_ENCAPSULATION_IEEE_802_3, NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED ou les deux. Sinon, la capacité de cheminée ne sera pas reconnue.
 

Requêtes de déchargement TCP Chimney

Lorsqu’un NDIS répond à une requête de OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES ou OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG pour une cible de déchargement, NDIS fournit les membres SupportIp4, SupportIp6, SupportIp6ExtensionHeaders et SupportISack de la structure NDIS_TCP_CONNECTION_OFFLOAD. Ces membres peuvent avoir l’une des valeurs suivantes :

Une cible de déchargement doit prendre en charge IPv4 ou IPv6 (ou les deux). Les cibles de déchargement peuvent éventuellement prendre en charge les en-têtes d’extension IPv6.

Une cible de déchargement ne doit prendre en charge aucune option IPv4. La cible de déchargement doit transférer tous les datagrammes IP reçus qui contiennent des options IPv4 vers la pile de pilotes TCP/IP. La cible de déchargement indique ces datagrammes IP à la pile de pilotes TCP/IP en appelant NdisMIndicateReceiveNetBufferLists. La pile de pilotes TCP/IP traite les options IPv4 et retourne les datagrammes à la cible de déchargement Fonction MiniportTcpOffloadForward . (Pour plus d’informations sur MiniportTcpOffloadForward, consultez la documentation sur le déchargement de cheminée TCP NDIS 6.0.)

La cible de déchargement doit également fournir une valeur pour le membre TcpConnectionOffloadCapacity de NDIS_TCP_CONNECTION_OFFLOAD. Cette valeur doit correspondre au nombre maximal de connexions TCP déchargées simultanément que la cible de déchargement peut prendre en charge.

Notez qu’une cible de déchargement ne peut pas indiquer directement de nouvelles fonctionnalités de déchargement. Au lieu de cela, la cible de déchargement doit demander à la pile de pilotes TCP/IP de suspendre, puis de reprendre les déchargements. Lorsque l’adaptateur miniport est prêt à reprendre le déchargement des connexions TCP, il émet une indication NDIS_STATUS_OFFLOAD_RESUME status pour signaler les nouvelles fonctionnalités de déchargement de connexion. Pour plus d’informations sur NDIS_STATUS_OFFLOAD_RESUME, consultez la documentation sur le déchargement de cheminée TCP NDIS 6.0.

Configuration requise

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

Voir aussi

NDIS_BIND_PARAMETERS

NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES

NDIS_OBJECT_HEADER

NDIS_OFFLOAD

NDIS_STATUS_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES NdisMIndicateReceiveNetBufferLists OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES