IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS IOCTL (ehstorbandmgmt.h)

发送此 IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS 请求以检索带管理下的存储设备的带区列表。 带状信息在包含带位置和安全属性的带项表中返回。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

Irp->AssociatedIrp.SystemBuffer 的缓冲区必须包含 ENUMERATE_BANDS_PARAMETERS 结构。

输入缓冲区长度

Parameters.DeviceIoControl.InputBufferLength 指示缓冲区的大小(以字节为单位),缓冲区的大小必须至少 大小(ENUMERATE_BANDS_PARAMETERS)。

输出缓冲区

Irp->AssociatedIrp.SystemBuffer 的缓冲区包含一个 BAND_TABLE 结构,后跟 BandTableEntryCount 带条目。

输出缓冲区长度

BAND_TABLE 结构的长度,后跟 BandTableEntryCount 带条目。

状态块

信息 字段包含输出缓冲区中返回的字节数。 可以在 状态 字段中返回以下值之一。

状态值 描述
STATUS_SUCCESS 已停用存储设备上的安全功能。
STATUS_INVALID_DEVICE_REQUEST 存储设备不支持带管理。
STATUS_INVALID_BUFFER_SIZE 输入缓冲区大小无效。
STATUS_INVALID_PARAMETER 输入缓冲区中的信息无效。
STATUS_NOT_FOUND 未为提供的枚举参数配置带。
STATUS_BUFFER_OVERFLOW 未提供缓冲区或其大小设置为零。 信息 字段中返回所需的大小。
STATUS_IO_DEVICE_ERROR 通信失败。 存储设备可能与安全协议不兼容。
STATUS_BUFFER_TOO_SMALL 提供的输出缓冲区不够大,无法容纳返回的输出数据。

言论

驱动程序或应用程序可以通过将请求的输出缓冲区设置为 NULL 并将输出大小设置为 0 来查询所需的输出缓冲区大小。 IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS 请求将返回 IoStatus 块的 状态 字段设置为STATUS_BUFFER_OVERFLOW,信息 字段将包含所需的缓冲区大小。

要求

要求 价值
最低支持的客户端 从 Windows 8 开始可用。
标头 ehstorbandmgmt.h (包括 EhStorBandMgmt.h)

另请参阅

BAND_TABLE

ENUMERATE_BANDS_PARAMETERS