# WLAN ## Overview The WLAN module is developed based on the Hardware Driver Foundation \(HDF\). It supports cross-OS migration, component adaptation, and modular assembly and compilation. Based on the unified APIs provided by the WLAN module, driver developers of WLAN vendors can adapt their driver code and are capable of creating, disabling, scanning, and connecting to WLAN hotspots. The WLAN driver provides the Hardware Driver Interface \(HDI\) layer with the capabilities of setting and obtaining the device MAC address and setting the transmit power. The following figure shows the framework of the WLAN module: **Figure 1** WLAN framework ![](figures/wlan-framework.png "wlan-framework") ### WLAN Driver API Architecture The WLAN module provides the following three types of APIs: 1. Capability APIs for the HDI layer 2. Capability APIs directly invoked by drivers 3. Capability APIs for vendors **Figure 2** Available APIs of the WLAN module ![](figures/available-apis-of-the-wlan-module.png "available-apis-of-the-wlan-module") ## Available APIs The WLAN driver module provides APIs that can be directly called by driver developers, such as creating/releasing a **WifiModule**, connecting to/disconnecting from a WLAN hotspot, applying for/releasing a **NetBuf**, and converting between the **pbuf** structure of Lightweight IP \(lwIP\) and a **NetBuf**. [Table 1](#table1521573319472) describes some APIs. **Table 1** APIs that can be directly called by driver developers
int32_t (*setMacAddr)(struct NetDevice *netDev, void *addr); |
||