|
1 <?xml version="1.0" encoding="utf-8"?> |
|
2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. --> |
|
3 <!-- This component and the accompanying materials are made available under the terms of the License |
|
4 "Eclipse Public License v1.0" which accompanies this distribution, |
|
5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". --> |
|
6 <!-- Initial Contributors: |
|
7 Nokia Corporation - initial contribution. |
|
8 Contributors: |
|
9 --> |
|
10 <!DOCTYPE concept |
|
11 PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
|
12 <concept id="GUID-D207C135-EF02-4D1A-A48C-4AB8C6703496" xml:lang="en"><title>Device |
|
13 Driver Structure</title><shortdesc>This document describes the structures used to implement device |
|
14 drivers as LDDs and PDDs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
|
15 <p>Both LDDs and PDDs are DLLs. </p> |
|
16 <p>They implement a specific interface that allows the kernel to initialise |
|
17 them, and for user-side code to communicate with them. </p> |
|
18 <p>An LDD must implement: </p> |
|
19 <ul> |
|
20 <li id="GUID-A57D8838-EF0B-5096-99EC-D9197C58EE35"><p>A <codeph>DLogicalChannel</codeph> or <codeph>DLogicalChannelBase</codeph> derived |
|
21 class, representing the logical channel, which handles user requests. </p> </li> |
|
22 <li id="GUID-1E3CD4B7-15BC-59B1-939B-2AF34F0438BB"><p>A <codeph>DLogicalDevice</codeph> derived |
|
23 class, which provides a factory for the logical channel objects, called the |
|
24 LDD factory. </p> </li> |
|
25 <li id="GUID-2342FF0C-4CC0-561F-81CB-2643E09351B4"><p>A DLL entry point function |
|
26 at ordinal 1, which constructs the LDD factory object. </p> <p>It is possible |
|
27 that a device driver is also an extension, in which case the entry point will |
|
28 also be used for extension initialisation. </p> </li> |
|
29 </ul> |
|
30 <p>A PDD must implement: </p> |
|
31 <ul> |
|
32 <li id="GUID-0D5220C0-764F-5711-970F-60D19AD21320"><p>A <codeph>DBase</codeph> derived |
|
33 class representing the physical channel, which is the interface between the |
|
34 logical device and the physical device. </p> </li> |
|
35 <li id="GUID-BEC551B8-AED6-5EEC-8FDA-C742B4C1F7DC"><p>A <codeph>DPhysicalDevice</codeph> derived |
|
36 class, which provides a factory for the physical channel objects, called the |
|
37 PDD factory. </p> </li> |
|
38 <li id="GUID-9D72BF3C-6D13-5D9F-A8E3-D376D445AC08"><p>A DLL entry point function |
|
39 at ordinal 1, which constructs the PDD factory object. </p> </li> |
|
40 </ul> |
|
41 </conbody></concept> |