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 指示缓冲区的大小(以字节为单位),缓冲区的大小必须为 >大小(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)发布的 高级访问内容系统、简介和通用加密元素 规范。

要求

要求 价值
标头 ntddcdvd.h (包括 Ntddcdvd.h)