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


Минипорт драйверы

Драйвер мини-порта NDIS имеет две основные функции:

  • Управление сетевой картой (сетевой картой), включая отправку и получение данных через сетевую карту.

  • Взаимодействие с драйверами более высокого уровня, такими как драйверы фильтров, промежуточные драйверы и драйверы протокола.

Минипорт-драйвер взаимодействует с сетевыми адаптерами и с драйверами более высокого уровня через библиотеку NDIS. Библиотека NDIS экспортирует полный набор функций (NdisMXxx и другие функции NdisXxx), которые инкапсулируют все функции операционной системы, которые должен вызывать мини-драйвер. Минипорт-драйвер, в свою очередь, должен экспортировать набор точек входа (функции MiniportXxx), которые NDIS вызывается в своих собственных целях или от имени драйверов более высокого уровня, чтобы получить доступ к минипорту.

Примечание.

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

Следующие операции отправки и получения демонстрируют взаимодействие драйверов мини-порта с NDIS и более высоким уровнем драйверов:

  • Когда драйвер транспорта имеет пакет для передачи, он вызывает функцию NdisXxx, экспортируемую библиотекой NDIS. Затем NDIS передает пакет драйверу мини-порта, вызвав соответствующую функцию MiniportXxx , экспортируемую мини-драйвером. Затем мини-драйвер перенаправит пакет в сетевой адаптер для передачи, вызвав соответствующие функции NdisXxx .

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

Драйверы минипорта без подключения и подключения

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

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

Обратите внимание, что все драйверы NDIS 6.0 и более поздних версий десериализируются.

  • Десериализированные драйверы сериализуют операцию своих собственных функций MiniportXxx и внутренней очереди всех входящих пакетов отправки. Это приводит к значительно лучшей полно дуплексной производительности, если критически важные разделы драйвера (код, который может выполняться только один поток за раз) сохраняются небольшими.

  • Сериализованные драйверы используют NDIS для сериализации вызовов функций MiniportXxxx и управления очередями отправки.

Сетевые адаптеры , ориентированные на подключение, управляют сетевыми адаптерами для сетевых носителей, ориентированных на подключение, например ISDN. Драйверы минипорта, ориентированные на подключение, всегда десериализируются. Они всегда сериализуют операцию собственных функций MiniportXxxx и очереди внутри всех входящих пакетов отправки.

Драйвер минипорта NDIS может иметь нижнее крае, отличное от NDIS (см. на следующем рисунке).

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

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

Драйверы минипорта NDIS

Справочник по драйверам минипорта NDIS