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


Поддержка сетевых карточек

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

Создание отчетов о среднем типе сетевого адаптера в NDIS

Чтобы сообщить о среднем типе сетевой карты, драйвер мини-порта передает указатель на структуру NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES в параметре MiniportAttributes функции NdisMSetMiniportAttributes . Драйвер мини-порта вызывает NdisMSetMiniportAttributes из функции MiniportInitializeEx во время инициализации. Драйверы miniport должны задавать атрибуты MiniportAttributes после установки атрибутов регистрации в структуре NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES и перед установкой любых других атрибутов. Установка атрибутов MiniportAttributes является обязательной. При установке атрибутов MiniportAttributes драйвер задает элементу MediaType структуры NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES соответствующий тип мультимедиа.

Когда драйвер протокола NDIS вызывает NdisOpenAdapterEx для привязки к указанному адаптеру мини-порта, он предоставляет список средних типов, с которыми он может работать. NDIS использует сведения из драйвера мини-порта и драйвера протокола для настройки привязки. Эта привязка предоставляет путь для передачи сетевых данных вверх и вниз по стеку драйверов.

Физические сетевые адаптеры

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

  • Сетевые адаптеры NDIS-WDM

    При использовании сетевых адаптеров NDIS-WDM, таких как сетевые карты на основе USB, то, как драйвер мини-порта управляет памятью с помощью DMA, не имеет значения для NDIS и невидим для него.

  • Сетевые адаптеры DMA master шины

    Эти сетевые адаптеры могут напрямую обращаться к памяти узла через встроенный контроллер DMA, который управляет передачей данных между сетью и памятью узла без использования ЦП узла.

    Для отправки драйвер мини-порта настраивает сетевой адаптер для сопоставления исходящих буферов. Затем драйвер мини-порта заставляет устройство начать передачу из этой памяти. Контроллер DMA сетевой карты передает данные из общей системной памяти в сеть и прерывает работу ЦП по завершении отправки. Для получения контроллер DMA передает входящие данные в память узла, прежде чем уведомлять узел прерыванием.

    Сетевой адаптер DMA master шины обычно имеет кольцевой буфер, который драйвер мини-порта сопоставляет с набором буферов в системной памяти. Как правило, сетевой адаптер можно запрограммировать для эффективной обработки нескольких пакетов. Драйвер мини-порта, который управляет такой сетевой картой, обычно поддерживает отправку и получение нескольких пакетов, так как сетевой адаптер может эффективно обрабатывать несколько пакетов и тем самым повысить пропускную способность ввода-вывода.

  • Сетевые адаптеры DMA nonbusmaster

    В настоящее время сетевые адаптеры, не относящиеся кbusmaster DMA, включают следующее:

    • Системные сетевые адаптеры DMA

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

Виртуальные сетевые карты и мини-порты

На виртуальной машине драйверы мини-портов NDIS могут управлять либо программными ресурсами в качестве виртуального мини-порта, либо управлять виртуальной сетевой картой, представляющей аппаратные ресурсы. В следующей таблице описаны различия между виртуальным мини-портом и виртуальной сетевой картой.

attribute Виртуальный мини-порт Виртуальный сетевой адаптер
Определение Драйвер мини-порта NDIS, который сопоставляется с устройством PnP с программным перечислением. Сетевой адаптер, управляемый гипервизором ОС узла. Гипервизор заставляет виртуальную машину думать, что она имеет некоторое оборудование, но такого оборудования на самом деле не существует в физическом мире.
Имеет прерывания Нет Да
Может использовать DMA Нет Да
Создается или уничтожается... Гостевая ОС ОС узла
Доступ за пределами гостевой виртуальной машины Нет Да