1# Introduction to Driver Development Kit
2
3Empowered by the C-API solution, Driver Development Kit provides easy-to-use, secure, and diversified C APIs to elevate your experience in developing peripheral drivers, which bring ultimate plug-and-play experience to users.
4
51. You can develop advanced peripheral functions to meet user requirements.
6
72. The extended driver framework supports lifecycle management of peripheral drivers and provides APIs for querying and binding peripheral devices.
8
9## When to Use
10
11You can use Driver Development Kit to:
12
131. Develop drivers of special
14
15   peripherals for bank counters, enterprise office, and medical detection, such as high-speed document scanners, ID card scanners, fingerprint scanners, and blood oxygen and blood glucose meters.
16
172. Develop enhanced functions of non-standard peripherals,
18
19   such as customizing handwriting pad shortcut keys, setting the pressure sensing/drawing area, setting extended enhancement capabilities, setting the mouse lighting effect, customizing mouse extended buttons, and setting DPI and X and Y axes.
20
21## Working Principles
22
23The HDF extended driver framework provides unified APIs for you to leverage the DDK capabilities for user-mode peripheral driver development.
24
25The driver extension system ability (SA), the core service of user-mode peripheral management, performs lifecycle management of peripherals and peripheral drivers. In addition, standard ArkTS APIs are provided to query, bind, and unbind peripherals.
26
27  **Figure 1** Peripheral driver working mechanism
28
29![driverExtension](figures/driverExtension.png)
30
31### **Module Functions**
32
33- Peripheral application: queries and binds the driver, and customizes the device-driver communication mode and data processing mode. For details, see [Peripheral Driver Client Development](externaldevice-guidelines.md).
34- Peripheral driver (application): dedicated peripheral driver or enhanced peripheral driver developed using HDF-DDK. For details, see [Peripheral Driver Development](driverextensionability.md).
35- Driver extension SA: performs lifecycle management of peripheral devices and driver packages.
36- AMS: starts and disables **DriverExtensionAbility**.
37
38### **Process Description**
39
40Figure 2 shows the process of matching a peripheral with a driver when a peripheral is connected.
41
42**Figure 2** Process for matching a peripheral with a driver
43
44![timeSeries1](figures/timeSeries1.png)
45
46Figure 2 shows the process of binding the peripheral driver client with a peripheral driver when a peripheral application is run.
47
48**Figure 3** Process of binding the peripheral driver client with a peripheral driver
49
50![timeSeries2](figures/timeSeries2.png)
51