Daemons are loaded when a connection is started that requires
+network layer configuration. The ECom configuration daemon manager used for
+a connection is specified in the SERVICE_CONFIG_DAEMON_MANAGER_NAME field
+in the Comms Database Dial
+Out ISP and GPRS Packet Service tables. The daemon server used for a connection
+is specified in the SERVICE_CONFIG_DAEMON_NAME field in
+the CommDb Dial Out ISP and GPRS Packet Service tables.
To implement a configuration daemon, you must write a Symbian platform
+server for more information see Using
+Client/Server.
The name of the server in CServer::Start() must
+match the name used in the CommDb SERVICE_CONFIG_DAEMON_NAME field.
The
+following ServiceL() implementation tests for these messages
+types and calls functions:
void CEgConfigDaemonSession::ServiceL(const RMessage2& aMessage)
+ {
+ switch (aMessage.Function())
+ {
+ case EConfigDaemonConfigure:
+ ConfigureL(aMessage);
+ break;
+ case EConfigDaemonDeregister:
+ DeregisterL(aMessage);
+ break;
+ case EConfigDaemonLinkLayerDown:
+ LinkLayerDownL(aMessage);
+ break;
+ case EConfigDaemonLinkLayerUp:
+ LinkLayerUpL(aMessage);
+ break;
+ case EConfigDaemonProgress:
+ ProgressL(aMessage);
+ break;
+ case EConfigDaemonIoctl:
+ IoctlL(aMessage);
+ break;
+ case EConfigDaemonCancel:
+ Cancel(aMessage);
+ break;
+ case EConfigDaemonCancelMask:
+ CancelMask(aMessage);
+ break;
+ default:
+ User::Leave(KErrNotSupported);
+ break;
+ }
+ } For more information about the message types see What are the daemon message
+types?
+