Hi,
I am running windows ce 6.0 on an ARM11 target with an armv4 compiler.
I have the following scenario. I have a structure named queue and I am
allocating it on kernel side and trying to map it to user side using
VirtualAllocCopyEx.
On a nutshell this is what I am doing inside Map().
queueAddrUM =
VirtualAllocCopyEx(GetCurrentProcess(),(HANDLE)ui32ProcessID,queueAddrKM,ui32Size, PAGE_READWRITE | PAGE_NOCACHE);
Which means that in queueAddrUM I have the base address for the allocated
queue whose kernel address is queueAddrKM).
Now I try to update a member of the queue by doing:
queueAddrUM->info = some->info and at random times queueAddrUM->info does
not get updated instead it keeps the previous values, i.e the value of
queueAddrKM->info. It's as though the assignment statement did not exist or
it wasn't really mapped(Note: sometimes it works).
Any ideas what might be wrong here?
P.S queueAddrUM is of type queue and VirtualAllocCopyEx is being called from
kernel mode. Please do not be confused by the simplicity of my example, I
just tried to keep the problem simple, the types are correct and function
calls seem to be placed in context.
Thank you very much for the help.