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 :
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) |