SpbCx I/O Control Codes

This section describes the I/O control codes (IOCTLs) that are supported by the SPB framework extension (SpbCx).

In this section

Topic Description

IOCTL_SPB_EXECUTE_SEQUENCE

The IOCTL_SPB_EXECUTE_SEQUENCE I/O control code enables a client (peripheral driver) of the SPB controller driver to perform a sequence of transfers (reads and writes) as a single, atomic operation with one I/O request. The designated device on the bus is the target for all transfers in the sequence.

IOCTL_SPB_FULL_DUPLEX

The IOCTL_SPB_FULL_DUPLEX control code is used by a client (peripheral driver) to request a full-duplex I/O operation. Full-duplex I/O operations are supported by controllers for buses such as SPI that can simultaneously read and write data.

IOCTL_SPB_LOCK_CONNECTION

The IOCTL_SPB_LOCK_CONNECTION control code is used by a client (peripheral driver) to acquire the connection lock on an SPB-connected target device that is shared with another client. While a client holds the connection lock, this client has exclusive access to the device.

IOCTL_SPB_LOCK_CONTROLLER

The IOCTL_SPB_LOCK_CONTROLLER control code is used by a client (peripheral driver) to lock the SPB controller. While the controller is locked, the client has exclusive use of the bus to access the specified target device for the lock.

IOCTL_SPB_UNLOCK_CONNECTION

The IOCTL_SPB_UNLOCK_CONNECTION I/O control code is used by a client (peripheral driver) to release the connection lock on an SPB-connected target device that is shared with another client. The client previously sent an IOCTL_SPB_LOCK_CONNECTION request to acquire exclusive access to the device.

IOCTL_SPB_UNLOCK_CONTROLLER

The IOCTL_SPB_UNLOCK_CONTROLLER I/O control code is used by a client (peripheral driver) to unlock the SPB controller. The client previously locked the controller to gain exclusive use of the bus to access a target device on the bus.

 

A client (peripheral driver) of the SPB controller can send I/O requests that contain these IOCTLs to a target device on the bus. Specifically, the client sends such a request to the file object for the target.

The SPB framework extension (SpbCx) manages the I/O queue for I/O requests that clients send to targets on the bus. To pass these requests to your SPB controller driver for processing, SpbCx calls the event callback functions that are implemented by the SPB controller driver.

The IOCTL_SPB_LOCK_CONNECTION and IOCTL_SPB_UNLOCK_CONNECTION requests are an exception. The SPB framework extension (SpbCx) always handles these requests by itself. It does not pass them to the SPB controller driver.

For more information about IOCTLs, see Introduction to I/O Control Codes.

 

 

Send comments about this topic to Microsoft