Using the File-based Notification Database

Many Windows CE–based devices now operate without persistent RAM. For Windows CE 3.0, the notification engine only creates a database in the object store. If you use the notification subsystem on a device that does not persist RAM, you are required to copy the database from the object store before using the database and copy the database back to the object store when the user shuts down the device. For Windows CE .NET, the notification engine supports the use of a database file that exists on any file system. You are free to define the location that you use to store the notification data. You can define this location by using the notification-related registry settings.

Notification-related settings are controlled by registry values under the HKEY_LOCAL_MACHINE\SYSTEM\GWE\Notify registry key. The volume registry value under this key specifies the name of the file that stores the notification databases. If the volume key does not exist, the operating system (OS) creates a database named DB_notify_queue in the object store by default. The following code example shows how to set the volume registry value.

"volume"="\\hard disk\\notify.db"

The ShortApiTimout registry value specifies the delay for blocking the CeEventHasOccured function while the OS initializes, in milliseconds. The default value for ShortApiTimout is set to 5,000 milliseconds. The following code example shows how to set the ShortApiTimout registry value.

"ShortApiTimeout"=DWORD:5000

The LongApiTimeout registry value specifies the delay to block all other APIs while the OS initializes, in milliseconds. The default value for LongApiTimeout is 15,000 milliseconds. The following code example shows how to set the LongApiTimout registry value.

"LongApiTimeout"=DWORD:15000

The MountTimeout registry value specifies the delay for which the OS should wait for external file systems to initialize, in milliseconds. The default value for MountTimeout is 20,000 milliseconds. MountTimeout determines how many times the OS attempts to mount the database volume. After each attempt, the thread that is trying to mount the volume waits for 5,000 milliseconds before the next attempt. This delay means that the OS makes a maximum of MountTimeout/5,000 attempts to mount a database volume. The following code example shows how to set the MountTimeout registry value.

"MountTimeout"=DWORD:20000

See Also

Using the Base Notification Engine

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.