Отображение части файла отображения памяти в Windows CE - PullRequest
0 голосов
/ 19 апреля 2011

Где именно адресное пространство блокируется для MMF в процессе создания и отображения MMF в Windows CE. Это происходит во время создания MMF или когда отображение отображается? Будет ли создание успешным, только если в виртуальном адресном пространстве есть непрерывное пространство x (указанное при создании)?

Во-вторых, возможно ли отобразить часть файла в win CE, как мы это делаем в win32. Если я создаю MMF с размером 0x8000 байт и сопоставляю вид файла с смещением 0x5000 и размером 0x7000, сопоставление не выполняется. Это говорит INVALID_PARAMETER. Хотя сопоставление разрешено, когда сумма смещения и размера представления меньше 0x8000. Всегда ли он отображается с начала файла?

1 Ответ

1 голос
/ 22 апреля 2011

В Windows Mobile 6.x (CE 5.0) файлы, отображенные в памяти, хранятся в Большой области памяти выше 0x42000000 в виртуальном адресном пространстве.

Да, вам нужно непрерывное пространствочтобы успешно выделить MMF.

0x5000 + 0x7000 = 0xC000.Это больше, чем выделенное пространство 0x8000 байт.

-PaulH

Редактировать Кроме того, смещение должно быть кратным гранулярности распределения вашей системы,Используйте GetSystemInfo, чтобы найти это значение.Например, на одном устройстве это 0xa11 байт.

...