BAND_SECURITY_INFO 结构 (ehstorbandmgmt.h)
BAND_SECURITY_INFO结构指定带表条目查询的安全信息。
语法
typedef struct _BAND_SECURITY_INFO {
ULONG StructSize;
LOCKSTATE ReadLock;
LOCKSTATE WriteLock;
ALGOIDTYPE CryptoAlgoIdType;
union {
struct {
ULONG Offset;
ULONG Length;
} CryptoAlgoOidString;
ULONG CryptoAlgoNumericId;
};
BYTE Metadata[32];
} BAND_SECURITY_INFO, *PBAND_SECURITY_INFO;
成员
StructSize
结构大小(以字节为单位)。 将 设置为 sizeof (BAND_SECURITY_INFO) 。
ReadLock
带是否可供读取,以及读锁受到电源重置的影响。
WriteLock
带是否可供写入,以及写入锁受到电源重置的影响。
CryptoAlgoIdType
使用的加密算法标识符的类型。 这必须设置为 AlgoIdTypeOidString。
CryptoAlgoOidString
用于保护带中数据的加密算法。
CryptoAlgoOidString.Offset
从加密算法 OID 字符串开始的此结构开头的偏移量。
CryptoAlgoOidString.Length
标识加密算法的 OID 字符串的长度。 这是一个字节长度值,包括 OID 字符串的 NULL 终止符。
CryptoAlgoNumericId
保留。
Metadata[32]
可供密钥管理器使用的元数据字段。
注解
Readlock 和 Writelock 都是 LOCKSTATE 值,表示锁定状态和锁定持久性。 其值为以下值之一。
锁定状态 | 说明 |
---|---|
INVALID_LOCK_STATE | 锁定状态无效。 |
PERSISTENT_UNLOCK | 设备已解锁,并在电源重置期间保持解锁状态。 |
NONPERSISTENT_UNLOCK | 设备已解锁,但在电源重置期间锁定。 |
PERSISTENT_LOCK | 设备已锁定,并在电源重置期间保持锁定状态。 |
仅当在 IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS 请求ENUMERATE_BANDS_PARAMETERS的 Flags 成员中设置了 ENUMBANDS_REPORT_CRYPTO_ALGO 时,CryptoAlgoOidString 才指定数据加密算法。 否则, CryptoAlgoOidString.Offset 和 CryptoAlgoOidString.Length 都设置为 0。 下面是为 CryptoAlgoOidString 返回的可能加密算法 OID 字符串。
算法 | OID |
---|---|
IAES128-ECB | 2.16.840.1.101.3.4.1.1 |
AES128-CBC | 2.16.840.1.101.3.4.1.2. |
AES128-OFB | 2.16.840.1.101.3.4.1.3 |
AES128-CFB | 2.16.840.1.101.3.4.1.4 |
AES128-XTS | 1.3.111.2.1619.0.1.1 |
AES256-ECB | 2.16.840.1.101.3.4.1.41 |
AES256-CBC | 2.16.840.1.101.3.4.1.42 |
AES256-OFB | 2.16.840.1.101.3.4.1.43 |
AES256-CFB | 2.16.840.1.101.3.4.1.44 |
AES256-XTS | 1.3.111.2.1619.0.1.2 |
在输入参数集中使用 BAND_SECURITY_INFO 时,不使用 CryptoAlgoIdType 和 CryptoAlgoOidString ,并且必须设置为 0。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从Windows 8开始可用 |
标头 | ehstorbandmgmt.h (包括 EhStorBandMgmt.h) |