IOCTL_EHSTOR_BANDMGMT_ERASE_BAND IOCTL (ehstorbandmgmt.h)

IOCTL_EHSTOR_BANDMGMT_ERASE_BAND请求以加密方式擦除并重置某个带的身份验证密钥。 带的其余配置未修改。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

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

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

输入缓冲区长度

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

注解

当前擦除身份验证密钥未在 IOCTL_EHSTOR_BANDMGMT_ERASE_BAND 请求中提供。 以前配置了存储设备的擦除身份验证密钥。

Windows 中未提供更改存储设备的擦除身份验证密钥的方法。 如果系统缓冲区中提供了正确的参数作为输入,则此请求应会成功。 如果擦除身份验证密钥在 Windows 外部更改,例如在具有不同操作系统的双启动环境中,则此请求可能会失败。

当使用 IOCTL_EHSTOR_BANDMGMT_ERASE_BAND擦除带区时,之前保留的唯一属性是带开始和带区大小。 删除以前的媒体加密密钥,并生成新密钥。 锁定设置为读取和写入 PERSISTANT_UNLOCK 。 将清除以前设置的安全元数据。 除非指示使用默认密钥,否则将设置 ERASE_BAND_PARAMETERS 中指定的新身份验证密钥。

若要防止其他应用程序使用默认密钥控制带和擦除,应将新的身份验证密钥包含在 IOCTL_EHSTOR_BANDMGMT_ERASE_BAND 请求中。

此请求对带表所做的更改在 IOCTL 请求完成之前以原子方式提交到设备。 因此,可以保证在系统或电源发生故障时,使用设置的所有属性修改带,或者根本不设置任何属性。

要求

要求
最低受支持的客户端 Windows 8
标头 ehstorbandmgmt.h (包括 EhStorBandMgmt.h)

另请参阅

ERASE_BAND_PARAMETERS

IOCTL_EHSTOR_BANDMGMT_DELETE_BAND

IOCTL_EHSTOR_BANDMGMT_ERASE_ALL_BANDS