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


Переносимость в сетевых драйверах

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

При написании драйверов NDIS следуйте приведенным ниже рекомендациям.

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

  • Написание драйверов на языке C (в частности, стандарт ANSI C). Избегайте использования функций языка, которые не поддерживаются другими совместимыми с системой компиляторами. Не используйте функции, которые стандарт ANSI C определяет как "реализация определена".

  • Избегайте зависимостей от типов данных, размер и макет которых различаются на разных платформах. Например, не следует писать код драйвера, который вызывает функции библиотеки C Run-Time вместо функций, предоставляемых NDIS.

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

  • Используйте инструкции #ifdef и #endif для инкапсуляции кода, используемого для поддержки функций платформы.