Поддержка сетевых карточек
В этом разделе описываются типы сетевых карт ,которыми может управлять драйвер минипорта 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 | Нет | Да |
Создается или уничтожается... | Гостевая ОС | ОС узла |
Доступ за пределами гостевой виртуальной машины | Нет | Да |