SpbControllerSetRequestAttributes 函数 (spbcx.h)
SpbControllerSetRequestAttributes 方法设置将用于 SPB 框架扩展 (SpbCx) 传递给 SPB 控制器驱动程序的所有 SPBREQUEST 对象的对象属性。
语法
void SpbControllerSetRequestAttributes(
[in] WDFDEVICE FxDevice,
[in] PWDF_OBJECT_ATTRIBUTES RequestAttributes
);
参数
[in] FxDevice
表示 SPB 控制器的设备对象的 WDFDEVICE 句柄。
[in] RequestAttributes
指向调用方分配的 WDF_OBJECT_ATTRIBUTES 结构的指针,该结构包含 SPB 控制器的 SPBREQUEST 对象的属性。
返回值
没有
言论
在设备初始化期间,SPB 控制器驱动程序可以调用此方法来设置 SPBREQUEST 对象的默认属性。 此后,SpbCx 将这些属性分配给它向总线上的目标设备传递(或转发)的任何 I/O 请求。
RequestAttributes 指向 WDF_OBJECT_ATTRIBUTES 结构。 调用方以前必须调用 WDF_OBJECT_ATTRIBUTES_INIT 函数来初始化此结构。 在此调用之后,但在调用 SpbControllerSetRequestAttributes之前,调用方可以更改此结构的以下成员的值:
- EvtCleanupCallback
- EvtDestroyCallback
- ContextSizeOverride
- ContextTypeInfo
WDF_OBJECT_ATTRIBUTES_INIT 初始化 EvtCleanupCallback,EvtDestroyCallback 成员 NULL。 如果更改这些默认值以注册 EvtCleanupCallback 或 EvtDestroyCallback 回调函数,则每次 I/O 请求到达 SPB 控制器队列时都会调用此函数,该队列由 SpbCx 管理。 此类 I/O 请求会导致 EvtCleanupCallback 或 EvtDestroyCallback 函数调用,即使 SpbCx 从不向 SPB 控制器驱动程序显示请求(因为请求在到达队列后取消,但在传递给驱动程序之前)。
SPB 控制器驱动程序必须先调用 SpbControllerSetRequestAttributes,然后才能 提交 设备对象,也就是说,在从 EvtDriverDeviceAdd 回调返回之前,或将 PDO 添加到控制器的子列表中。 子列表表示附加到总线的设备。 有关详细信息,请参阅 枚举总线上的设备。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 8 开始可用。 |
目标平台 | 普遍 |
标头 | spbcx.h |
库 | Spbcxstubs.lib |
IRQL | PASSIVE_LEVEL |