SPB_TRANSFER_DIRECTION枚举 (spb.h)
SPB_TRANSFER_DIRECTION 枚举描述 I/O 传输序列中单个传输的方向(读取或写入)。
语法
typedef enum SPB_TRANSFER_DIRECTION {
SpbTransferDirectionNone,
SpbTransferDirectionFromDevice,
SpbTransferDirectionToDevice,
SpbTransferDirectionMax
} *PSPB_TRANSFER_DIRECTION;
常数
SpbTransferDirectionNone 数据传输方向未定义。 |
SpbTransferDirectionFromDevice 数据传输方向是从设备传输到系统内存(从设备读取)。 |
SpbTransferDirectionToDevice 数据传输方向是从系统内存到设备(写入设备)。 |
SpbTransferDirectionMax 保留供作系统使用。 |
言论
此枚举中的值指示 I/O 传输序列中单个传输的方向。 IOCTL_SPB_EXECUTE_SEQUENCE I/O 控制请求的输入缓冲区是指定序列传输列表的 SPB_TRANSFER_LIST 结构。 每个传输由包含传输参数(包括传输方向)的 SPB_TRANSFER_LIST_ENTRY 结构描述。 传输方向 SpbTransferDirectionFromDevice 进行读取作,并且 SpbTransferDirectionToDevice 进行写入作。
SPB 控制器驱动程序可以调用 SpbRequestGetParameters 方法,从 I/O 请求中检索一组特定于 SPB 的参数。 其中一个参数是一个 SPB_TRANSFER_DIRECTION 枚举值,指示上一个 I/O 请求的传输方向。 SPB 控制器驱动程序可以使用此方向值来确定当前读取或写入(IRP_MJ_READ 还是 IRP_MJ_WRITE)请求是否需要更改总线上的传输方向。
此外,SpbRequestGetParameters 检索一个位置值,该值指示多请求序列传输列表中的读取或写入请求的相对位置。 如果读取请求或写入请求的位置值为 SpbRequestSequencePositionSingle 或 SpbRequestSequencePositionFirst,则上一次传输的方向值 SpbTransferDirectionNone(即,没有以前的传输方向)。 对于具有位置值为 SpbRequestSequencePositionMiddle 或 SpbRequestSequencePositionLast的读取或写入请求,方向值指示上一次传输是读取还是写入。 对于解锁(IOCTL_SPB_UNLOCK_CONTROLLER)请求,其位置值为 SpbRequestSequencePositionLast,方向值指示序列中的最后一次传输是读取还是写入。
锁(IOCTL_SPB_LOCK_CONTROLLER)请求没有以前的方向。 同样,传递给 EvtSpbControllerIoOther 的 I/O 控制请求 回调函数没有以前的方向。 对于其中任一请求,SpbRequestGetParameters 检索的上一个方向值 SpbTransferDirectionNone。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 8 开始支持。 |
标头 | spb.h |