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 波段条目。

输出缓冲区长度

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

状态块

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

状态值 说明
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