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


Навигация по конструктору сетевого драйвера

Операционные системы на основе Microsoft Windows поддерживают несколько типов сетевых драйверов в режиме ядра. В разделе "Сеть" документации по комплекту драйверов Windows (WDK) описывается запись этих сетевых драйверов. В этом разделе кратко описаны поддерживаемые типы сетевых драйверов и объясняется, какие разделы раздела "Сеть" следует прочитать перед записью каждого типа сетевого драйвера.

В этом руководстве по проектированию сетевого драйвера описаны следующие интерфейсы спецификации интерфейса сетевого драйвера (NDIS):

  • NDIS 6.40, который поддерживается в Windows 8.1, Windows Server 2012 R2 и более поздних версиях Windows. NDIS 6.30 включает поддержку интерфейса поставщика прямого ядра (NDKPI) 1.12.

    Дополнительные сведения о NDIS 6.30 см. в разделе "Общие сведения о NDIS 6.40".

  • NDIS 6.30, который поддерживается в Windows 8, Windows Server 2012 и более поздних версиях Windows. NDIS 6.30 включает поддержку виртуализации с одним корнем/выводом (SR-IOV), расширяемым коммутатором Hyper-V, интерфейсом поставщика прямого ядра сети (NDKPI) 1.1 и другими службами.

    Дополнительные сведения о NDIS 6.30 см. в разделе "Общие сведения о NDIS 6.30".

  • NDIS 6.20, который поддерживается в Windows 7, Windows Server 2008 R2 и более поздних версиях Windows. NDIS 6.20 включает поддержку очереди виртуальных машин (VMQ), регулирования на стороне приема и других служб.

    Дополнительные сведения о NDIS 6.20 см. в разделе "Общие сведения о NDIS 6.20".

  • NDIS 6.1, который поддерживается в Windows Vista с пакетом обновления 1 (SP1), Windows Server 2008 и более поздними версиями Windows. NDIS 6.1 включает поддержку разделения данных заголовков, прямых запросов OID и других служб.

    Дополнительные сведения о NDIS 6.1 см. в разделе "Общие сведения о NDIS 6.1".

  • NDIS 6.0, который поддерживается в Windows Vista и более поздних версиях Windows. NDIS 6.0 включает поддержку драйверов фильтров и многих дополнительных служб, которые не были предоставлены более ранними версиями NDIS. NDIS 6.0 включает основные обновления для инициализации драйверов и управления сетевыми данными, включая необходимую поддержку перенастройки драйвера во время выполнения и архитектуру NET_BUFFER для обработки данных сетевого пакета. Дополнительные сведения о поддержке перенастройки среды выполнения см. в разделе "Управление стеком драйверов". Дополнительные сведения об обработке данных сетевого пакета в NDIS 6.0 см. в разделе NET_BUFFER Архитектура.

    Дополнительные сведения о NDIS 6.0 см. в разделе "Общие сведения о NDIS 6.0".

Версии операционной системы Windows Vista и более поздних версий поддерживают следующие типы сетевых драйверов на основе NDIS в режиме ядра:

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

Существует множество вариантов драйверов минипорта, таких как диспетчер вызовов минипорта с ориентацией на подключение (MCM), минипорт модели драйверов Windows (WDM) и верхний край промежуточного драйвера.

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

Существует множество вариантов драйверов протокола, таких как диспетчер вызовов, ориентированный на подключение (MCM), клиент, ориентированный на подключение, и нижний край промежуточного драйвера.

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

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

Промежуточные драйверы также могут управлять оборудованием при настройке в качестве минипорт-промежуточного драйвера.

Дополнительные сведения о сетевой архитектуре и программировании Windows см. в статье "Сетевая архитектура для драйверов в режиме ядра" и рекомендации по программированию сетевого драйвера.

Дополнительные сведения о сетевых INF-файлах, используемых для установки сетевых компонентов, см. в разделе "Установка сетевых компонентов". Если сетевому драйверу требуется объект уведомления, например для управления привязками, см. также статью "Уведомить объекты для сетевых компонентов".

Следующие дополнительные модели драйверов доступны для использования конкретных аппаратных технологий и архитектур.

Технология Description

Масштабируемая сеть

Сетевые технологии, поддерживающие разгрузку задач сетевому адаптеру, например следующие:

  • Разделитель заголовков— служба, которая разбивает заголовок и данные в полученных кадрах Ethernet на отдельные буферы.

  • Масштабирование на стороне получения, технология сетевого драйвера, которая повышает производительность сети в многопроцессорных системах.

  • Разгрузка TCP Chimney— разгрузка части протокола TCP в сетевой адаптер с соответствующими возможностями.

  • Разгрузка TCP/IP, разгрузка задач или подключений к сетевому адаптеру с соответствующими возможностями.

  • Интерфейс поставщика прямого ядра сети (NDKPI), который позволяет компонентам Windows в режиме ядра, таким как сервер SMB и клиент, использовать функции удаленного прямого доступа к памяти (RDMA), предоставляемые независимыми поставщиками оборудования (IHVs).

  • Виртуализация сети с помощью разгрузки задачи инкапсулирования универсальной маршрутизации (NVGRE), что позволяет использовать инкапсулированные пакеты универсальной маршрутизации (GRE):

    • с разгрузкой большой отправки (LSO);
    • с очередью виртуальной машины (VMQ).
    • Разгрузка контрольной суммы передачи (Tx)
    • Разгрузка контрольной суммы получения (Rx)

Виртуализированные сети

Сетевые технологии, поддерживающие среды виртуализации Hyper-V, например следующие:

Беспроводные сети

Сетевые возможности, включающие встроенную локальную локальную сеть 802.11.

Регистратор сетевых модулей

Системное средство, позволяющее драйверу подключать сетевые модули друг к другу.

Ядро Winsock

Сетевой интерфейс программирования в режиме ядра (NPI).

Вспомогательный IP-адрес

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

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

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

Системные сети

Тип сетевого подключения, использующего Windows Sockets Direct для поддержки высокопроизводительной сети, ориентированной на подключение.

Удаленные NDIS (RNDIS)

Спецификация класса, определяющая системное, независимое от шины сообщение по USB-шине.