IOCTL_AACS_READ_MEDIA_KEY_BLOCK IOCTL (ntddcdvd.h)

メディア キー ブロック (MKB) の論理ユニットを照会します。

メジャー コード

IRP_MJ_DEVICE_CONTROL

[入力バッファー]

Irp-AssociatedIrp.SystemBuffer の>バッファーには、レイヤーのAACS_LAYER_NUMBER番号が含まれています。 AACS_LAYER_NUMBERは、コマンドを適用するメディアのレイヤーを指定する 0 ~ 255 の範囲の符号なし long 整数値です。

typedef ULONG AACS_LAYER_NUMBER, *PAACS_LAYER_NUMBER;

入力バッファーの長さ

I/O スタックの場所にある Parameters.DeviceIoControl.InputBufferLength は、バッファーのサイズ (バイト単位) を示します。これは、 = sizeof(AACS_LAYER_NUMBER) である必要があります>。

出力バッファー

Irp-AssociatedIrp.SystemBuffer の>バッファーには、不透明な可変長 MKB が含まれています。 MKB のサイズは、常に 32,768 (0x8000) の倍数です。

出力バッファーの長さ

可変長 MKB の長さ。

ステータス ブロック

[ 情報 ] フィールドは、転送されたバイト数に設定されます。 操作が成功した場合、 Status フィールドはSTATUS_SUCCESSに設定されます。 Irp-AssociatedIrp.SystemBuffer>NULL の場合、または Irp-AssociatedIrp.SystemBuffer> のバッファーが MKB 全体を格納するのに十分でない場合、操作は失敗し、STATUS_BUFFER_TOO_SMALLの状態を返し、必要なバッファー サイズは IoStatus.Information で返されます。

注釈

ストレージ スタックは、READ DISC STRUCTURE コマンド (形式0x17) と Advanced Access Control System (AACS) 拡張機能を使用して MKB を取得します。 論理ユニット内のメディアが AACS 保護されていない場合、IOCTL_AACS_READ_MEDIA_KEY_BLOCK要求は機能しません。

コンテンツ スクランブリング システム (CSS) 暗号化で使用される MKB とは異なり、AACS MKB はデジタル署名で自己保護されます。 MKB 構造は、Advanced Access Content System Licensing Administrator (AACS LA) によって公開されている Advanced Access Content System、Introduction、Common Cryptographic Elements の仕様に完全に記載されています。

IOCTL_AACS_READ_MEDIA_KEY_BLOCK要求は、高度なアクセス コンテンツ システム (AACS) 認証アルゴリズム (AACS-Auth) のいずれかの手順に対応しています。 AACS-Auth の詳細については、「 Advanced Access Content System」、「Introduction and Common Cryptographic Elements specification」を参照してください。

要件

要件
Header ntddcdvd.h (Ntddcdvd.h を含む)