32#define IOCTL_DVD_BASE FILE_DEVICE_DVD
34#define IOCTL_STORAGE_SET_READ_AHEAD \
35 CTL_CODE(IOCTL_STORAGE_BASE, 0x0100, METHOD_BUFFERED, FILE_READ_ACCESS)
37#define IOCTL_DVD_START_SESSION \
38 CTL_CODE(IOCTL_DVD_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
40#define IOCTL_DVD_READ_KEY \
41 CTL_CODE(IOCTL_DVD_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
43#define IOCTL_DVD_SEND_KEY \
44 CTL_CODE(IOCTL_DVD_BASE, 0x0402, METHOD_BUFFERED, FILE_READ_ACCESS)
46#define IOCTL_DVD_END_SESSION \
47 CTL_CODE(IOCTL_DVD_BASE, 0x0403, METHOD_BUFFERED, FILE_READ_ACCESS)
49#define IOCTL_DVD_SET_READ_AHEAD \
50 CTL_CODE(IOCTL_DVD_BASE, 0x0404, METHOD_BUFFERED, FILE_READ_ACCESS)
52#define IOCTL_DVD_GET_REGION \
53 CTL_CODE(IOCTL_DVD_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS)
55#define IOCTL_DVD_SEND_KEY2 \
56 CTL_CODE(IOCTL_DVD_BASE, 0x0406, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
58#define IOCTL_AACS_READ_MEDIA_KEY_BLOCK_SIZE \
59 CTL_CODE(IOCTL_DVD_BASE, 0x430, METHOD_BUFFERED, FILE_READ_ACCESS)
61#define IOCTL_AACS_READ_MEDIA_KEY_BLOCK \
62 CTL_CODE(IOCTL_DVD_BASE, 0x431, METHOD_BUFFERED, FILE_READ_ACCESS)
64#define IOCTL_AACS_START_SESSION \
65 CTL_CODE(IOCTL_DVD_BASE, 0x432, METHOD_BUFFERED, FILE_READ_ACCESS)
67#define IOCTL_AACS_END_SESSION \
68 CTL_CODE(IOCTL_DVD_BASE, 0x433, METHOD_BUFFERED, FILE_READ_ACCESS)
70#define IOCTL_AACS_SEND_CERTIFICATE \
71 CTL_CODE(IOCTL_DVD_BASE, 0x434, METHOD_BUFFERED, FILE_READ_ACCESS)
73#define IOCTL_AACS_GET_CERTIFICATE \
74 CTL_CODE(IOCTL_DVD_BASE, 0x435, METHOD_BUFFERED, FILE_READ_ACCESS)
76#define IOCTL_AACS_GET_CHALLENGE_KEY \
77 CTL_CODE(IOCTL_DVD_BASE, 0x436, METHOD_BUFFERED, FILE_READ_ACCESS)
79#define IOCTL_AACS_SEND_CHALLENGE_KEY \
80 CTL_CODE(IOCTL_DVD_BASE, 0x437, METHOD_BUFFERED, FILE_READ_ACCESS)
82#define IOCTL_AACS_READ_VOLUME_ID \
83 CTL_CODE(IOCTL_DVD_BASE, 0x438, METHOD_BUFFERED, FILE_READ_ACCESS)
85#define IOCTL_AACS_READ_SERIAL_NUMBER \
86 CTL_CODE(IOCTL_DVD_BASE, 0x439, METHOD_BUFFERED, FILE_READ_ACCESS)
88#define IOCTL_AACS_READ_MEDIA_ID \
89 CTL_CODE(IOCTL_DVD_BASE, 0x43A, METHOD_BUFFERED, FILE_READ_ACCESS)
91#define IOCTL_AACS_READ_BINDING_NONCE \
92 CTL_CODE(IOCTL_DVD_BASE, 0x43B, METHOD_BUFFERED, FILE_READ_ACCESS)
94#define IOCTL_AACS_GENERATE_BINDING_NONCE \
95 CTL_CODE(IOCTL_DVD_BASE, 0x43C, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
97#define IOCTL_DVD_READ_STRUCTURE \
98 CTL_CODE(IOCTL_DVD_BASE, 0x0450, METHOD_BUFFERED, FILE_READ_ACCESS)
187#define DVD_CHALLENGE_KEY_LENGTH (12 + sizeof(DVD_COPY_PROTECT_KEY))
188#define DVD_BUS_KEY_LENGTH (8 + sizeof(DVD_COPY_PROTECT_KEY))
189#define DVD_TITLE_KEY_LENGTH (8 + sizeof(DVD_COPY_PROTECT_KEY))
190#define DVD_DISK_KEY_LENGTH (2048 + sizeof(DVD_COPY_PROTECT_KEY))
191#define DVD_RPC_KEY_LENGTH (sizeof(DVD_RPC_KEY) + sizeof(DVD_COPY_PROTECT_KEY))
192#define DVD_SET_RPC_KEY_LENGTH (sizeof(DVD_SET_RPC_KEY) + sizeof(DVD_COPY_PROTECT_KEY))
193#define DVD_ASF_LENGTH (sizeof(DVD_ASF) + sizeof(DVD_COPY_PROTECT_KEY))
195#define DVD_END_ALL_SESSIONS ((DVD_SESSION_ID) 0xffffffff)
198#define DVD_CGMS_RESERVED_MASK 0x00000078
200#define DVD_CGMS_COPY_PROTECT_MASK 0x00000018
201#define DVD_CGMS_COPY_PERMITTED 0x00000000
202#define DVD_CGMS_COPY_ONCE 0x00000010
203#define DVD_CGMS_NO_COPY 0x00000018
205#define DVD_COPYRIGHT_MASK 0x00000040
206#define DVD_NOT_COPYRIGHTED 0x00000000
207#define DVD_COPYRIGHTED 0x00000040
209#define DVD_SECTOR_PROTECT_MASK 0x00000020
210#define DVD_SECTOR_NOT_PROTECTED 0x00000000
211#define DVD_SECTOR_PROTECTED 0x00000020
static const WCHAR Certificate[]
#define _Field_range_(min, max)
struct _DVD_BCA_DESCRIPTOR * PDVD_BCA_DESCRIPTOR
struct _DVD_DESCRIPTOR_HEADER DVD_DESCRIPTOR_HEADER
struct _DVD_DESCRIPTOR_HEADER * PDVD_DESCRIPTOR_HEADER
const AACS_BINDING_NONCE * PCAACS_BINDING_NONCE
struct _AACS_SEND_CERTIFICATE AACS_SEND_CERTIFICATE
@ DvdManufacturerDescriptor
struct _AACS_SERIAL_NUMBER * PAACS_SERIAL_NUMBER
struct _DVD_COPY_PROTECT_KEY DVD_COPY_PROTECT_KEY
struct DVD_READ_STRUCTURE * PDVD_READ_STRUCTURE
const AACS_BINDING_NONCE CAACS_BINDING_NONCE
const AACS_SERIAL_NUMBER * PCAACS_SERIAL_NUMBER
struct _AACS_SERIAL_NUMBER AACS_SERIAL_NUMBER
const AACS_VOLUME_ID * PCAACS_VOLUME_ID
const AACS_SERIAL_NUMBER CAACS_SERIAL_NUMBER
struct _AACS_READ_BINDING_NONCE AACS_READ_BINDING_NONCE
struct _DVD_DISK_KEY_DESCRIPTOR DVD_DISK_KEY_DESCRIPTOR
struct _AACS_VOLUME_ID * PAACS_VOLUME_ID
const AACS_CHALLENGE_KEY * PCAACS_CHALLENGE_KEY
const AACS_MEDIA_ID * PCAACS_MEDIA_ID
struct _AACS_BINDING_NONCE AACS_BINDING_NONCE
struct _AACS_CHALLENGE_KEY * PAACS_CHALLENGE_KEY
const AACS_SEND_CERTIFICATE CAACS_SEND_CERTIFICATE
struct _AACS_SEND_CHALLENGE_KEY AACS_SEND_CHALLENGE_KEY
struct _AACS_MEDIA_ID AACS_MEDIA_ID
struct _DVD_ASF * PDVD_ASF
const AACS_SEND_CHALLENGE_KEY CAACS_SEND_CHALLENGE_KEY
const AACS_VOLUME_ID CAACS_VOLUME_ID
struct _DVD_LAYER_DESCRIPTOR DVD_LAYER_DESCRIPTOR
struct _AACS_SEND_CHALLENGE_KEY * PAACS_SEND_CHALLENGE_KEY
const AACS_CERTIFICATE CAACS_CERTIFICATE
const AACS_SEND_CERTIFICATE * PCAACS_SEND_CERTIFICATE
const AACS_MEDIA_ID CAACS_MEDIA_ID
struct _AACS_VOLUME_ID AACS_VOLUME_ID
enum DVD_STRUCTURE_FORMAT * PDVD_STRUCTURE_FORMAT
struct _DVD_MANUFACTURER_DESCRIPTOR DVD_MANUFACTURER_DESCRIPTOR
struct _DVD_COPYRIGHT_DESCRIPTOR DVD_COPYRIGHT_DESCRIPTOR
struct _DVD_SET_RPC_KEY * PDVD_SET_RPC_KEY
struct _AACS_CERTIFICATE * PAACS_CERTIFICATE
struct _DVD_RPC_KEY * PDVD_RPC_KEY
const AACS_CHALLENGE_KEY CAACS_CHALLENGE_KEY
struct _DVD_MANUFACTURER_DESCRIPTOR * PDVD_MANUFACTURER_DESCRIPTOR
struct _AACS_CERTIFICATE AACS_CERTIFICATE
struct _AACS_SEND_CERTIFICATE * PAACS_SEND_CERTIFICATE
struct _DVD_REGION * PDVD_REGION
struct _AACS_CHALLENGE_KEY AACS_CHALLENGE_KEY
struct _DVD_REGION DVD_REGION
struct _AACS_BINDING_NONCE * PAACS_BINDING_NONCE
struct _DVD_COPY_PROTECT_KEY * PDVD_COPY_PROTECT_KEY
struct _DVD_BCA_DESCRIPTOR DVD_BCA_DESCRIPTOR
struct _AACS_MEDIA_ID * PAACS_MEDIA_ID
struct _DVD_RPC_KEY DVD_RPC_KEY
struct _STORAGE_SET_READ_AHEAD * PSTORAGE_SET_READ_AHEAD
const AACS_SEND_CHALLENGE_KEY * PCAACS_SEND_CHALLENGE_KEY
struct DVD_READ_STRUCTURE DVD_READ_STRUCTURE
struct _STORAGE_SET_READ_AHEAD STORAGE_SET_READ_AHEAD
struct _DVD_SET_RPC_KEY DVD_SET_RPC_KEY
const AACS_CERTIFICATE * PCAACS_CERTIFICATE
struct _DVD_LAYER_DESCRIPTOR * PDVD_LAYER_DESCRIPTOR
struct _AACS_READ_BINDING_NONCE * PAACS_READ_BINDING_NONCE
struct _DVD_DISK_KEY_DESCRIPTOR * PDVD_DISK_KEY_DESCRIPTOR
enum _DVD_KEY_TYPE DVD_KEY_TYPE
struct _DVD_COPYRIGHT_DESCRIPTOR * PDVD_COPYRIGHT_DESCRIPTOR
enum _DVD_STRUCTURE_FORMAT DVD_STRUCTURE_FORMAT
LARGE_INTEGER BlockByteOffset
DVD_STRUCTURE_FORMAT Format
UCHAR EllipticCurvePoint[40]
_Field_range_(0, 255) ULONG NumberOfSectors
ULONGLONG ForceStructureLengthToMatch64bit
AACS_CERTIFICATE Certificate
AACS_CHALLENGE_KEY ChallengeKey
UCHAR PrerecordedSerialNumber[16]
UCHAR CopyrightProtectionType
UCHAR RegionManagementInformation
union _DVD_COPY_PROTECT_KEY::@3153 Parameters
LARGE_INTEGER TitleOffset
UCHAR ManufacturingInformation[2048]
UCHAR UserResetsAvailable
UCHAR ManufacturerResetsAvailable
UCHAR PreferredDriveRegionCode
LARGE_INTEGER TriggerAddress
LARGE_INTEGER TargetAddress
_Reserved_ PVOID Reserved