RTX – расширение реального времени для Windows NT

       

Проецирование физической памяти


Существование адресного пространства ввода/вывода зависит от архитектуры процессора. Некоторые архитектуры, поддерживаемые Windows NT, основаны на процессорах, не имеющих отдельного пространства ввода/вывода. Их порты проецируются в адреса памяти. Эти архитектуры могут использовать функции проецирования памяти для обеспечения доступа к физической памяти контроллеров и другой аппаратуры. 

Проецирование физической памяти может также использоваться для предоставления процессам доступа к физическим участкам памяти в адресном пространстве CPU.
Интерфейс проецирования физической памяти проецирует участок физической памяти на виртуальное адресное пространство процесса. Это позволяет приложению получать доступ к участкам физической памяти непосредственно, как если бы они были буферами в приложении. Эти интерфейсы полезны в программах, которым нужен доступ к памяти устройств или регистрам, которые спроецированы на физическре адресное пространство CPU.  

API

Следующие функции служат для проецирования памяти:

RtMapMemory – проецирует участок адресов физической памяти на виртуальное адресное пространство процесса.

RtUnmapMemory - убирает ранее спроецированнный участок адресов физической памяти из виртуального адресного пространства процесса.

Общие замечания по программированию

Не существует ограничений или запретов на спроецированный участок памяти. В случае удачного проецирования обеспечивается указанные базовый адрес и длина области. Не следует проецировать и изменять адресное пространство Windows NT, т.к. это может привести к ошибкам в операционной системе.

Замечания по программированию в Win32 подсистеме

Попытка доступа к области, выходящей за пределы спроецированного адресного пространства, вызовет исключение.

демонстрирует проецирование физической памяти.



Содержание раздела