
Didn't finish that message before the send button found my finger...
Think about how this works. When you boot the device, is the storage card
there, instantly? No. When the system starts, everything starts happening.
The basic filesystem is loaded and the drivers start getting loaded for
built-in and connected devices (your storage card falls into this category).
In parallel, the filesystem driver/application is starting to run the Startup
folder contents. So, you have a race. If the driver for whatever bus your
storage card is connected to (PCMCIA, USB, SD, etc.), gets loaded, and if the
driver for the card itself then gets loaded (USB mass storage, PCMCIA ATA,
etc.), and then the partition driver for the card gets loaded, and then the
driver for the filesystem on the card gets loaded (FAT), all before the
Startup folder item to start your application gets processed, then your
application will be started. However, if not, it will not because there is no
storage card in the filesystem of the device.
So, you might build in a startup program that will run on startup and wait
for the storage card to mount. Once it does, it could enumerate all of the
entries in a startup folder on the card and run them. This is a pretty
common sort of utility to build into a device.
Alternatively, you could force the storage card to be mounted before
allowing boot to continue. Of course, if you happen not to install a storage
card, the device may never boot, which would be bad.
You're not going anything wrong; you are just expecting Windows CE to work
like desktop Windows and have all devices that are connected when the
computer powers on mounted by the time Windows starts. Not the case with
CE...
Paul T.