Simple Peripheral Bus (SPB) driver development
Develop drivers for simple peripheral bus (SPB) controllers and for SPB-connected peripheral devices.
This section describes how to write a driver for a simple peripheral bus (SPB) controller device or for a peripheral device that is connected to an SPB. The SPB category includes buses such as I²C and SPI. The hardware vendor for an SPB controller device provides an SPB controller driver to manage the hardware functions in the controller. This driver might support a family of similar controller devices. The hardware vendor for an SPB-connected peripheral device provides an SPB peripheral driver to manage the hardware functions in the peripheral device. This driver might support a family of peripheral devices across a variety of hardware platforms that provide compatible SPBs.
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.
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.
Documentation for developing an SPB controller driver and a connected device
The following topics describe the structures, methods, and I/O requests that are defined by Windows to support SPB controller drivers and the connected peripheral devices. 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.
Create a Universal Windows driver for SPB
For step-by-step guidance, see Getting Started with Universal Windows drivers. Here is a summary of the steps:
Convert an existing SPB driver to a Universal Windows driver