Поддержка карты сетевого интерфейса

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

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

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

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

Physical NICs

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

  • NDIS-WDM NICs

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

  • Сетевые адаптеры DMA для главного шины

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

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

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

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

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

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

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

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

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

Attribute Virtual miniport Virtual NIC
Definition Минипорт-драйвер NDIS, который сопоставляется с программно перечисленным устройством Plug and Play. Сетевой адаптер, управляемый гипервизором ОС узла. Гипервизор делает виртуальную машину думаю, что она имеет некоторое оборудование, но такое оборудование на самом деле не существует в физическом мире.
Has interrupts No Yes
Может использовать DMA No Yes
Создается или уничтожается... Гостевая ОС Операционная система узла
Может получить доступ за пределами гостевой виртуальной машины No Yes