Общие сведения о разгрузках оборудования NetAdapterCx

Чтобы повысить производительность, стек WINDOWS TCP/IP может разгрузить некоторые задачи в сетевой интерфейс карта (NIC), который имеет соответствующие возможности разгрузки задач.

NetAdapterCx фокусируется на простоте настройки разгрузки и управлении возможностями разгрузки. Клиентские драйверы должны только указать простую конфигурацию для своих возможностей разгрузки оборудования и регистрировать обратные вызовы, чтобы получать уведомления об изменениях в возможностях.

В этом руководстве представлен обзор основных понятий для аппаратной разгрузки в NetAdapterCx.

  • Возможности разгрузки оборудования объявляются оборудованием сетевого адаптера во время инициализации и должны быть объявлены перед вызовом NetAdapterStart.
  • Драйверу не нужно проверка ключевые слова стандартного реестра. NetAdapterCx проверяет ключевые слова реестра и учитывает их при включении активных возможностей разгрузки.
  • Активные возможности разгрузки сетевого адаптера — это возможности, которые сетевой адаптер в настоящее время запрограммирован на выполнение. Это подмножество аппаратных возможностей, объявленных ранее клиентским драйвером.
  • Стек TCP/IP или драйвер слишком большого протокола может запросить изменение активных возможностей сетевого адаптера. Клиентские драйверы регистрируют обратные вызовы в NetAdapterCx, чтобы получать уведомления об изменениях в активных возможностях разгрузки.
  • Если для разгрузки требуется расширение пакета, оно автоматически регистрируется, когда сетевой адаптер объявляет поддержку аппаратной разгрузки.

Клиентские драйверы объявляют в NetAdapterCx детализированный набор возможностей для типов сетевых пакетов, которые их оборудование может разгружать. Например, это могут быть параметры IPv4, расширения IPv6, параметры TCP или любые их сочетания и т. д. Определенное оборудование может выполнять разгрузку, только если известно смещение заголовка пакета, а драйвер клиента такого оборудования также может указать ограничение на смещение заголовка пакета. Например, если аппаратный дескриптор имеет только 8 бит для хранения смещения заголовка уровня 4, драйвер клиента установит для Layer4HeaderOffset значение 255. Все пакеты, не охватываемые возможностями драйвера клиента, будут разгружены в программном обеспечении с помощью NetAdapterCx.

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

Примечание

Если вы хотите, чтобы NetAdapterCx выполнял программный откат для разгрузки, которая не поддерживается оборудованием, драйвер клиента должен включить стандартизированные ключевые слова для этой разгрузки в INF-файл. Например, если драйвер клиента не может выполнять разгрузку RSC на оборудовании и требует NetAdapterCx для выполнения этой разгрузки в программном обеспечении, ключевые слова *RscIpv4 и *RscIpv6 должны быть включены в INF.

NetAdapterCx и стек WINDOWS TCP/IP поддерживают следующие разгрузки:

Имя разгрузки Описание
Контрольная сумма Разгрузка вычисления и проверки контрольных сумм IP и TCP на сетевой адаптер.
Универсальная разгрузка отправки (GSO) Разгрузка сегментации больших пакетов TCP/UDP для IPv4 и IPv6.
Receive Segment Coalescing (RSC) Разгрузка объединения последовательности полученных сегментов TCP для IPv4 и IPv6.

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