IOCTL_SCSI_GET_CAPABILITIES IOCTL (ntddscsi.h)
返回基础 SCSI HBA 的功能和限制。 在 MaximumTransferLength 和 AlignmentMask 成员中返回最重要的信息。 类驱动程序和 IOCTL_SCSI_PASS_THROUGH 和 IOCTL_SCSI_PASS_THROUGH_DIRECT 的用户必须遵守这些限制。
只有旧版驱动程序才能发出此请求。 如果请求被发送到端口驱动程序创建的 PDO,则请求失败。
若要获取 SCSI 功能数据,即插即用驱动程序必须为驱动程序已添加到的每个设备的 PDO 发出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) 。
状态块
“信息”字段包含输出缓冲区中返回的字节数。 “状态”字段指示操作的结果。
要求
要求 | 值 |
---|---|
Header | ntddscsi.h (包括 Ntddscsi.h) |