• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Driver Loading
2
3## Overview
4
5The HDF loads the drivers that match the configured device list.
6
7## Driver Loading Policies
8
9The HDF supports on-demand loading and sequential loading of drivers. The **preload** field in the configuration file (see [Driver Development](../driver/driver-hdf-development.md)) specifies the loading policy of a driver. The values are as follows:
10
11```c
12typedef enum {
13    DEVICE_PRELOAD_ENABLE = 0,
14    DEVICE_PRELOAD_ENABLE_STEP2 = 1,
15    DEVICE_PRELOAD_DISABLE = 2,
16    DEVICE_PRELOAD_INVALID
17} DevicePreload;
18```
19
20### On-Demand Loading
21
22- The value **0** (**DEVICE_PRELOAD_ENABLE**) means to load the driver by default during the system boot process.
23
24- The value **1** (**DEVICE_PRELOAD_ENABLE_STEP2**) means to load the driver after a quick start is complete. If the system does not support quick start, the value **1** has the same meaning as **DEVICE_PRELOAD_ENABLE**.
25
26- The value **2** (**DEVICE_PRELOAD_DISABLE**) means to load the driver dynamically. When a user-mode process requests the driver service, the HDF attempts to dynamically load the driver if the driver service is not available. For more details, see [Driver Messaging Mechanism](../driver/driver-hdf-message-management.md).
27
28### Sequential Loading (Default)
29
30The **priority** field (ranging from 0 to 200) in the configuration file determines the loading sequence of a host and a driver. For the drivers in different hosts, the drivers in the host with a smaller priority value are loaded first. For the drivers in the same host, the driver with a smaller priority value is loaded first.
31