IOCTL_SCSI_GET_INQUIRY_DATA IOCTL (ntddscsi.h)

返回给定 SCSI 主机总线适配器上所有设备的 SCSI 查询数据, (HBA) 。 如果在用户空间中使用 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) ) + (InquiryDataSize * NumberOfLUs) ,其中 InquiryDataSize (size of (SCSI_INQUIRY_DATA) - 1 + INQUIRYDATABUFFERSIZE) 向上舍入到对齐边界。

状态块

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

要求

要求
Header 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