diff -r 89d6a7a84779 -r 25a17d01db0c Symbian3/PDK/Source/GUID-204B4155-AE35-5C53-867B-299AF7E5D16A.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Symbian3/PDK/Source/GUID-204B4155-AE35-5C53-867B-299AF7E5D16A.dita Fri Jan 22 18:26:19 2010 +0000 @@ -0,0 +1,31 @@ + + + + + +Device +driver servicesDescribes asynchronous services provided by device drivers. +

Some asynchronous services are provided directly by device drivers.

+

As with services provided by the client-server framework, device driver +provided services are presented to clients through a client API known as the +user-side device driver. This is typically an R class, derived +from RLogicalChannel.

+

When the RLogicalChannel is opened, the device driver +is initialised and the client’s thread id is noted. Request functions are +converted into a message which encapsulates all the parameters, and sent to +the Kernel-side driver. Completion of a request function usually corresponds +closely with completion of a device operation. On completion, the driver posts +the request status and signals the client thread’s request semaphore.

+

Device drivers often have limited capability. For instance, an inability +to be opened by multiple client threads simultaneously. Therefore, devices +are often handled by specially tailored server threads. These servers present +a client API with more sophistication, sharing and checking.

+

Usually, therefore, clients use the server-provided classes rather than +the user-side device driver directly.

+
\ No newline at end of file