IOCTL_SCSI_GET_INQUIRY_DATA IOCTL (ntddscsi.h)

返回给定 SCSI 主机总线适配器(HBA)上所有设备的 SCSI 查询数据。 如果在用户空间中使用 IOCTL,则程序必须已打开 HBA 的句柄,该句柄可以通过各种方式(如 SetupDixxx 调用)进行枚举。 可以使用 IOCTL_STORAGE_QUERY_PROPERTY 在 HBA 上查找有关特定设备的信息。 若要确定所需的输出缓冲区的大小,调用方应在循环中发送此 IOCTL 请求。 每当存储堆栈拒绝 IOCTL 时,都会显示一条错误消息,指示缓冲区太小,调用方应将缓冲区大小加倍。

注意 SCSI 端口驱动程序和 SCSI 微型端口驱动程序模型将来可能会更改或不可用。 相反,我们建议使用 Storport 驱动程序Storport 微型端口 驱动程序模型。
 

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

没有。

输入缓冲区长度

没有。

输出缓冲区

Irp->AssociatedIrp.SystemBuffer 的缓冲区包含返回的查询数据。 有关输出缓冲区中查询数据的布局的说明,请参阅 SCSI_ADAPTER_BUS_INFO

输出缓冲区长度

Parameters.DeviceIoControl.OutputBufferLength 指示缓冲区的大小(以字节为单位) 必须 >= (sizeof(SCSI_ADAPTER_BUS_INFO) + (NumberOfBuses) * sizeof(SCSI_BUS_DATA)) + (inquiryDataS * ize NumberOfLUs),其中 查询DataSizesizeof(SCSI_INQUIRY_DATA) - 1 + INQUIRYDATABUFFERSIZE)向上舍入到对齐边界。

状态块

信息 字段包含输出缓冲区中返回的字节数。 状态 字段指示作的结果。

要求

要求 价值
标头 ntddscsi.h (包括 Ntddscsi.h)

另请参阅

IOCTL_SCSI_MINIPORT

IOCTL_SCSI_PASS_THROUGH

IOCTL_SCSI_PASS_THROUGH_DIRECT

IOCTL_SCSI_RESCAN_BUS

IOCTL_STORAGE_QUERY_PROPERTY

SCSI_ADAPTER_BUS_INFO

SCSI_INQUIRY_DATA

STORAGE_DEVICE_DESCRIPTOR