Поделиться через


структура NDIS_TCP_CONNECTION_OFFLOAD (ntddndis.h)

Структура NDIS_TCP_CONNECTION_OFFLOAD предоставляет сведения о разгрузке подключения для текущих параметров и поддерживаемых возможностей.

Синтаксис

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;

Члены

Header

Структура NDIS_OBJECT_HEADER для структуры NDIS_TCP_CONNECTION_OFFLOAD. Задайте для элемента Type структуры, указанной в заголовке, значение NDIS_OBJECT_TYPE_DEFAULT, для элемента RevisionNDIS_TCP_CONNECTION_OFFLOAD_REVISION_1, а для элемента Size— значение NDIS_SIZEOF_TCP_CONNECTION_OFFLOAD_REVISION_1.

Encapsulation

Параметры инкапсуляции для разгрузки дымохода TCP. Дополнительные сведения об этом члене см. в следующем разделе Примечаний.

SupportIPv4

Значение ULONG, которое целевой объект разгрузки задает, чтобы указать, что он поддерживает IPv4. Стек драйвера TCP/IP устанавливает этот член для включения IPv4.

SupportIPv6

Значение ULONG, которое целевой объект разгрузки задает, чтобы указать, что он поддерживает IPv6. Стек драйвера TCP/IP устанавливает этот член для включения IPv6. Обратите внимание, что целевой объект разгрузки может поддерживать как IPv4, так и IPv6.

SupportIPv6ExtensionHeaders

Значение ULONG, которое целевой объект разгрузки задает, чтобы указать, что он поддерживает заголовки расширения IPv6 (то есть маршрутизация, фрагментация/повторная сборка, проверка подлинности, инкапсуляция, обработка прыжков за прыжком и параметры назначения). Стек драйвера TCP/IP задает этот член для включения заголовков расширения IPv6.

SupportSack

Значение ULONG, которое целевой объект разгрузки задает, чтобы указать, что он поддерживает выборочные подтверждения TCP (SACK) для операций передачи и получения. Стек драйвера TCP/IP задает этот элемент для включения SACK для операций передачи и получения.

Если целевой объект разгрузки задает член SupportSack , целевой объект должен иметь возможность создавать и использовать сегменты SACK. Если целевой объект разгрузки не поддерживает параметр SACK, целевой объект должен иметь возможность игнорировать параметр SACK и нормально обрабатывать остальную часть сегмента TCP.

CongestionAlgorithm

Зарезервировано для последующего использования.

Если вы являетесь независимым поставщиком оборудования (IHV) и хотите реализовать алгоритмы управления перегрузкой, например составной TCP, обратитесь в корпорацию Майкрософт по адресу External TCP Offload Triage.

TcpConnectionOffloadCapacity

Значение ULONG, которое целевой объект разгрузки задает для указания максимального числа разгруженных TCP-подключений, которые он поддерживает. Это число включает подключения IPv4 и IPv6.

Flags

Зарезервировано.

Комментарии

Структура NDIS_TCP_CONNECTION_OFFLOAD определяет текущие или поддерживаемые службы, предоставляемые адаптером мини-порта для разгрузки дымохода TCP.

Структура NDIS_TCP_CONNECTION_OFFLOAD используется в NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES структура , NDIS_BIND_PARAMETERS структура OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG OID OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES OID, NDIS_STATUS_OFFLOAD_RESUME указание состояния, и NDIS_STATUS_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES указание состояния. (Сведения о NDIS_STATUS_OFFLOAD_RESUME см. в документации по разгрузке дымохода TCP NDIS 6.0.)

Драйверы мини-портов не получают запросы OID. NDIS использует сведения, предоставляемые драйвером мини-порта в атрибутах и указаниях состояния, для предоставления ответов на запросы OID и для предоставления параметров привязки.

NDIS предоставляет структуру NDIS_TCP_CONNECTION_OFFLOAD в ответ на запрос OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG или OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES. В ответ на запрос OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG структура NDIS_TCP_CONNECTION_OFFLOAD указывает текущие параметры конфигурации целевого объекта разгрузки. В ответ на запрос OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES структура NDIS_TCP_CONNECTION_OFFLOAD определяет аппаратные возможности целевого объекта разгрузки для разгрузки TCP-подключений из транспорта TCP/IP.

Элемент инкапсуляции NDIS_TCP_CONNECTION_OFFLOAD определяет параметры инкапсуляции разгрузки TCP-дымохода для адаптера мини-порта.

Для OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES запроса NDIS предоставляет единый флаг, указывающий возможности аппаратной инкапсуляции в элементе инкапсуляции .

Для OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG запросе NDIS предоставляет побитовое ИЛИ флагов инкапсуляции, указывающее текущие параметры инкапсуляции.

Для элемента инкапсуляции определены следующие флаги:

Важно Драйвер минипорта или мультиплекса, поддерживающий дымоход, должен задать для элемента инкапсуляции NDIS_ENCAPSULATION_IEEE_802_3, NDIS_ENCAPSULATION_IEEE_LLC_SNAP_ROUTED или и то, и другое. В противном случае возможность дымохода не будет распознана.
 

Запросы разгрузки TCP Chimney

Когда NDIS отвечает на запрос OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES или OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG для целевого объекта разгрузки NDIS предоставляет элементы SupportIp4, SupportIp6, SupportIp6ExtensionHeaders и SupportISack структуры NDIS_TCP_CONNECTION_OFFLOAD. Эти члены могут иметь одно из следующих значений:

Целевой объект разгрузки должен поддерживать IPv4 или IPv6 (или и то, и другое). При необходимости целевые объекты разгрузки могут поддерживать заголовки расширения IPv6.

Целевой объект разгрузки не должен поддерживать параметры IPv4. Целевой объект разгрузки должен пересылать все полученные ip-датаграммы, содержащие параметры IPv4, в стек драйверов TCP/IP. Целевой объект разгрузки указывает такие датаграммы IP в стек драйвера TCP/IP путем вызова NdisMIndicateReceiveNetBufferLists. Стек драйвера TCP/IP обрабатывает параметры IPv4 и возвращает датаграммы целевому объекту разгрузки.Функция MiniportTcpOffloadForward. (Сведения о MiniportTcpOffloadForward см. в документации по разгрузке дымохода TCP NDIS 6.0.)

Целевой объект разгрузки также должен предоставлять значение для члена TcpConnectionOffloadCapacity NDIS_TCP_CONNECTION_OFFLOAD. Это значение должно быть максимальным количеством одновременно разгруженных TCP-подключений, которое может поддерживать целевой объект разгрузки.

Обратите внимание, что целевой объект разгрузки не может напрямую указывать на новые возможности разгрузки. Вместо этого целевой объект разгрузки должен запросить стек драйверов TCP/IP для приостановки, а затем возобновить разгрузку. Когда адаптер мини-порта готов к возобновлению разгрузки TCP-подключений, он выдает NDIS_STATUS_OFFLOAD_RESUME состояние, чтобы сообщить о новых возможностях разгрузки подключения. Дополнительные сведения о NDIS_STATUS_OFFLOAD_RESUME см. в документации по разгрузке дымохода TCP NDIS 6.0.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.0 и более поздних версиях.
Верхняя часть ntddndis.h (включая Ndis.h)

См. также раздел

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