IOCTL_EHSTOR_BANDMGMT_SET_BAND_SECURITY IOCTL (ehstorbandmgmt.h)

带托管存储设备中带的安全属性使用 IOCTL_EHSTOR_BANDMGMT_SET_BAND_SECURITY 请求进行修改。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

Irp->AssociatedIrp.SystemBuffer 的缓冲区必须包含 SET_BAND_SECURITY_PARAMETERS 结构,后跟 AUTH_KEYBAND_SECURITY_INFO 结构。

如果 SET_BAND_SECURITY_PARAMETERSAuthKeyOffset 成员设置为 EHSTOR_BANDMGR_NO_KEY,则系统缓冲区中的输入数据不需要包含 AUTH_KEY 结构。 此外,如果未提供新的身份验证密钥,则不包含更新的密钥结构。

输入缓冲区长度

Parameters.DeviceIoControl.InputBufferLength 指示缓冲区的大小(以字节为单位),当需要所有输入结构时,缓冲区的大小必须至少 (SET_BAND_SECURITY_PARAMETERS) + 2 * sizeof(AUTH_KEY) + sizeof(BAND_SECURITY_INFO)。

输出缓冲区

没有。

输出缓冲区长度

没有。

状态块

可以在 状态 字段中返回以下值之一。

状态值 描述
STATUS_SUCCESS 乐队的安全属性已更改。
STATUS_INVALID_DEVICE_REQUEST 存储设备不支持带管理。
STATUS_INVALID_BUFFER_SIZE 输入缓冲区大小无效。
STATUS_INVALID_PARAMETER 输入缓冲区中的信息无效。
STATUS_NOT_FOUND 找不到所选条件的带。
STATUS_ACCESS_DENIED 提供的身份验证密钥无效。
STATUS_IO_DEVICE_ERROR 通信失败。 存储设备可能与安全协议不兼容。

言论

带的读取和写入锁定和解锁是在系统缓冲区中作为输入的 BAND_SECURITY_INFO 结构中设置的此 IOCTL。

身份验证密钥更改不会影响带的锁定状态。 无需卸载卷,才能使用此请求更改身份验证密钥。

解锁带时,这意味着 ReadlockWriteLockBAND_SECURITY_INFO 成员为 FALSE,如果 标志 成员 SET_BAND_SECURITY_PARAMETERS中设置 SETBANDSEC_AUTHKEY_CACHING_ENABLED,接收器驱动程序将缓存提供的身份验证密钥。

作为一种特殊情况,此 IOCTL 可用于通知接收器驱动程序带已解锁,而无需在 BAND_SECURITY_INFO中使用锁定成员。 为此,SET_BAND_SECURITY_PARAMETERSNewAuthKeyOffset 成员设置为 CurrentAuthKeyOffsetBandSecurityInfoOffset 设置为 0。 在这种情况下,不会发生任何安全更改,但 CurrentAuthKeyOffset 中缓存密钥,前提是 SETBANDSEC_AUTHKEY_CACHING_ENABLED标志中设置。

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

要求

要求 价值
最低支持的客户端 从 Windows 8 开始可用
标头 ehstorbandmgmt.h (包括 EhStorBandMgmt.h)

另请参阅

BAND_SECURITY_INFO

IOCTL_EHSTOR_BANDMGMT_DELETE_BAND

SET_BAND_SECURITY_PARAMETERS