SPB_CONTROLLER_CONFIG 结构 (spbcx.h)
SPB_CONTROLLER_CONFIG 结构包含 SPB 控制器驱动程序的配置设置。
语法
typedef struct _SPB_CONTROLLER_CONFIG {
ULONG Size;
WDF_IO_QUEUE_DISPATCH_TYPE ControllerDispatchType;
WDF_TRI_STATE PowerManaged;
PFN_SPB_TARGET_CONNECT EvtSpbTargetConnect;
PFN_SPB_TARGET_DISCONNECT EvtSpbTargetDisconnect;
PFN_SPB_CONTROLLER_LOCK EvtSpbControllerLock;
PFN_SPB_CONTROLLER_UNLOCK EvtSpbControllerUnlock;
PFN_SPB_CONTROLLER_READ EvtSpbIoRead;
PFN_SPB_CONTROLLER_WRITE EvtSpbIoWrite;
PFN_SPB_CONTROLLER_SEQUENCE EvtSpbIoSequence;
} SPB_CONTROLLER_CONFIG, *PSPB_CONTROLLER_CONFIG;
成员
Size
此结构的大小(以字节为单位)。 SpbDeviceInitialize 方法使用此参数值来确定所使用的结构版本。
ControllerDispatchType
控制器驱动程序的 I/O 队列的调度类型。 将此成员设置为 WdfIoQueueDispatchSequential 或 WdfIoQueueDispatchParallel,但不设置为 WdfIoQueueDispatchManual。 SPB_CONTROLLER_CONFIG_INIT 函数将此成员初始化为其默认值 WdfIoQueueDispatchSequential。 有关这些调度类型的详细信息,请参阅 I/O 队列的示例用法。
在从属模式下运行的控制器驱动程序应将此成员设置为 WdfIoQueueDispatchParallel。 例如,I2C 控制器可能作为外围设备连接到 SPI 总线。 此设备充当 I2C 总线上的主节点,但在 SPI 总线上是一个从属设备。
PowerManaged
控制器驱动程序的 I/O 队列是否应进行电源管理。 将此成员设置为 WdfTrue 以指示队列应受电源管理。 将此成员设置为 WdfFalse 以指示队列不应进行电源管理。 如果此成员设置为 WdfDefault,则队列将进行电源管理,除非驱动程序调用 WdfFdoInitSetFilter 方法,该方法将调用方标识为上级或较低级别的筛选器驱动程序。 SPB_CONTROLLER_CONFIG_INIT 函数将此成员初始化为 WdfDefault。
当 I/O 请求在电源托管队列中可用时,框架仅当设备处于其工作 (D0) 状态时,才会将请求传送到驱动程序。 有关详细信息,请参阅 适用于 I/O 队列的 Power Management。
EvtSpbTargetConnect
指向 EvtSpbTargetConnect 回调函数的指针。 此函数由 SPB 控制器驱动程序实现。 EvtSpbTargetConnect 成员是可选的,可以为 NULL。
EvtSpbTargetDisconnect
指向 EvtSpbTargetDisconnect 回调函数的指针。 此函数由 SPB 控制器驱动程序实现。 EvtSpbTargetDisconnect 成员是可选的,可以为 NULL。
EvtSpbControllerLock
指向 EvtSpbControllerLock 回调函数的指针。 此函数由 SPB 控制器驱动程序实现。 EvtSpbControllerLock 成员是可选的,可以为 NULL。 有关 EvtSpbControllerLock 函数的详细信息,请参阅 处理 Client-Implemented 序列。
EvtSpbControllerUnlock
指向 EvtSpbControllerUnlock 回调函数的指针。 此函数由 SPB 控制器驱动程序实现。 此成员是可选的,可以为 NULL。 有关 EvtSpbControllerUnlock 函数的详细信息,请参阅 处理 Client-Implemented 序列。
EvtSpbIoRead
指向 EvtSpbControllerIoRead 回调函数的指针。 此函数由 SPB 控制器驱动程序实现。 此成员不是可选的,不得为 NULL。
EvtSpbIoWrite
指向 EvtSpbControllerIoWrite 回调函数的指针。 此函数由 SPB 控制器驱动程序实现。 此成员不是可选的,不得为 NULL。
EvtSpbIoSequence
指向 EvtSpbControllerIoSequence 回调函数的指针。 此函数由 SPB 控制器驱动程序实现。 此成员不是可选的,不得为 NULL。
注解
SpbDeviceInitialize 方法使用此结构中的信息来完成 SPB 控制器的初始化。 将此结构传递给 SpbDeviceInitialize 之前,请调用 SPB_CONTROLLER_CONFIG_INIT 函数以将此结构的成员初始化为其默认值,并根据需要使用特定于 SPB 控制器驱动程序的信息覆盖这些默认值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 支持从Windows 8开始。 |
标头 | spbcx.h |
另请参阅
- EvtSpbControllerIoRead
- EvtSpbControllerIoSequence
- EvtSpbControllerIoWrite
- EvtSpbControllerLock
- EvtSpbControllerUnlock
- EvtSpbTargetConnect
- EvtSpbTargetDisconnect
- IOCTL_SPB_EXECUTE_SEQUENCE
- IOCTL_SPB_LOCK_CONTROLLER
- IOCTL_SPB_UNLOCK_CONTROLLER
- IRP_MN_READ
- IRP_MN_WRITE
- SPB_CONTROLLER_CONFIG_INIT
- SpbDeviceInitialize
- SpbRequestGetParameters
- WdfFdoInitSetFilter