Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Memory slot 0 in Windows CE 5.0

8 views
Skip to first unread message

paolo patierno

unread,
Jan 2, 2010, 4:34:01 AM1/2/10
to
Hello,
I have a doubt on Windows CE 5.0 Memory Architecture....
why is necessary to clone the SLOTn assigned to a process into the SLOT0
when the process is running ?

Thanks,
Paolo

Luca Calligaris [eMVP]

unread,
Jan 4, 2010, 4:09:32 AM1/4/10
to
One of the reasons is the following: pratically each application uses one or
more DLL; a DLL typically has some read only section (code) which can be
shared between several applications and read/write section (data) which is
not shared because it is different form application to application. The read
only section is mapped at the same physical address for every application
while the data reside in the slot of the application. When the an
application calls the DLL the DLL has to access the application specific
data and DLL's are designed to look into slot 0 to find the data.


--
Luca Calligaris (MVP-Windows Embedded)
l.calliga...@eurotech.it.nospam
www.eurotech.it


"paolo patierno" <paolop...@discussions.microsoft.com> ha scritto nel
messaggio news:BA19647F-66B6-472F...@microsoft.com...

Helge Kruse

unread,
Jan 4, 2010, 9:00:17 AM1/4/10
to
Am 04.01.2010 10:09, schrieb Luca Calligaris [eMVP]:
> One of the reasons is the following: pratically each application uses one or
> more DLL; a DLL typically has some read only section (code) which can be
> shared between several applications and read/write section (data) which is
> not shared because it is different form application to application. The read
> only section is mapped at the same physical address for every application
> while the data reside in the slot of the application. When the an
> application calls the DLL the DLL has to access the application specific
> data and DLL's are designed to look into slot 0 to find the data.
>

When a DLL is loaded in a process the access to the code section could
be fixed up with the FIXUP records of the PE32 binary. If a DLL is
shared between processes (loaded at the same address) it resides in slot
1 as a MODULE.

Do you say each non-MODULE DLL loaded in once process occupies the code
address space in all processes?

Helge


Bruce Eitman [eMVP]

unread,
Jan 4, 2010, 12:52:44 PM1/4/10
to
> Do you say each non-MODULE DLL loaded in once process occupies the code
> address space in all processes?

I think that the safe thing to say is that any dll that is not fixed up
occupies space in Slot 0, which does take away from space for all processes.

Dlls that are not MODULES are not fixed up.
Dlls that are MODULES but don't have a a REL files are not fixed up.
Some dlls that are MODULES are not fixed up if/when Slot 1 is determined to
be full when romimage runs.

--
Bruce Eitman (eMVP)
Senior Engineer
Bruce.Eitman AT Eurotech DOT com
My BLOG http://geekswithblogs.net/bruceeitman

Eurotech Inc.
www.Eurotech.com

"Helge Kruse" <Helge.Kru...@gmx.net> wrote in message
news:hhss9n$c96$01$1...@news.t-online.com...

Message has been deleted
0 new messages