Windows Mobile, по крайней мере во всех текущих воплощениях, построен на Windows CE 5.0 и поэтому использует модель памяти CE 5.0 (которая такая же, как и в CE 3.0). Операционная система на самом деле мало что делает для защиты памяти процесса, но этого достаточно, чтобы обычно не позволяло процессам мешать друг другу. Это не сложно и быстро, хотя.
Процессы CE запускаются в «слотах», из которых их 32. Текущий запущенный процесс обменивается на нулевой слот, а его адреса переопределяются на ноль (поэтому вся память в запущенном процессе фактически имеет 2 адреса, слот Адрес 0 и это ненулевой адрес слота). Эти адреса защищены (хотя существует простой вызов API 1008 * для пересечения границы). Это означает, что повреждения указателя и т. Д. Не будут наступать на другие приложения, но если вы хотите , вы все равно можете.
Также у CE есть концепция общей памяти. Все процессы имеют доступ к этой области, и она на 100% незащищена. Если ваше приложение использует разделяемую память (и менеджер памяти может дать вам общий адрес без вашего ведома, в зависимости от вашего распределения и его размера). Если у вас есть общая память, то да, любой процесс может получить доступ к этим данным, включая их повреждение, и вы не получите ни ошибки, ни предупреждения ни в одном из этих процессов.