Определение возможностей RSC сетевого адаптера

Драйвер мини-порта с поддержкой получения сегмента (RSC) сообщает о своей возможности RSC с помощью структуры NDIS_OFFLOAD, которая передается в NdisMSetMiniportAttributes.

Отчеты о возможностях RSC

В структуре NDIS_OFFLOAD необходимо задать элемент заголовка следующим образом:

  • Элемент редакции должен быть установлен в значение NDIS_OFFLOAD_REVISION_3.
  • Элемент Размер должен быть установлен в NDIS_SIZEOF_NDIS_OFFLOAD_REVISION_3.

Чтобы сообщить о поддержке RSC, минипорт-драйвер может задать следующие члены в структуре NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD , которая хранится в члене Rsc структуры NDIS_OFFLOAD :

  • Задайте для члена IPv4.Enabledзначение TRUE , чтобы указать поддержку RSC для IPv4.

  • Задайте для члена IPv6.Enabledзначение TRUE , чтобы указать поддержку RSC для IPv6.

Минипорт-драйвер должен поддерживать RSC как минимум для инкапсуляции IEEE 802.3. Кроме того, она может поддерживать RSC для любых других инкапсулирований. Если он не поддерживает RSC для некоторой инкапсуляции, и он получает пакеты этой инкапсуляции, драйвер должен указать пакеты в стеке как обычно.

Запрос функционала RSC

Чтобы определить, поддерживает ли минипорт драйвер RSC, драйверы протокола и другие драйверы могут выдавать запрос OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES OID, который вернет структуру NDIS_OFFLOAD .