- 1. Драйвер режима ядра не может использовать API
пользовательского уровня или стандартные библиотеки времени исполнения языка
С. Можно использовать только функции ядра.
- 2. Драйвер не может осуществлять операции с числами с
плавающей точкой. Попытка сделать это может вызвать аварийную остановку
системы. Причина - в основе реализации архитектуры ММХ. Не вдаваясь в
подробности можно сказать, что в этой архитектуре для обозначения регистров
ММХ использованы те же обозначения, что и для использования регистров FPU.
Переключение между использованием регистров MMX/FPU, производимое на
пользовательском уровне, невидимо для драйвера.
- 3. Драйвер не может манипулировать физической памятью
напрямую. Однако он может получить виртуальный адрес для любого физического
адреса и манипулировать им.
- 4. Код драйвер не должен долгое время работать на повышенных
уровнях IRQL. Другие ограничения можно посмотреть в [Developing Windows NT
Device Driver,
chapter 5, Driver Limitation].
Последующие разделы будут посвящены описанию различных точек
входа драйвера.
Тестирование параллельного программного обеспечения представляет собой более
сложную задачу по сравнению с тестированием последовательной программы. Программист
должен знать о подводных камнях при тестировании параллельного кода, имеющихся
методологиях и инструментарии.
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее
реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности,
достоинства и недостатки.