Использование функций драйвера
Использование функций драйвера
Для корректной работы с расширенной памятью задачи должны выполнять определенную последовательность действий, а именно:
- 1. Проверить наличие менеджера, поддерживающего функции EMS.
- 2. Получить код сегмента, на который отображается расширенная память.
- 3. Определить наличие требуемого пространства расширенной памяти.
- 4. Отобразить часть пространства ОЗУ на физические страницы.
- 5. В пределах сегмента работать с расширенной памятью как с обычной.
- 6. При достижении границ сегмента повторять пункты 4 и 5.
- 7. Перед завершением задачи вернуть память менеджеру.
Выполнение первого пункта списка является скорее данью традиции, чем необходимостью, поскольку ПК на базе Intel 386 и всех последующих моделей обязательно имеют оборудование для доступа к расширенной памяти. Для проверки можно, например, с помощью функции 40h определить статус, а с помощью функции 4бп — номер версии драйвера и убедиться, что он не меньше чем 4.0. Остальные пункты списка обязательно должны выполняться, причем в той последовательности, в которой они перечислены.