다음을 통해 공유


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 범위의 부호 없는 긴 정수 값입니다.

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_SUCCESS 설정됩니다. Irp->AssociatedIrp.SystemBuffer NULL 경우 또는 Irp->AssociatedIrp.SystemBuffer 버퍼가 전체 MKB를 포함하기에 충분하지 않은 경우 작업이 실패하고 STATUS_BUFFER_TOO_SMALL 상태를 반환하며 필요한 버퍼 크기는 IoStatus.Information반환됩니다.

발언

스토리지 스택은 AACS(Advanced Access Control System) 확장과 함께 READ DISC STRUCTURE 명령(0x17 형식)을 사용하여 MKB를 검색합니다. 논리 단위의 미디어가 AACS로 보호되지 않으면 IOCTL_AACS_READ_MEDIA_KEY_BLOCK 요청이 작동하지 않습니다.

CSS(Content-Scrambling System) 암호화와 함께 사용되는 MKB와 달리 AACS MKB는 디지털 서명으로 자체 보호됩니다. MKB 구조는 AACS LA(Advanced Access Content System Licensing Administrator)가 게시한 고급 액세스 콘텐츠 시스템, 소개 및 일반적인 암호화 요소 사양에 자세히 설명되어 있습니다.

IOCTL_AACS_READ_MEDIA_KEY_BLOCK 요청은 AACS(Advanced Access Content System) 인증 알고리즘(AACS-Auth)의 단계 중 하나에 해당합니다. AACS-Auth에 대한 자세한 내용은 고급 액세스 콘텐츠 시스템, 소개 및 일반적인 암호화 요소 사양을 참조하세요.

요구 사항

요구
헤더 ntddcdvd.h(Ntddcdvd.h 포함)