XPe OS keeps rebooting problem

C

Chris

Hi all,

We use component designer and target designer to create a XPe kernel running
image that will kick off a shell once winlogon and the shell then runs our
boot loader executable that loads our software image into memory and then
switch the context to start the software (say abc.exe).

Here is the problem:
The XPe OS reboots soon after our software (abc.exe) starts. It repeats
endless. Our software code calls Windows API GlobalMemoryStatusEx at the
beginning. Once I removed the code calling GlobalMemoryStatusEx from abc.exe.
The rebuilt software works and rebooting problem doesn't occur anymore.

It seems to me that there are two possible causes:
1. since our software kicks in soon after winlogon starts. It is possible
that some dependent Windows dlls haven't been fully loaded at the time
GlobalMemoryStatusEx gets called from our software. As a result, a fatal
error occurs and the system reboots.
2. The XPe kernel we built may miss some dlls that GlobalMemoryStatusEx
depends on. As a result, calling on GlobalMemoryStatusEx led to a fatal error
and the system reboots.

Does anyone have the similar problem before? Any solution can be shared?

Thank you
Chris
 
S

Sean Liming

This call is part of Kernel32.dll, which has to be in the image. It could be
a blue screen that you are running into.

Can you try running the application without it being launched on boot?
Have you tried the application in a Full XP like OS?


--
Regards,

Sean Liming
www.sjjmicro.com / www.seanliming.com
Book Author - XP Embedded Advanced, XP Embedded Supplemental Toolkit
 
C

Chris

Hi Sean,

Thanks for your information. We can run our application in a full XP OS. In
fact, we can manually start the application successfully from XP embedded
windows explorer as long as it fully starts into desktop screen. However,
that's only for debugging. For a deployed release, we have to let a shell
launch our application automatically immediately after OS booting as part of
installation. I'm wondering if Windows embedded signals some sort of
notification to tell all of its dlls loaded so that we can catch or check the
'signal' before starting our application.

Thank you
Chris
 
M

Mike Warren

Chris said:
I'm wondering if Windows embedded signals some sort of
notification to tell all of its dlls loaded so that we can catch or
check the 'signal' before starting our application.

If it's a driver related problem, calling CMP_WaitNoPendingInstallEvents()
may help. I can show some Delphi code if you're interested.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top