IOCTL_STORAGE_QUERY_PROPERTY IOCTL (ntddstor.h)

驱动程序可以使用 IOCTL_STORAGE_QUERY_PROPERTY 返回存储设备或适配器的属性。 请求指示要检索的信息类型,例如设备的查询数据或适配器的功能和限制。 IOCTL_STORAGE_QUERY_PROPERTY 还可用于确定端口驱动程序是否支持特定的属性,或者可以使用后续更改属性请求修改属性描述符中的哪些字段。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

Parameters.DeviceIoControl.InputBufferLength 指示 Irp-AssociatedIrp.SystemBuffer> 的参数缓冲区的大小(以字节为单位),该大小必须为 >= sizeof (STORAGE_PROPERTY_QUERY) 。

Irp->AssociatedIrp.SystemBuffer 包含 STORAGE_PROPERTY_QUERY 数据,用于指定是查询设备还是适配器、要执行的查询类型以及查询所需的任何其他参数,例如特定 SCSI 模式感知页的页面代码。 只能从设备检索设备属性;尝试从适配器检索设备属性将导致错误。

Parameters.DeviceIoControl.OutputBufferLength 指示可写入 Irp-AssociatedIrp.SystemBuffer> 的字节数。 OutputBufferLength 可以为零,以确定属性是否存在而不检索其数据。

输入缓冲区长度

Parameters.DeviceIoControl.InputBufferLength 指示 Irp-AssociatedIrp.SystemBuffer> 的参数缓冲区的大小(以字节为单位),该大小必须为 >= sizeof (STORAGE_PROPERTY_QUERY) 。

输出缓冲区

驱动程序将查询数据返回到 Irp-AssociatedIrp.SystemBuffer> 处的缓冲区。 可以将不同数量的特定于总线的数据追加到 结构中。

输出缓冲区长度

将返回的结构强制转换为STORAGE_DESCRIPTOR_HEADER,并检查其 Size 成员来确定结构实际需要的字节数。

状态块

信息” 字段设置为返回的字节数。 “ 状态” 字段设置为STATUS_SUCCESS,或者可能设置为STATUS_INVALID_DEVICE_REQUEST、STATUS_INVALID_PARAMETER或STATUS_NOT_SUPPORTED。

要求

要求
Header ntddstor.h (包括 Ntddstor.h)

另请参阅

STORAGE_DESCRIPTOR_HEADER

STORAGE_PROPERTY_QUERY

STORAGE_RPMB_DATA_FRAME