IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS IOCTL (ehstorbandmgmt.h)
发送此 IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS 请求以检索带管理下的存储设备的带区列表。 带状信息在包含带位置和安全属性的带项表中返回。
主要代码
输入缓冲区
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) |
另请参阅
ENUMERATE_BANDS_PARAMETERS