Simple Peripheral Bus (SPB)

Overview of the Simple Peripheral Bus (SPB) technology.

To develop Simple Peripheral Bus (SPB), you need these headers:

For the programming guide, see Simple Peripheral Bus (SPB).

Enumerations

 
SPB_MULTI_SPI_TRANSFER_MODE

The SPB_MULTI_SPI_TRANSFER_MODE enumeration specifies a type of multi-SPI transfer to be used by a bus driver to communicate with a peripheral device.
SPB_REQUEST_SEQUENCE_POSITION

The SPB_REQUEST_SEQUENCE_POSITION enumeration indicates the position of an I/O request in the list of transfers for an I/O transfer sequence.
SPB_REQUEST_TYPE

The SPB_REQUEST_TYPE enumeration specifies the type of SPB operation that a client is requesting.
SPB_TRANSFER_BUFFER_FORMAT

The SPB_TRANSFER_BUFFER_FORMAT enumeration specifies the format of the buffer that is described by an SPB_TRANSFER_BUFFER structure.
SPB_TRANSFER_DIRECTION

The SPB_TRANSFER_DIRECTION enumeration describes the direction (read or write) of a single transfer in an I/O transfer sequence.
SpbIoctl

Defines values to indicate the type I/O control request.

Functions

 
EVT_SPB_CONTROLLER_LOCK

An SPB controller driver's EvtSpbControllerLock event callback function locks the SPB controller for accesses of a single target device on the bus.
EVT_SPB_CONTROLLER_OTHER

An SPB controller driver's EvtSpbControllerIoOther event callback function handles device I/O control requests that are not handled by other event callback functions or by the SPB framework extension (SpbCx).
EVT_SPB_CONTROLLER_READ

An SPB controller driver's EvtSpbControllerIoRead event callback function reads data from the specified target device into the buffers that are supplied with the read request.
EVT_SPB_CONTROLLER_SEQUENCE

An SPB controller driver's EvtSpbControllerIoSequence event callback function performs a sequence of data transfers between the specified target device and the buffers that are supplied with the sequence request.
EVT_SPB_CONTROLLER_UNLOCK

An SPB controller driver's EvtSpbControllerUnlock event callback function unlocks the SPB controller, which was locked by a previous call to the EvtSpbControllerLock event callback function.
EVT_SPB_CONTROLLER_WRITE

An SPB controller driver's EvtSpbControllerIoWrite event callback function writes data to the specified target device from the buffers that are supplied with the write request.
EVT_SPB_TARGET_CONNECT

An SPB controller driver's EvtSpbTargetConnect event callback function opens a connection to a target device on the bus.
EVT_SPB_TARGET_DISCONNECT

An SPB controller driver's EvtSpbTargetDisconnect event callback function closes a connection to a target device that was previously opened by a call to the driver's EvtSpbTargetConnect event callback function.
PwmParsePinPath

Parses a pin path under the Pulse Width Modulation (PWM) controller namespace to validate its format and extract the pin number.
SPB_CONNECTION_PARAMETERS_INIT

The SPB_CONNECTION_PARAMETERS_INIT function initializes an SPB_CONNECTION_PARAMETERS structure.
SPB_CONTROLLER_CONFIG_INIT

The SPB_CONTROLLER_CONFIG_INIT function initializes an SPB_CONTROLLER_CONFIG structure.
SPB_MULTI_SPI_READ_TRANSFER_INIT

The SPB_MULTI_SPI_READ_TRANSFER_INIT function initializes an SPB_MULTI_SPI_READ_TRANSFER structure.
SPB_MULTI_SPI_TRANSFER_INIT

The SPB_MULTI_SPI_TRANSFER_INIT function initializes an SPB_MULTI_SPI_TRANSFER structure.
SPB_MULTI_SPI_WRITE_TRANSFER_INIT

The SPB_MULTI_SPI_WRITE_TRANSFER_INIT function initializes an SPB_MULTI_SPI_WRITE_TRANSFER structure.
SPB_REQUEST_PARAMETERS_INIT

The SPB_REQUEST_PARAMETERS_INIT function initializes an SPB_REQUEST_PARAMETERS structure.
SPB_TRANSFER_DESCRIPTOR_INIT

The SPB_TRANSFER_DESCRIPTOR_INIT function initializes an SPB_TRANSFER_DESCRIPTOR structure.
SPB_TRANSFER_LIST_ENTRY_INIT_BUFFER_LIST

The SPB_TRANSFER_LIST_ENTRY_INIT_BUFFER_LIST function returns an SPB_TRANSFER_LIST_ENTRY structure that is initialized to describe a scatter-gather list.SPB_TRANSFER_LIST_ENTRY_INIT_BUFFER_LIST function returns an SPB_TRANSFER_LIST_ENTRY structure that is initialized to describe a scatter-gather list.
SPB_TRANSFER_LIST_ENTRY_INIT_MDL

The SPB_TRANSFER_LIST_ENTRY_INIT_MDL function returns an SPB_TRANSFER_LIST_ENTRY structure that is initialized to use an MDL to describe a data buffer.
SPB_TRANSFER_LIST_ENTRY_INIT_NON_PAGED

The SPB_TRANSFER_LIST_ENTRY_INIT_NON_PAGED function returns an SPB_TRANSFER_LIST_ENTRY structure that is initialized to describe a simple data buffer in nonpaged memory.
SPB_TRANSFER_LIST_ENTRY_INIT_SIMPLE

The SPB_TRANSFER_LIST_ENTRY_INIT_SIMPLE function returns an SPB_TRANSFER_LIST_ENTRY structure that is initialized to describe a simple data buffer.SPB_TRANSFER_LIST_ENTRY_INIT_SIMPLE function returns an SPB_TRANSFER_LIST_ENTRY structure that is initialized to describe a simple data buffer.
SPB_TRANSFER_LIST_INIT

The SPB_TRANSFER_LIST_INIT function initializes an SPB_TRANSFER_LIST structure.
SpbControllerSetIoOtherCallback

The SpbControllerSetIoOtherCallback method registers an SPB controller driver's EvtSpbControllerIoOther callback function.
SpbControllerSetRequestAttributes

The SpbControllerSetRequestAttributes method sets object attributes that will be used for all SPBREQUEST objects that the SPB framework extension (SpbCx) delivers to the SPB controller driver.
SpbControllerSetTargetAttributes

The SpbControllerSetTargetAttributes method sets object attributes that will be used for all SPBTARGET objects that the SPB framework extension (SpbCx) delivers to the SPB controller driver.
SpbDeviceInitConfig

The SpbDeviceInitConfig method attaches the SPB framework extension (SpbCx) to the I/O-request chain for a WDFDEVICE (FDO or PDO) object that is to be created.
SpbDeviceInitialize

The SpbDeviceInitialize method completes the initialization of the SPB controller driver after this driver creates the associated device object.
SpbRequestCaptureIoOtherTransferList

The SpbRequestCaptureIoOtherTransferList method retrieves the SPB_TRANSFER_LIST structure in the input buffer of the custom IOCTL request.
SpbRequestComplete

The SpbRequestComplete method completes an I/O request and supplies a completion status.
SpbRequestGetController

The SpbRequestGetController method returns the WDFDEVICE handle to the device object for the SPB controller that the specified I/O request was sent to.
SpbRequestGetParameters

The SpbRequestGetParameters method retrieves a set of SPB-specific parameter values from an I/O request.
SpbRequestGetTarget

The SpbRequestGetTarget method retrieves the SPBTARGET handle from the specified I/O request.
SpbRequestGetTransferParameters

The SpbRequestGetTransferParameters method retrieves the transfer parameters for an individual transfer in an I/O transfer sequence.
SpbTargetGetConnectionParameters

The SpbTargetGetConnectionParameters method retrieves the connection parameters for a target device on the bus.
SpbTargetGetFileObject

The SpbTargetGetFileObject method accepts, as an input parameter, an SPBTARGET handle to an open target device, and returns a WDFFILEOBJECT handle to this target.

Structures

 
PNP_SERIAL_BUS_DESCRIPTOR

The PNP_SERIAL_BUS_DESCRIPTOR structure describes the physical connection of a target device to a serial bus (I2C, SPI, or UART).
RH_QUERY_CONNECTION_PROPERTIES_OUTPUT_BUFFER

The RH_QUERY_CONNECTION_PROPERTIES_OUTPUT_BUFFER structure contains the connection properties for a target device that is connected to a serial bus (I2C, SPI, or UART).
SPB_CONNECTION_PARAMETERS

The SPB_CONNECTION_PARAMETERS structure contains the connection parameters for a target device on a simple peripheral bus.
SPB_CONTROLLER_CONFIG

The SPB_CONTROLLER_CONFIG structure contains the configuration settings for an SPB controller driver.
SPB_MULTI_SPI_READ_TRANSFER

The SPB_MULTI_SPI_READ_TRANSFER structure describes a read operation to be executed in a Multi-SPI (e.g. Dual SPI or Quad SPI) mode.
SPB_MULTI_SPI_TRANSFER

The SPB_MULTI_SPI_TRANSFER structure describes a SPI I/O operation which is to be executed using a multi-SPI transfer mode such as Dual or Quad SPI.
SPB_MULTI_SPI_TRANSFER_HEADER

The SPB_MULTI_SPI_TRANSFER_HEADER structure describes a SPI transfer to be executed in a Multi-SPI (e.g. Dual SPI or Quad SPI) mode.
SPB_MULTI_SPI_WRITE_TRANSFER

The SPB_MULTI_SPI_WRITE_TRANSFER structure describes a write operation to be executed in a Multi-SPI (e.g. Dual SPI or Quad SPI) mode.
SPB_TRANSFER_BUFFER

The SPB_TRANSFER_BUFFER structure describes the data buffer for an individual transfer in an I/O transfer sequence.
SPB_TRANSFER_BUFFER_LIST_ENTRY

The SPB_TRANSFER_BUFFER_LIST_ENTRY structure describes either a simple transfer buffer, or an element in an array of one or more transfer buffers.
SPB_TRANSFER_DESCRIPTOR

The SPB_TRANSFER_DESCRIPTOR structure describes a single transfer in an I/O transfer sequence.
SPB_TRANSFER_LIST

The SPB_TRANSFER_LIST structure describes an I/O transfer sequence.
SPB_TRANSFER_LIST_ENTRY

The SPB_TRANSFER_LIST_ENTRY structure describes a single transfer in an I/O transfer sequence.