Hi
Is there a memory map file size limit with the API CreateFileMapping in
Windows CE 4.1 with all QFE installed until december 2004? In theory I think
that I should be able to create a memory map file of 1GB minus 32MB (size of
the shared memory) but I know that there is always a little part of this
space already reserved (Storage memory, ?, ...) so I tryed to find this size.
To find out what is the "real" quantity of available shared virtual memory I
used VirtualQuery to scan the whole shared memory area and noticed that the
memory seems divided in 32MB slots like the first Virtual Memory GigaBytes
and that only the first 320MB was reserved. With that information in mind I
concluded that I should be able to map 640MB. Unfortunately the biggest
memory mapped file that I am able to create is 320MB but I don't find where
this limit comes from.
There is plenty of virtual memory available because I am able to create
memory mapped files of 320MB, 160MB, 96MB, 32MB, 32MB, 9MB and 5MB at the
same time in virtual memory. At each call to CreateFileMapping my size limit
decrease (the previous sizes are in creation order).
It looks like I has to do with consecutive memory available but my
VirtualQuery calls indicates that each memory mapped files are allocated in
consecutive memory space. The last 2 maps (9 and 5 MB) does not make any
difference in my results as they seems to fit in a 32MB block already
reserved that has available space.
I also noticed that the last 32MB of shared memory is never reserved. I'm I
right if I consider that VirtualQuery return an empty structure if the query
is done on an unused memory space?
Thank you for your help. I need to be able to map 400MB in a row to be able
to save real-time acquisition data very fast and then save it to a
CompactFlash.
Regards,
JF Morin