Написание драйверов для Windows. Поддержка интерфейса

Некоторые утилиты, например Control Panel, File Manager и Print Manager, требуют от ядра Windows поддержки ряда стандартных сетевых функций. Ядро Windows в свою очередь ожидает наличия динамической библиотеки, в которой эти функции реализуются, различные драйвера и библиотеки необходимые Windows можно посмотреть здесь.
Ядро Windows ищет функции поддержки сети в библиотеке, указанной в поле network, drv в секции boot.дескрипшен файла SYSTEM.INI. Сетевой драйвер должен иметь точку входа для инициализации и возвращать значение FALSE, если низкоуровневая поддержка сети не установлена. Если драйвер возвращает значение FALSE, он не загружается. Также драйвер должен экспортировать функцию завершения WEP.
Точки входа для сетевого драйвера могут быть разделены на шесть категорий: инициализация и завершение, настройка, управление соединениями, поддержка печати, слежение за процессом печати и управление процессом печати.
В дополнение к функции инициализации драйвер также должен предоставить функцию Enable. Ядро Windows вызывает эту функцию в самом начале работы и каждый раз после возврата из DOS-окна в реальном или стандартном режимах. Ядро Windows вызывает функцию Disable при запуске DOS-окна в реальном или стандартном режимах. Эти две функции позволяют драйверу запретить себя самого или повторно разрешить работу при входе и выходе из DOS-окна.
Одна из функций настройки, WNetGetCaps, позволяет определить, какие функции поддерживаются сетевым драйвером. Эта функция возвращает флаг, указывающий, какие функции поддерживаются. Отметим, что даже если драйвер не поддерживает одну из функций, он должен экспортировать эту функцию и реализовать «заглушку», которая возвращает код ошибки. Функция WNetGetUser возвращает имя текущего пользователя, если оно доступно. Функция WNetDeviceMode возвращает ту информацию, которую заложит разработчик сетевого драйвера. Эта функция может быть вызвана программой Control Panel и позволяет пользователю установить различные специфичные для драйвера параметры. Функция WNetGetError возвращает код последней произошедшей в сети ошибки. Эта функция не является необходимой, так как большинство функций сами возвращают код ошибки.
Функции управления соединениями позволяют прикладной программе создать или завершить соединение между системой и сервером. Логические соединения могут происходить либо с устройствами, либо с принтерами; функция WNetAddConnection создает, WNetCancelConnection завершает соединение, а WNetGetConnection возвращает статус соединения с устройством или принтером. Функция WNetBrowseDialog отображает панель диалога и позволяет пользователю выбрать удаленный накопитель или принтер. Прикладная программа может использовать результат этой функции для создания нового соединения с помощью функции WNetAddConnection.
Динамическая библиотека сетевого драйвера предоставляет функции поддержки сети. Тогда как драйвер может предоставлять прямой доступ к сетевому оборудованию, обычно, при работе Windows в реальном и стандартном режимах, сетевой драйвер просто преобразует вызовы функций в вызовы низкоуровневых сетевых функций. В стандартном режиме DOS-расширитель управляет адресацией и преобразованием параметров для сетевых вызовов, осуществляемых через функции прерываний 21h и 5Bh. Если сетевой драйвер использует нестандартные функции, весь драйвер может быть реализован в динамической библиотеке и для его поддержки может использоваться специальная версия DOS-расширителя.Драйверы для Windows

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *