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


Обзор промежуточных драйверов NDIS

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

Драйверы минипорта управляют сетевыми устройствами и взаимодействуют с нижним краем драйверов протоколов. Драйверы протоколов реализуют такие протоколы, как TCP/IP, и находятся выше драйверов miniport в стеке драйверов. NDIS предоставляет услуги для упрощения разработки и обслуживания драйверов минипорта и драйверов протоколов.

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

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

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

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

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

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

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

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

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

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

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

Существует два типа промежуточных драйверов NDIS: фильтрация промежуточных драйверов и промежуточных драйверов МУЛЬТИП. Эти типы драйверов описаны в следующих разделах:

Промежуточные драйверы фильтра NDIS

Драйверы NDIS MUX Intermediate