Bluetooth Low Energy Overview
Beginning with Windows 8, Bluetooth Low Energy introduces a new physical layer that shares the same frequency space as Bluetooth Basic Rate. Profiles that are developed on this technology are organized into the Generic Attribute Profile (or GATT).
Each profile defines the use of one or more services to create a use case or scenario. Compliant service implementations are constructed from characteristics organized in a way that conforms to the established schema defined on the Bluetooth Special Interest Group developer website.
The diagram below illustrates the way objects are structured inside a typical GATT service.
When a Bluetooth Low Energy device is paired with a Windows 8 machine, the device becomes part of the system and Windows will provide device objects to represent both the device and the primary services reported by the device.
Each device and its primary services are represented as device objects in Windows and these device objects can be queried and managed using the device installation functions such as SetupDiEnumDeviceInfo, and SetupDiGetDeviceProperty.
These functions allows for the enumeration of services and their objects (including services, characteristics and their descriptors) as well as read and write capabilities.