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 队列的调度类型。 将此成员设置为 WdfIoQueueDispatchSequentialWdfIoQueueDispatchParallel,但不能 WdfIoQueueDispatchManualSPB_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 队列的电源管理

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

另请参阅