IOCTL_AACS_READ_MEDIA_KEY_BLOCK_SIZE IOCTL (ntddcdvd.h)

查询逻辑单元,以获取保存高级访问控制系统 (AACS) 媒体密钥块 (MKB) 所需的缓冲区大小。

主要代码

IRP_MJ_DEVICE_CONTROL

输入缓冲区

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)