Windows Mobile 6.5 Radio Controls Explained
Windows Mobile 6.5 managed individual radio states—cellular, Wi-Fi, and Bluetooth—through a combination of a centralized user interface, power management APIs, and underlying architectural layers. By coordinating the Power Manager, the Radio Interface Layer (RIL), and the Connection Manager, the operating system allowed users and applications to control power states independently or collectively across all hardware radios without requiring a system reboot.
The Wireless Manager (Comm Manager)
At the user interface level, radio controls were centralized within the Wireless Manager (often customized by OEMs such as HTC as the "Comm Manager"). Accessible via the Settings menu or directly from the Home screen, this utility provided a unified dashboard where users could toggle individual radios on or off with a single tap.
The interface included:
- All Radios (Flight Mode): A master switch that shut down the cellular modem, Wi-Fi adapter, and Bluetooth transceiver simultaneously.
- Phone: Toggled power to the cellular baseband processor, disconnecting cellular voice and data while leaving other radios usable.
- Bluetooth: Enabled or disabled the local Bluetooth stack.
- Wi-Fi: Activated the WLAN adapter and initiated background network discovery.
Under-the-Hood Architecture
Windows Mobile 6.5 separated radio control logic from raw hardware interaction through specific subsystems:
1. The Power Manager and
SetDevicePower
The operating system utilized the Windows Embedded CE Power Manager
architecture. Hardware drivers exposed standard power states ranging
from D0 (fully powered) to D4 (powered down).
Applications and the Wireless Manager controlled radio states
programmatically by calling the SetDevicePower API on the
designated device names (for example, targeting the Wi-Fi NDIS adapter
or the Bluetooth host controller driver).
2. Radio Interface Layer (RIL)
Cellular functionality was managed via the Radio Interface Layer.
Rather than sending raw AT commands directly to the cellular baseband,
the OS interacted with a standardized RIL driver provided by the device
manufacturer. To turn off cellular functionality, the OS issued a
RIL_SetRadioState call with specific flags (e.g.,
RIL_RADIOSTATE_OFF), allowing the baseband processor to
gracefully detach from the cellular network.
3. Bluetooth Stack Integration
Depending on the hardware manufacturer, Windows Mobile 6.5 used either the native Microsoft Bluetooth stack or third-party stacks (such as the Broadcom/Widcomm stack). The OS managed radio power by communicating with the Bluetooth Universal Controller interface, unbinding the stack and cutting power to the transceiver module when disabled.
The Connection Manager (ConnMgr)
The Connection Manager coordinated data sessions across the active radios to manage network priorities and battery consumption:
- Automatic Radio Routing: When an application requested a network connection (such as syncing email or loading a web page), ConnMgr assessed available radios. If Wi-Fi was powered on and associated with an access point, it routed data through the WLAN interface to conserve cellular bandwidth.
- On-Demand Activation: If an application requested an Internet connection while Wi-Fi was off or out of range, ConnMgr could automatically initialize a cellular data call (GPRS, EDGE, or HSDPA) through the RIL, provided the cellular radio was turned on.
State and Notification Broker
To keep the UI and background services synchronized, Windows Mobile
6.5 used the State and Notification Broker. Current
radio states were published to specific registry keys under
HKEY_LOCAL_MACHINE\System\State\Hardware. Applications and
UI components registered for notifications via the broker, ensuring that
if a hardware button or third-party app toggled a radio, the system tray
icons, Wireless Manager, and connection status indicators updated
immediately across the entire operating system.