IOCTL_EHSTOR_BANDMGMT_DELETE_BAND IOCTL (ehstorbandmgmt.h)
使用 IOCTL_EHSTOR_BANDMGMT_DELETE_BAND 请求删除存储设备上配置的带。 输入参数中的擦除选项允许请求执行带数据的加密擦除。
主要代码
输入缓冲区
Irp->AssociatedIrp.SystemBuffer 的输入缓冲区必须包含 DELETE_BAND_PARAMETERS,并且可能包含 AUTH_KEY 结构。
如果 AuthKeyOffset 成员 DELETE_BAND_PARAMETERS 设置为 EHSTOR_BANDMGR_NO_KEY,则系统缓冲区中的输入数据不需要包含 AUTH_KEY 结构。
输入缓冲区长度
Parameters.DeviceIoControl.InputBufferLength 指示缓冲区的大小(以字节为单位),缓冲区的大小必须至少为 sizeof (DELETE_BAND_PARAMETERS) + sizeof(AUTH_KEY)。
输出缓冲区
没有。
输出缓冲区长度
没有。
状态块
可以在 状态 字段中返回以下值之一。
状态值 | 描述 |
---|---|
STATUS_SUCCESS | 已成功删除该乐队。 |
STATUS_INVALID_DEVICE_REQUEST | 存储设备不支持带管理。 |
STATUS_INVALID_BUFFER_SIZE | 输入缓冲区大小不正确。 |
STATUS_INVALID_PARAMETER | 输入缓冲区中的信息无效。 |
STATUS_ACCESS_DENIED | 身份验证密钥无效或带段被锁定以写入。 |
STATUS_NOT_FOUND | 找不到所选条件的带。 |
STATUS_IO_DEVICE_ERROR | 通信失败。 存储设备可能与安全协议不兼容。 |
言论
需要身份验证密钥才能删除带,而无需先执行擦除。 若要请求带擦除,DELBAND_ERASE_BEFORE_DELETE 标志在 DELETE_BAND_PARAMETERS标志 成员中设置。
删除带后,已删除的带中包含的所有 LBA 将返回到全局带。 全局带的锁定条件现在适用于返回到全局带的 LBA。 返回到全局带的 LBA 现在与全局带的媒体密钥相关联,并且无法恢复这些 LBA 中的加密数据。
已删除的带保留在接收器驱动程序的带表中,但未配置。 身份验证密钥重置为默认值,带和密钥元数据包含零,锁定状态还原为 PERSISTENT_UNLOCK。 现在可以使用 IOCTL_EHSTOR_BANDMGMT_CREATE_BAND 请求重新配置带。
删除没有加密擦除的带区不会删除该带的加密密钥。 稍后可以创建一个与已删除带相同的配置和带标识符的带区。 在这种情况下,以前存储在带中且不会覆盖的数据,因为删除上一个带段将可用。 为了避免这种情况,请删除带带,并在 DELETE_BAND_PARAMETERS中设置 DELBAND_ERASE_BEFORE_DELETE 标志。
IOCTL_EHSTOR_BANDMGMT_DELETE_BAND 不会删除全局带。 要执行此作的请求将返回 STATUS_INVALID_PARAMETER。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 8 开始可用。 |
标头 | ehstorbandmgmt.h (包括 EhStorBandMgmt.h) |