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


Улучшенные пути отправки и получения

Пути отправки и получения NDIS 6.0 были улучшены следующим образом для повышения производительности:

  • Все функции отправки и получения драйвера NDIS 6.0 и более поздних версий могут передавать связанный список NET_BUFFER_LIST структур и связанных с ними структур NET_BUFFER с помощью одного вызова функции. Эта поддержка истинных многопакетных операций отправки и получения значительно сокращает количество вызовов функций, которые должны выполнять драйверы.

  • При вызове функции отправки или получения драйвер, работающий в DISPATCH_LEVEL, может указать, что его IRQL передается в NDIS. Когда NDIS впоследствии вызывает другие драйверы в стеке, этим драйверам не нужно тестировать IRQL или задавать для него значение DISPATCH_LEVEL. Это снижает затраты, связанные с тестированием и настройкой IRQL в критических разделах кода.

  • Когда драйверы передают пакеты вверх и вниз по стеку драйверов, они могут запросить NDIS для настройки NET_BUFFER смещения данных в соответствии с информацией о заголовках. При отправке пакета драйвер может расширить используемое пространство данных для размещения сведений о заголовке драйвера. При указании пакета получения драйвер может уменьшить используемое пространство данных после того, как драйвер получит доступ к сведениям заголовка. Эта возможность динамически настраивать используемое пространство данных в NET_BUFFER структуре, не выделяя и не освобождая память или копирования данных, снижает затраты, необходимые для обработки сетевых данных.

Дополнительные сведения об обработке данных отправки и получения в NDIS 6.0 см. в статье NET_BUFFER Архитектура.