Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Драйвер протокола NDIS экспортирует набор функций ProtocolXxx на нижнем крае. Такой драйвер протокола взаимодействует с NDIS для отправки и получения сетевых данных. Драйвер протокола привязывается к базовому драйверу минипорта или промежуточному драйверу, который экспортирует интерфейс MiniportXxx в верхнем крае.
Примечание Драйвер виртуального минипорта, представляющий верхний уровень промежуточного драйвера, не управляет физическими устройствами. Базовые драйверы минипорта управляют физическими устройствами.
Драйверы протокола всегда используют предоставляемые NDIS функции для взаимодействия с базовыми драйверами NDIS для отправки и получения сетевых данных. Например, драйвер протокола с бессерверным нижним краем (который взаимодействует с базовыми драйверами для бессерверных носителей, например Ethernet), должен вызывать NdisSendNetBufferLists для отправки сетевых данных в базовый драйвер NDIS. Драйвер протокола может вызывать NdisOidRequest для запроса или задания OID, поддерживаемых базовыми драйверами без подключения. Драйвер протокола, имеющий нижний край, ориентированный на подключение (который взаимодействует с базовыми драйверами для ориентированных на подключение носителей, например ISDN), должен вызывать NdisCoSendNetBufferLists для отправки сетевых данных в драйвер NDIS нижнего уровня. Он также может вызывать NdisCoOidRequest для запроса или задания OID, поддерживаемых базовыми драйверами, ориентированными на подключение.
NDIS также предоставляет набор функций NdisXxx, которые скрывают сведения о базовой операционной системе. Например, драйвер протокола может вызывать NdisInitializeEvent для создания события для целей синхронизации и NdisInitializeListHead для создания связанного списка. Драйверы протоколов, использующие версии NDIS для таких функций, обладают большей переносимостью в операционных системах Майкрософт. Однако драйверы протокола также могут вызывать подпрограммы поддержки в режиме ядра, например IoCreateDevice. Дополнительные сведения см. в сводке подпрограмм поддержки Kernel-Mode.
Разработчики драйверов протокола должны использовать те же рекомендации по программированию, которые применяются к другим драйверам NDIS.