IOCTL_SCSI_MINIPORT IOCTL (ntddscsi.h)
将特殊控制函数发送到主机总线适配器特定的 (HBA) 微型端口驱动程序。 结果因此请求转发到的特定微型端口驱动程序而异。 如果调用方指定非零 长度,则输入或输出缓冲区必须至少为(sizeof(SRB_IO_CONTROL) + DataBufferLength))。
打开 HBA 的指定方法是使用 SetupDiXxx API 获取正在运行的所有 ScsiAdapter 类设备。 获取每个设备实例名称的属性,并直接打开 HBA。 SCSI%d(例如 \\.\Scsi0:)是符号链接,而不是所有存储驱动程序创建链接。
注意
将来可能会更改 SCSI 端口驱动程序和 SCSI 微型端口驱动程序模型或不可用。 相反,我们建议使用 Storport 驱动程序,Storport 微型端口 驱动程序模型。
主要代码
输入缓冲区
Irp->AssociatedIrp.SystemBuffer 的缓冲区必须包含 SRB_IO_CONTROL 结构。
输入缓冲区长度
Parameters.DeviceIoControl.InputBufferLength 指示缓冲区的大小(以字节为单位),如果 Length 字段为非零,则缓冲区的大小必须至少为 sizeof(SRB_IO_CONTROL),并且数据的额外存储。
输出缓冲区
更新后的 SRB_IO_CONTROL 结构将返回到 Irp->AssociatedIrp.SystemBuffer的缓冲区。
输出缓冲区长度
SRB_IO_CONTROL 结构的长度。
输入/输出缓冲区
没有。
输入/输出缓冲区长度
不適用。
状态块
信息 字段包含输出缓冲区中返回的字节数。 状态 字段指示作的结果。
要求
要求 | 价值 |
---|---|
标头 | ntddscsi.h (包括 Ntddscsi.h) |