SERCX2_CUSTOM_RECEIVE_CONFIG结构(sercx.h)
SERCX2_CUSTOM_RECEIVE_CONFIG 结构包含串行框架扩展版本 2(SerCx2)用于配置新的自定义接收对象的信息。
语法
typedef struct _SERCX2_CUSTOM_RECEIVE_CONFIG {
ULONG Size;
ULONG Alignment;
ULONG MinimumTransactionLength;
ULONG MaximumTransactionLength;
ULONG MinimumTransferUnit;
BOOLEAN Exclusive;
} SERCX2_CUSTOM_RECEIVE_CONFIG, *PSERCX2_CUSTOM_RECEIVE_CONFIG;
成员
Size
此结构的大小(以字节为单位)。 SerCx2CustomReceiveCreate 方法使用此成员来确定调用方正在使用的结构版本。 此结构的大小可能会在 Sercx.h 头文件的未来版本中更改。
Alignment
数据对齐要求。 指定如何在内存中对齐自定义接收事务中传输的起始地址。 将此成员设置为 Wdm.h 头文件中的相应 FILE_XXX_ALIGNMENT 常量。 例如,FILE_WORD_ALIGNMENT指示起始地址必须与内存中的双字节边界对齐,FILE_LONG_ALIGNMENT指示该地址必须与四字节边界对齐,等等。
MinimumTransactionLength
自定义接收事务中数据传输的最小长度(以字节为单位)。 如果读取(IRP_MJ_READ)请求中的缓冲区长度小于此最小长度,则 SerCx2 将编程 I/O (PIO) 用于事务。
MaximumTransactionLength
自定义接收事务中数据传输的最大长度(以字节为单位)。 如果读取请求中的缓冲区大小大于此最大长度,则 SerCx2 使用多个自定义接收事务来处理请求,并将每个事务限制为最大长度。
MinimumTransferUnit
最小传输单位。 散点/收集列表中元素指定的字节数必须是最小传输单元的整数倍数。 若要指示应使用默认最小传输单元,请将此成员设置为零。 有关默认最小传输单位的详细信息,请参阅 DMA_ADAPTER_INFO_V1。
Exclusive
是否以独占方式使用自定义接收事务来处理写入(IRP_MJ_READ)请求。 设置为 TRUE 以指示读取请求应以独占方式使用自定义接收事务。 设置为 FALSE,指示读取请求可以使用自定义接收事务和 PIO 接收事务的组合。
仅当自定义接收事务的最小传输单元为一个字节,最小事务长度为一个字节时,才将此成员设置为 true,并且事务的读取缓冲区可以在内存中的任何字节边界上启动。
如果 排他TRUE,则 MinimumTransferUnitOverride、Alignment,MinimumTransactionLength 成员必须为零。
无论此成员的值如何,PIO 接收事务都用于在串行控制器退出 D0 设备电源状态进入低功率状态之前在接收 FIFO 中保存任何未读数据。
言论
SerCx2CustomReceiveCreate 方法接受指向 SERCX2_CUSTOM_RECEIVE_CONFIG 结构的指针作为输入参数。 在调用 SerCx2CustomReceiveCreate之前,请调用 SERCX2_CUSTOM_RECEIVE_CONFIG_INIT 函数来初始化此结构。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从Windows 8.1开始支持。 |
标头 | sercx.h |