IOCTL_AACS_READ_MEDIA_KEY_BLOCK_SIZE IOCTL (ntddcdvd.h)
查询逻辑单元,以获取保存高级访问控制系统 (AACS) 媒体密钥块 (MKB) 所需的缓冲区大小。
主要代码
输入缓冲区
Irp-AssociatedIrp.SystemBuffer> 处的缓冲区包含层的AACS_LAYER_NUMBER编号。 AACS_LAYER_NUMBER是 0 到 255(包括 0 到 255)范围内的无符号长整数值,用于指定应用命令的媒体层。
typedef ULONG AACS_LAYER_NUMBER, *PAACS_LAYER_NUMBER;
输入缓冲区长度
I/O 堆栈位置中的 Parameters.DeviceIoControl.InputBufferLength 指示缓冲区的大小(以字节为单位),该大小必须为 >= sizeof (AACS_LAYER_NUMBER) 。
输出缓冲区
Irp-AssociatedIrp.SystemBuffer> 处的缓冲区包含一个 ULONG,用于保存此媒体的完整 AACS MKB 的大小(以字节为单位)。
输出缓冲区长度
使用此值可确定要为 IOCTL_AACS_READ_MEDIA_KEY_BLOCK分配的缓冲区大小。 大小始终为 32,768 (0x8000) 的倍数。
状态块
“ 信息” 字段设置为传输的字节数。 如果操作成功,“ 状态” 字段设置为STATUS_SUCCESS。 此操作中常见的故障代码如下:
STATUS_COPY_PROTECTION_FAILURE或STG_E_STATUS_COPY_PROTECTION_FAILURE
其中一种复制保护机制失败。
STATUS_CSS_AUTHENTICATION_FAILURE或STG_E_CSS_AUTHENTICATION_FAILURE
身份验证过程失败。
STATUS_CSS_KEY_NOT_ESTABLISHED或STG_E_CSS_KEY_NOT_ESTABLISHED
AACS 的 AGID 尚未建立。
STATUS_CSS_KEY_NOT_PRESENT或STG_E_CSS_KEY_NOT_PRESENT
此介质不存在 AACS 保护。
注解
如果逻辑单元中的媒体不受 AACS 保护,则IOCTL_AACS_READ_MEDIA_KEY_BLOCK_SIZE请求将不起作用。
IOCTL_AACS_READ_MEDIA_KEY_BLOCK_SIZE请求对应于高级访问内容系统 (AACS) 身份验证算法 (AACS-Auth) 的步骤之一。 有关 AACS-Auth 的完整说明,请参阅高级访问内容系统许可管理员 (AACS LA) 发布的高级访问内容系统 简介和通用加密元素 规范。
要求
要求 | 值 |
---|---|
Header | ntddcdvd.h (包括 Ntddcdvd.h) |