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


Рекомендации по программированию для драйверов RSC

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

Реагирование на запросы для статистики RSC

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

Перенаправленные TCP-пакеты

Драйвер мини-порта не должен выполнять RSC для сегментов в tcp-пакетах, которые не предназначены для узла, но перенаправляются на другой интерфейс.

Стек TCP/IP узла отключит RSC на любом интерфейсе с включенной пересылкой. Слабая переадресация узлов не влияет на RSC.

Поддержка RSC для упрощенных фильтров и промежуточных драйверов MUX

Все драйверы упрощенных фильтров NDIS 6.30 должны поддерживать получение пакетов, превышающих максимальную единицу передачи канала (MTU). Дополнительные сведения об ограничениях на размер сегмента см. в разделе Указание объединенных сегментов.

NDIS отключит RSC в интерфейсе, если какой-либо драйвер упрощенного фильтра или промежуточный драйвер MUX в стеке узлов имеет значение NDIS 6.20 или более поздней версии.

Промежуточный драйвер MUX может отключить RSC в интерфейсе, даже если версия NDIS интерфейса 6.30 или выше.

Драйверы проверки и выноски платформы фильтрации Windows (МПП)

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

Драйверы выносок МПП могут поддерживать обработку пакетов получения поддержки, размер которых превышает MTU канала. (Дополнительные сведения об ограничениях размера пакетов см. в разделе Отслеживание и указание объединенных сегментов.) Такие водители выносок МПП должны выполнять следующие действия:

  • Согласие на обработку больших пакетов во время регистрации.

  • Установите флаг драйвера выноски, как указано на странице справки для структуры FWPS_CALLOUT2 .

Всякий раз, когда драйвер выноски, не согласился на обработку больших пакетов, регистрируется, МПП уведомляет TCP/IP в контексте регистрации. В рамках обработки этого уведомления TCP/IP отключит RSC в интерфейсе.

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