1e41f4b71Sopenharmony_ci# Introduction to Driver Development Kit
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciEmpowered 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.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci1. You can develop advanced peripheral functions to meet user requirements.
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci2. The extended driver framework supports lifecycle management of peripheral drivers and provides APIs for querying and binding peripheral devices.
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci## When to Use
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ciYou can use Driver Development Kit to:
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci1. Develop drivers of special
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci   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.
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci2. Develop enhanced functions of non-standard peripherals,
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci   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.
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci## Working Principles
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ciThe HDF extended driver framework provides unified APIs for you to leverage the DDK capabilities for user-mode peripheral driver development.
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ciThe 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.
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci  **Figure 1** Peripheral driver working mechanism 
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci![driverExtension](figures/driverExtension.png)
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci### **Module Functions**
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci- 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).
34e41f4b71Sopenharmony_ci- Peripheral driver (application): dedicated peripheral driver or enhanced peripheral driver developed using HDF-DDK. For details, see [Peripheral Driver Development](driverextensionability.md).
35e41f4b71Sopenharmony_ci- Driver extension SA: performs lifecycle management of peripheral devices and driver packages.
36e41f4b71Sopenharmony_ci- AMS: starts and disables **DriverExtensionAbility**.
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ci### **Process Description**
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ciFigure 2 shows the process of matching a peripheral with a driver when a peripheral is connected.
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ci**Figure 2** Process for matching a peripheral with a driver
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci![timeSeries1](figures/timeSeries1.png)
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ciFigure 2 shows the process of binding the peripheral driver client with a peripheral driver when a peripheral application is run.
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ci**Figure 3** Process of binding the peripheral driver client with a peripheral driver
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci![timeSeries2](figures/timeSeries2.png)
51