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 波段条目。
输出缓冲区长度
后跟 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) |
另请参阅
ENUMERATE_BANDS_PARAMETERS