This document introduces user requests and synchronisation methods used by device drivers.
User-side requests to a driver can be of three types: synchronous, asynchronous, and cancellation of an asynchronous request. User requests can be handled in two different ways, based on the logical channel model used by the device driver. A channel implementation is derived from either:
DLogicalChannelBase: the driver developer decides how a request is handled.
DLogicalChannel: this is derived from DLogicalChannelBase, and implements a basic mechanism for handling requests.
In the DLogicalChannel derived model, requests from user threads to the driver are queued as messages and handled sequentially by a single Kernel side DFC. This is the model described in this section. More details on the differences between the models can be found inLogical Channel documentation.
All requests from the user result in a call to a single function DLogicalChannelBase::Request(). In this function the driver determines the type of the request, i.e. synchronous, asynchronous, or cancel, and implements handling of the requests.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.