Ben,
For the sake of NVFS compatibility, are you saying that we should stop using DmQueryRecord in favor of DmGetRecord, even when in read-only situations ?
Can you elaborate ? thanks.
On the current NVFS implementations, using DmGetRecord is more reliable. However, you should be safe to use DmQueryRecord, as long as you do that before every use of a record and don't store the MemHandle for later use. When you use DmQueryRecord, the OS has to guess as to when it can release the record from the DBCache.
From talking with people both at palmOne and PalmSource, it looks likely that this will be fixed in a future version of NVFS; the architecture is changing to make cache loading dependent on the locking of the MemHandle, with the ability to reload a record when a lock attempt is made. The original implementation was trying to avoid touching too many parts of the OS, so it only worked with Data Manager and didn't integrate into the Memory Manager code. I do not have a timeline for when this updated NVFS code will start appearing on devices, but I may know more for my talk on NVFS at the DevCon next month.
-- Ben Combee, Senior Software Engineer, palmOne, Inc. "Combee on Palm OS" weblog: http://palmos.combee.net/ Developer Forum Archives: http://news.palmos.com/read/all_forums/
-- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
