IOCTL_SCSI_GET_CAPABILITIES IOCTL (ntddscsi.h)
返回基础 SCSI HBA 的功能和限制。 MaximumTransferLength 和 AlignmentMask 成员中返回最重要的信息。 IOCTL_SCSI_PASS_THROUGH 和 IOCTL_SCSI_PASS_THROUGH_DIRECT 的类驱动程序和用户必须遵循这些限制。
只有旧驱动程序才能发出此请求。 如果请求发送到端口驱动程序创建的 PDO,则请求将失败。
若要获取 SCSI 功能数据,即插即用驱动程序必须针对已向其添加驱动程序的每个设备发出 STORAGE_ADAPTER_DESCRIPTOR 数据 IOCTL_STORAGE_QUERY_PROPERTY 请求(也就是说,驱动程序已接收 AddDevice 调用)。 旧驱动程序应将此请求转发到端口驱动程序。 如果请求发送到适配器的 FDO,则此请求将失败。
注意 SCSI 端口驱动程序和 SCSI 微型端口驱动程序模型将来可能会更改或不可用。 相反,我们建议使用 Storport 驱动程序,Storport 微型端口 驱动程序模型。
主要代码
输入缓冲区
没有。
输入缓冲区长度
没有。
输出缓冲区
更新 IO_SCSI_CAPABILITIES 信息返回到 Irp->AssociatedIrp.SystemBuffer的缓冲区。
输出缓冲区长度
I/O 堆栈位置中的 parameters.DeviceIoControl.OutputBufferLength 指示缓冲区的大小(以字节为单位),缓冲区的大小必须为 >= sizeof(IO_SCSI_CAPABILITIES)。
状态块
信息 字段包含输出缓冲区中返回的字节数。 状态 字段指示作的结果。
要求
要求 | 价值 |
---|---|
标头 | ntddscsi.h (包括 Ntddscsi.h) |