Simple Peripheral Bus (SPB) Drivers
Develop drivers for simple peripheral bus (SPB) controllers and for SPB-connected peripheral devices. The SPB category includes synchronous serial buses such as I²C and SPI.
An SPB peripheral device driver sends I/O requests to a device that is connected to an I²C, SPI, or similar bus. An SPB controller driver handles these I/O requests. Typically, these bus types provide low-pin-count connections to relatively low-speed peripheral devices on motherboards and in mobile devices, such as smart phones.
Support in Windows versions
Microsoft-provided binaries for SPB
These binaries are included in OneCoreUAP-based editions of Windows.
Your SPB controller driver is a KMDF driver that statically links to Spbcx.lib. The driver communicates with Spbcx.sys.
Your SPB-connected peripheral device driver is a UMDF or KMDF driver that communicates with the device through an I/O request interface that is managed by Spbcx.sys on behalf of an SPB controller driver.
Documentation for developing an SPB controller driver
The following topics describe the structures, methods, and I/O requests that are defined by Windows to support SPB controller drivers.
Note These programming interfaces are included in OneCoreUAP-based editions of Windows.
Documentation for developing a SPB-connected peripheral device driver
This section is intended for use by C/C++ programmers who are familiar with Windows Driver Frameworks (WDF). For more information about basic driver development, see Getting Started with Windows Drivers. For more information about WDF driver development, see the following topics.
Note If you intend to write a user-mode driver that runs on OneCoreUAP-based editions of Windows, it must use UMDF 2.0 programming interfaces. UMDF 1.0 drivers are not supported on those editions.
Create a new universal driver for SPB
For step-by-step guidance, see Getting Started with Universal Drivers. Here is a summary of the steps:
Convert an existing SPB driver to a universal driver
The SpbAccelerometer driver sample runs on OneCoreUAP-based editions of Windows.
For a step-by-step walkthrough, see Universal sensor driver model for Windows 10.