Jim Berry wrote:
> I've written an app that imports data via .PDB databases that
> get written by various external applications.
>
> Frequently, though apparently not always, HotSync'ing one of
> these DB's onto my pilot results in a "You must reset your
> Pilot" message on completion.
>
> Is there something subtly wrong with my PDB's?
Yes -- there is an attribute flag in the .PDB header which tells the OS
to do this reset after HotSync, and it sounds like this flag is being
set in one or more of your PDB's.
(See dmHdrAttrResetAfterInstall in <DataMgr.h>.)
Going out on a limb here, since this happens sporadically, I'd guess the
reset bit is being set accidentally by the external app, possibly by
leaving the entire attribute word garbage or by leaving garbage in the
bits it doesn't explicitly set.
A quick way to look for this is to open the .PDB in a hex editor. The
attribute word is at offset 32 (0x20) and can be interpreted using the
dmHdrAttrXxx flags defined in <DataMgr.h>.
> There is no complaint when loading them into POSE, either.
If you mean "direct" loading and not HotSync, this is the expected
behavior because it's not a true HotSync.
-slj-