IOCTL_EHSTOR_BANDMGMT_DELETE_BAND IOCTL (ehstorbandmgmt.h)

存储设备上配置的带区随 IOCTL_EHSTOR_BANDMGMT_DELETE_BAND 请求一起删除。 输入参数中的擦除选项允许请求对带区数据执行加密擦除。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

Irp-AssociatedIrp.SystemBuffer> 处的输入缓冲区必须包含DELETE_BAND_PARAMETERS,并且可能包含AUTH_KEY结构。

如果 DELETE_BAND_PARAMETERSAuthKeyOffset 成员设置为EHSTOR_BANDMGR_NO_KEY,则系统缓冲区中的输入数据不需要包含AUTH_KEY结构。

输入缓冲区长度

Parameters.DeviceIoControl.InputBufferLength 指示缓冲区的大小(以字节为单位),缓冲区 的大小 必须至少为 (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 通信失败。 存储设备可能与安全协议不兼容。

注解

需要身份验证密钥才能删除带,而无需先执行擦除。 若要请求带擦除, 请在 DELETE_BAND_PARAMETERSFlags 成员中设置 DELBAND_ERASE_BEFORE_DELETE标志

删除带区后,已删除带中包含的所有 BA 将返回到全局带区。 全局带的锁定条件现在适用于返回到全局带的 LBA。 返回到全局波段的 LBA 现在与全局波段的媒体密钥相关联,这些 LBA 中的加密数据不可恢复。

已删除的带区保留在 silo 驱动程序的带区表中,但变为未配置。 身份验证密钥重置为默认值,带和密钥元数据包含零,锁定状态还原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)

另请参阅

DELETE_BAND_PARAMETERS

IOCTL_EHSTOR_BANDMGMT_CREATE_BAND

IOCTL_EHSTOR_BANDMGMT_ERASE_BAND