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]

可供密钥管理器使用的元数据字段。

注解

ReadlockWritelock 都是 LOCKSTATE 值,表示锁定状态和锁定持久性。 其值为以下值之一。

锁定状态 说明
INVALID_LOCK_STATE 锁定状态无效。
PERSISTENT_UNLOCK 设备已解锁,并在电源重置期间保持解锁状态。
NONPERSISTENT_UNLOCK 设备已解锁,但在电源重置期间锁定。
PERSISTENT_LOCK 设备已锁定,并在电源重置期间保持锁定状态。
 

仅当在 IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS 请求ENUMERATE_BANDS_PARAMETERSFlags 成员中设置了 ENUMBANDS_REPORT_CRYPTO_ALGO 时,CryptoAlgoOidString 才指定数据加密算法。 否则, CryptoAlgoOidString.OffsetCryptoAlgoOidString.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 时,不使用 CryptoAlgoIdTypeCryptoAlgoOidString ,并且必须设置为 0。

要求

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

另请参阅

BAND_TABLE_ENTRY

ENUMERATE_BANDS_PARAMETERS

IOCTL_EHSTOR_BANDMGMT_CREATE_BAND

IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS