IOCTL_AACS_READ_MEDIA_KEY_BLOCK IOCTL (ntddcdvd.h)
メディア キー ブロック (MKB) の論理ユニットを照会します。
メジャー コード
[入力バッファー]
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 を含む) |