diff --git a/mingw-w64-headers/include/ntddcdrm.h b/mingw-w64-headers/include/ntddcdrm.h
index 0641166..c23487d 100644
--- a/mingw-w64-headers/include/ntddcdrm.h
+++ b/mingw-w64-headers/include/ntddcdrm.h
@@ -37,12 +37,18 @@
 #define IOCTL_CDROM_FIND_NEW_DEVICES \
   CTL_CODE(IOCTL_CDROM_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
 
+#define IOCTL_CDROM_GET_CONFIGURATION \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0016, METHOD_BUFFERED, FILE_READ_ACCESS)
+
 #define IOCTL_CDROM_GET_CONTROL \
   CTL_CODE(IOCTL_CDROM_BASE, 0x000D, METHOD_BUFFERED, FILE_READ_ACCESS)
 
 #define IOCTL_CDROM_GET_DRIVE_GEOMETRY \
   CTL_CODE(IOCTL_CDROM_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS)
 
+#define IOCTL_CDROM_GET_DRIVE_GEOMETRY_EX \
+  CTL_CODE(IOCTL_CDROM_BASE, 0x0014, METHOD_BUFFERED, FILE_READ_ACCESS)
+
 #define IOCTL_CDROM_GET_LAST_SESSION \
   CTL_CODE(IOCTL_CDROM_BASE, 0x000E, METHOD_BUFFERED, FILE_READ_ACCESS)
 
@@ -159,6 +165,13 @@
 
 #define CDROM_TOC_SIZE sizeof(CDROM_TOC)
 
+typedef struct _CDROM_TOC_SESSION_DATA {
+  UCHAR Length[2];
+  UCHAR FirstCompleteSession;
+  UCHAR LastCompleteSession;
+  TRACK_DATA TrackData[1];
+} CDROM_TOC_SESSION_DATA, *PCDROM_TOC_SESSION_DATA;
+
 typedef struct _CDROM_TOC_ATIP_DATA_BLOCK {
   UCHAR  CdrwReferenceSpeed : 3;
   UCHAR  Reserved3 : 1;
diff --git a/mingw-w64-headers/include/ntddcdvd.h b/mingw-w64-headers/include/ntddcdvd.h
index 9bd4b3c..c07164d 100644
--- a/mingw-w64-headers/include/ntddcdvd.h
+++ b/mingw-w64-headers/include/ntddcdvd.h
@@ -31,12 +31,18 @@
 
 #define IOCTL_DVD_BASE                    FILE_DEVICE_DVD
 
+#define IOCTL_STORAGE_SET_READ_AHEAD \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0100, METHOD_BUFFERED, FILE_READ_ACCESS)
+
 #define IOCTL_DVD_END_SESSION \
   CTL_CODE(IOCTL_DVD_BASE, 0x0403, METHOD_BUFFERED, FILE_READ_ACCESS)
 
 #define IOCTL_DVD_GET_REGION \
   CTL_CODE(IOCTL_DVD_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS)
 
+#define IOCTL_DVD_SEND_KEY2 \
+  CTL_CODE(IOCTL_DVD_BASE, 0x0406, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
 #define IOCTL_DVD_READ_KEY \
   CTL_CODE(IOCTL_DVD_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
 
diff --git a/mingw-w64-headers/include/ntddmmc.h b/mingw-w64-headers/include/ntddmmc.h
new file mode 100644
index 0000000..f98368a
--- /dev/null
+++ b/mingw-w64-headers/include/ntddmmc.h
@@ -0,0 +1,661 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the ReactOS PSDK package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#pragma once
+
+#define __NTDDMMC__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SCSI_GET_CONFIGURATION_REQUEST_TYPE_ALL          0x0
+#define SCSI_GET_CONFIGURATION_REQUEST_TYPE_CURRENT      0x1
+#define SCSI_GET_CONFIGURATION_REQUEST_TYPE_ONE          0x2
+
+typedef struct _GET_CONFIGURATION_HEADER {
+  UCHAR DataLength[4];
+  UCHAR Reserved[2];
+  UCHAR CurrentProfile[2];
+#if !defined(__midl) && !defined(__WIDL__)
+  UCHAR Data[0];
+#endif
+} GET_CONFIGURATION_HEADER, *PGET_CONFIGURATION_HEADER;
+
+typedef struct _FEATURE_HEADER {
+  UCHAR FeatureCode[2];
+  UCHAR Current:1;
+  UCHAR Persistent:1;
+  UCHAR Version:4;
+  UCHAR Reserved0:2;
+  UCHAR AdditionalLength;
+} FEATURE_HEADER, *PFEATURE_HEADER;
+
+typedef enum _FEATURE_PROFILE_TYPE {
+  ProfileInvalid = 0x0000,
+  ProfileNonRemovableDisk = 0x0001,
+  ProfileRemovableDisk = 0x0002,
+  ProfileMOErasable = 0x0003,
+  ProfileMOWriteOnce = 0x0004,
+  ProfileAS_MO = 0x0005,
+  ProfileCdrom = 0x0008,
+  ProfileCdRecordable = 0x0009,
+  ProfileCdRewritable = 0x000a,
+  ProfileDvdRom = 0x0010,
+  ProfileDvdRecordable = 0x0011,
+  ProfileDvdRam = 0x0012,
+  ProfileDvdRewritable = 0x0013,
+  ProfileDvdRWSequential = 0x0014,
+  ProfileDvdDashRDualLayer = 0x0015,
+  ProfileDvdDashRLayerJump = 0x0016,
+  ProfileDvdPlusRW = 0x001A,
+  ProfileDvdPlusR = 0x001B,
+  ProfileDDCdrom = 0x0020,
+  ProfileDDCdRecordable = 0x0021,
+  ProfileDDCdRewritable = 0x0022,
+  ProfileDvdPlusRWDualLayer = 0x002A,
+  ProfileDvdPlusRDualLayer = 0x002B,
+  ProfileBDRom = 0x0040,
+  ProfileBDRSequentialWritable = 0x0041,
+  ProfileBDRRandomWritable = 0x0042,
+  ProfileBDRewritable = 0x0043,
+  ProfileHDDVDRom = 0x0050,
+  ProfileHDDVDRecordable = 0x0051,
+  ProfileHDDVDRam = 0x0052,
+  ProfileHDDVDRewritable = 0x0053,
+  ProfileHDDVDRDualLayer = 0x0058,
+  ProfileHDDVDRWDualLayer = 0x005A,
+  ProfileNonStandard = 0xffff
+} FEATURE_PROFILE_TYPE, *PFEATURE_PROFILE_TYPE;
+
+typedef enum _FEATURE_NUMBER {
+  FeatureProfileList = 0x0000,
+  FeatureCore = 0x0001,
+  FeatureMorphing = 0x0002,
+  FeatureRemovableMedium = 0x0003,
+  FeatureWriteProtect = 0x0004,
+  FeatureRandomReadable = 0x0010,
+  FeatureMultiRead = 0x001D,
+  FeatureCdRead = 0x001E,
+  FeatureDvdRead = 0x001F,
+  FeatureRandomWritable = 0x0020,
+  FeatureIncrementalStreamingWritable = 0x0021,
+  FeatureSectorErasable = 0x0022,
+  FeatureFormattable = 0x0023,
+  FeatureDefectManagement = 0x0024,
+  FeatureWriteOnce = 0x0025,
+  FeatureRestrictedOverwrite = 0x0026,
+  FeatureCdrwCAVWrite = 0x0027,
+  FeatureMrw = 0x0028,
+  FeatureEnhancedDefectReporting = 0x0029,
+  FeatureDvdPlusRW = 0x002A,
+  FeatureDvdPlusR = 0x002B,
+  FeatureRigidRestrictedOverwrite = 0x002C,
+  FeatureCdTrackAtOnce = 0x002D,
+  FeatureCdMastering = 0x002E,
+  FeatureDvdRecordableWrite = 0x002F,
+  FeatureDDCDRead = 0x0030,
+  FeatureDDCDRWrite = 0x0031,
+  FeatureDDCDRWWrite = 0x0032,
+  FeatureLayerJumpRecording = 0x0033,
+  FeatureCDRWMediaWriteSupport = 0x0037,
+  FeatureBDRPseudoOverwrite = 0x0038,
+  FeatureDvdPlusRWDualLayer = 0x003A,
+  FeatureDvdPlusRDualLayer = 0x003B,
+  FeatureBDRead = 0x0040,
+  FeatureBDWrite = 0x0041,
+  FeatureTSR = 0x0042,
+  FeatureHDDVDRead = 0x0050,
+  FeatureHDDVDWrite = 0x0051,
+  FeatureHybridDisc = 0x0080,
+  FeaturePowerManagement = 0x0100,
+  FeatureSMART = 0x0101,
+  FeatureEmbeddedChanger = 0x0102,
+  FeatureCDAudioAnalogPlay = 0x0103,
+  FeatureMicrocodeUpgrade = 0x0104,
+  FeatureTimeout = 0x0105,
+  FeatureDvdCSS = 0x0106,
+  FeatureRealTimeStreaming = 0x0107,
+  FeatureLogicalUnitSerialNumber = 0x0108,
+  FeatureMediaSerialNumber = 0x0109,
+  FeatureDiscControlBlocks = 0x010A,
+  FeatureDvdCPRM = 0x010B,
+  FeatureFirmwareDate = 0x010C,
+  FeatureAACS = 0x010D,
+  FeatureVCPS = 0x0110,
+} FEATURE_NUMBER, *PFEATURE_NUMBER;
+
+typedef struct _FEATURE_DATA_PROFILE_LIST_EX {
+  UCHAR ProfileNumber[2];
+  UCHAR Current:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved2;
+} FEATURE_DATA_PROFILE_LIST_EX, *PFEATURE_DATA_PROFILE_LIST_EX;
+
+typedef struct _FEATURE_DATA_PROFILE_LIST {
+  FEATURE_HEADER Header;
+#if !defined(__midl) && !defined(__WIDL__)
+  FEATURE_DATA_PROFILE_LIST_EX Profiles[0];
+#endif
+} FEATURE_DATA_PROFILE_LIST, *PFEATURE_DATA_PROFILE_LIST;
+
+typedef struct _FEATURE_DATA_CORE {
+  FEATURE_HEADER Header;
+  UCHAR PhysicalInterface[4];
+  UCHAR DeviceBusyEvent:1;
+  UCHAR INQUIRY2:1;
+  UCHAR Reserved1:6;
+  UCHAR Reserved2[3];
+} FEATURE_DATA_CORE, *PFEATURE_DATA_CORE;
+
+typedef struct _FEATURE_DATA_MORPHING {
+  FEATURE_HEADER Header;
+  UCHAR Asynchronous:1;
+  UCHAR OCEvent:1;
+  UCHAR Reserved01:6;
+  UCHAR Reserved2[3];
+} FEATURE_DATA_MORPHING, *PFEATURE_DATA_MORPHING;
+
+typedef struct _FEATURE_DATA_REMOVABLE_MEDIUM {
+  FEATURE_HEADER Header;
+  UCHAR Lockable:1;
+  UCHAR Reserved1:1;
+  UCHAR DefaultToPrevent:1;
+  UCHAR Eject:1;
+  UCHAR Reserved2:1;
+  UCHAR LoadingMechanism:3;
+  UCHAR Reserved3[3];
+} FEATURE_DATA_REMOVABLE_MEDIUM, *PFEATURE_DATA_REMOVABLE_MEDIUM;
+
+typedef struct _FEATURE_DATA_WRITE_PROTECT {
+  FEATURE_HEADER Header;
+  UCHAR SupportsSWPPBit:1;
+  UCHAR SupportsPersistentWriteProtect:1;
+  UCHAR WriteInhibitDCB:1;
+  UCHAR DiscWriteProtectPAC:1;
+  UCHAR Reserved01:4;
+  UCHAR Reserved2[3];
+} FEATURE_DATA_WRITE_PROTECT, *PFEATURE_DATA_WRITE_PROTECT;
+
+typedef struct _FEATURE_DATA_RANDOM_READABLE {
+  FEATURE_HEADER Header;
+  UCHAR LogicalBlockSize[4];
+  UCHAR Blocking[2];
+  UCHAR ErrorRecoveryPagePresent:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved2;
+} FEATURE_DATA_RANDOM_READABLE, *PFEATURE_DATA_RANDOM_READABLE;
+
+typedef struct _FEATURE_DATA_MULTI_READ {
+  FEATURE_HEADER Header;
+} FEATURE_DATA_MULTI_READ, *PFEATURE_DATA_MULTI_READ;
+
+typedef struct _FEATURE_DATA_CD_READ {
+  FEATURE_HEADER Header;
+  UCHAR CDText:1;
+  UCHAR C2ErrorData:1;
+  UCHAR Reserved01:5;
+  UCHAR DigitalAudioPlay:1;
+  UCHAR Reserved2[3];
+} FEATURE_DATA_CD_READ, *PFEATURE_DATA_CD_READ;
+
+typedef struct _FEATURE_DATA_DVD_READ {
+  FEATURE_HEADER Header;
+  UCHAR Multi110:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved2;
+  UCHAR DualDashR:1;
+  UCHAR Reserved3:7;
+  UCHAR Reserved4;
+} FEATURE_DATA_DVD_READ, *PFEATURE_DATA_DVD_READ;
+
+typedef struct _FEATURE_DATA_RANDOM_WRITABLE {
+  FEATURE_HEADER Header;
+  UCHAR LastLBA[4];
+  UCHAR LogicalBlockSize[4];
+  UCHAR Blocking[2];
+  UCHAR ErrorRecoveryPagePresent:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved2;
+} FEATURE_DATA_RANDOM_WRITABLE, *PFEATURE_DATA_RANDOM_WRITABLE;
+
+typedef struct _FEATURE_DATA_INCREMENTAL_STREAMING_WRITABLE {
+  FEATURE_HEADER Header;
+  UCHAR DataTypeSupported[2];
+  UCHAR BufferUnderrunFree:1;
+  UCHAR AddressModeReservation:1;
+  UCHAR TrackRessourceInformation:1;
+  UCHAR Reserved01:5;
+  UCHAR NumberOfLinkSizes;
+#if !defined(__midl) && !defined(__WIDL__)
+  UCHAR LinkSize[0];
+#endif
+} FEATURE_DATA_INCREMENTAL_STREAMING_WRITABLE, *PFEATURE_DATA_INCREMENTAL_STREAMING_WRITABLE;
+
+typedef struct _FEATURE_DATA_SECTOR_ERASABLE {
+  FEATURE_HEADER Header;
+} FEATURE_DATA_SECTOR_ERASABLE, *PFEATURE_DATA_SECTOR_ERASABLE;
+
+typedef struct _FEATURE_DATA_FORMATTABLE {
+  FEATURE_HEADER Header;
+  UCHAR FullCertification:1;
+  UCHAR QuickCertification:1;
+  UCHAR SpareAreaExpansion:1;
+  UCHAR RENoSpareAllocated:1;
+  UCHAR Reserved1:4;
+  UCHAR Reserved2[3];
+  UCHAR RRandomWritable:1;
+  UCHAR Reserved3:7;
+  UCHAR Reserved4[3];
+} FEATURE_DATA_FORMATTABLE, *PFEATURE_DATA_FORMATTABLE;
+
+typedef struct _FEATURE_DATA_DEFECT_MANAGEMENT {
+  FEATURE_HEADER Header;
+  UCHAR Reserved1:7;
+  UCHAR SupplimentalSpareArea:1;
+  UCHAR Reserved2[3];
+} FEATURE_DATA_DEFECT_MANAGEMENT, *PFEATURE_DATA_DEFECT_MANAGEMENT;
+
+typedef struct _FEATURE_DATA_WRITE_ONCE {
+  FEATURE_HEADER Header;
+  UCHAR LogicalBlockSize[4];
+  UCHAR Blocking[2];
+  UCHAR ErrorRecoveryPagePresent:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved2;
+} FEATURE_DATA_WRITE_ONCE, *PFEATURE_DATA_WRITE_ONCE;
+
+typedef struct _FEATURE_DATA_RESTRICTED_OVERWRITE {
+  FEATURE_HEADER Header;
+} FEATURE_DATA_RESTRICTED_OVERWRITE, *PFEATURE_DATA_RESTRICTED_OVERWRITE;
+
+typedef struct _FEATURE_DATA_CDRW_CAV_WRITE {
+  FEATURE_HEADER Header;
+  UCHAR Reserved1[4];
+} FEATURE_DATA_CDRW_CAV_WRITE, *PFEATURE_DATA_CDRW_CAV_WRITE;
+
+typedef struct _FEATURE_DATA_MRW {
+  FEATURE_HEADER Header;
+  UCHAR Write:1;
+  UCHAR DvdPlusRead:1;
+  UCHAR DvdPlusWrite:1;
+  UCHAR Reserved01:5;
+  UCHAR Reserved2[3];
+} FEATURE_DATA_MRW, *PFEATURE_DATA_MRW;
+
+typedef struct _FEATURE_ENHANCED_DEFECT_REPORTING {
+  FEATURE_HEADER Header;
+  UCHAR DRTDMSupported:1;
+  UCHAR Reserved0:7;
+  UCHAR NumberOfDBICacheZones;
+  UCHAR NumberOfEntries[2];
+} FEATURE_ENHANCED_DEFECT_REPORTING, *PFEATURE_ENHANCED_DEFECT_REPORTING;
+
+typedef struct _FEATURE_DATA_DVD_PLUS_RW {
+  FEATURE_HEADER Header;
+  UCHAR Write:1;
+  UCHAR Reserved1:7;
+  UCHAR CloseOnly:1;
+  UCHAR QuickStart:1;
+  UCHAR Reserved02:6;
+  UCHAR Reserved03[2];
+} FEATURE_DATA_DVD_PLUS_RW, *PFEATURE_DATA_DVD_PLUS_RW;
+
+typedef struct _FEATURE_DATA_DVD_PLUS_R {
+  FEATURE_HEADER Header;
+  UCHAR Write:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved2[3];
+} FEATURE_DATA_DVD_PLUS_R, *PFEATURE_DATA_DVD_PLUS_R;
+
+typedef struct _FEATURE_DATA_DVD_RW_RESTRICTED_OVERWRITE {
+  FEATURE_HEADER Header;
+  UCHAR Blank:1;
+  UCHAR Intermediate:1;
+  UCHAR DefectStatusDataRead:1;
+  UCHAR DefectStatusDataGenerate:1;
+  UCHAR Reserved0:4;
+  UCHAR Reserved1[3];
+} FEATURE_DATA_DVD_RW_RESTRICTED_OVERWRITE, *PFEATURE_DATA_DVD_RW_RESTRICTED_OVERWRITE;
+
+typedef struct _FEATURE_DATA_CD_TRACK_AT_ONCE {
+  FEATURE_HEADER Header;
+  UCHAR RWSubchannelsRecordable:1;
+  UCHAR CdRewritable:1;
+  UCHAR TestWriteOk:1;
+  UCHAR RWSubchannelPackedOk:1;
+  UCHAR RWSubchannelRawOk:1;
+  UCHAR Reserved1:1;
+  UCHAR BufferUnderrunFree:1;
+  UCHAR Reserved3:1;
+  UCHAR Reserved2;
+  UCHAR DataTypeSupported[2];
+} FEATURE_DATA_CD_TRACK_AT_ONCE, *PFEATURE_DATA_CD_TRACK_AT_ONCE;
+
+typedef struct _FEATURE_DATA_CD_MASTERING {
+  FEATURE_HEADER Header;
+  UCHAR RWSubchannelsRecordable:1;
+  UCHAR CdRewritable:1;
+  UCHAR TestWriteOk:1;
+  UCHAR RawRecordingOk:1;
+  UCHAR RawMultiSessionOk:1;
+  UCHAR SessionAtOnceOk:1;
+  UCHAR BufferUnderrunFree:1;
+  UCHAR Reserved1:1;
+  UCHAR MaximumCueSheetLength[3];
+} FEATURE_DATA_CD_MASTERING, *PFEATURE_DATA_CD_MASTERING;
+
+typedef struct _FEATURE_DATA_DVD_RECORDABLE_WRITE {
+  FEATURE_HEADER Header;
+  UCHAR Reserved1:1;
+  UCHAR DVD_RW:1;
+  UCHAR TestWrite:1;
+  UCHAR RDualLayer:1;
+  UCHAR Reserved02:2;
+  UCHAR BufferUnderrunFree:1;
+  UCHAR Reserved3:1;
+  UCHAR Reserved4[3];
+} FEATURE_DATA_DVD_RECORDABLE_WRITE, *PFEATURE_DATA_DVD_RECORDABLE_WRITE;
+
+typedef struct _FEATURE_DATA_DDCD_READ {
+  FEATURE_HEADER Header;
+} FEATURE_DATA_DDCD_READ, *PFEATURE_DATA_DDCD_READ;
+
+typedef struct _FEATURE_DATA_DDCD_R_WRITE {
+  FEATURE_HEADER Header;
+  UCHAR Reserved1:2;
+  UCHAR TestWrite:1;
+  UCHAR Reserved2:5;
+  UCHAR Reserved3[3];
+} FEATURE_DATA_DDCD_R_WRITE, *PFEATURE_DATA_DDCD_R_WRITE;
+
+typedef struct _FEATURE_DATA_DDCD_RW_WRITE {
+  FEATURE_HEADER Header;
+  UCHAR Blank:1;
+  UCHAR Intermediate:1;
+  UCHAR Reserved1:6;
+  UCHAR Reserved2[3];
+} FEATURE_DATA_DDCD_RW_WRITE, *PFEATURE_DATA_DDCD_RW_WRITE;
+
+typedef struct _FEATURE_DATA_LAYER_JUMP_RECORDING {
+  FEATURE_HEADER Header;
+  UCHAR Reserved0[3];
+  UCHAR NumberOfLinkSizes;
+#if !defined(__midl) && !defined(__WIDL__)
+  UCHAR LinkSizes[0];
+#endif
+} FEATURE_DATA_LAYER_JUMP_RECORDING, *PFEATURE_DATA_LAYER_JUMP_RECORDING;
+
+typedef struct _FEATURE_CD_RW_MEDIA_WRITE_SUPPORT {
+  FEATURE_HEADER Header;
+  UCHAR Reserved1;
+  struct{
+    UCHAR Subtype0:1;
+    UCHAR Subtype1:1;
+    UCHAR Subtype2:1;
+    UCHAR Subtype3:1;
+    UCHAR Subtype4:1;
+    UCHAR Subtype5:1;
+    UCHAR Subtype6:1;
+    UCHAR Subtype7:1;
+  } CDRWMediaSubtypeSupport;
+  UCHAR Reserved2[2];
+} FEATURE_CD_RW_MEDIA_WRITE_SUPPORT, *PFEATURE_CD_RW_MEDIA_WRITE_SUPPORT;
+
+typedef struct _FEATURE_BD_R_PSEUDO_OVERWRITE {
+  FEATURE_HEADER Header;
+  UCHAR Reserved[4];
+} FEATURE_BD_R_PSEUDO_OVERWRITE, *PFEATURE_BD_R_PSEUDO_OVERWRITE;
+
+typedef struct _FEATURE_DATA_DVD_PLUS_RW_DUAL_LAYER {
+  FEATURE_HEADER Header;
+  UCHAR Write:1;
+  UCHAR Reserved1:7;
+  UCHAR CloseOnly:1;
+  UCHAR QuickStart:1;
+  UCHAR Reserved2:6;
+  UCHAR Reserved3[2];
+} FEATURE_DATA_DVD_PLUS_RW_DUAL_LAYER, *PFEATURE_DATA_DVD_PLUS_RW_DUAL_LAYER;
+
+typedef struct _FEATURE_DATA_DVD_PLUS_R_DUAL_LAYER {
+  FEATURE_HEADER Header;
+  UCHAR Write:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved2[3];
+} FEATURE_DATA_DVD_PLUS_R_DUAL_LAYER, *PFEATURE_DATA_DVD_PLUS_R_DUAL_LAYER;
+
+typedef struct _BD_CLASS_SUPPORT_BITMAP {
+  UCHAR Version8:1;
+  UCHAR Version9:1;
+  UCHAR Version10:1;
+  UCHAR Version11:1;
+  UCHAR Version12:1;
+  UCHAR Version13:1;
+  UCHAR Version14:1;
+  UCHAR Version15:1;
+  UCHAR Version0:1;
+  UCHAR Version1:1;
+  UCHAR Version2:1;
+  UCHAR Version3:1;
+  UCHAR Version4:1;
+  UCHAR Version5:1;
+  UCHAR Version6:1;
+  UCHAR Version7:1;
+} BD_CLASS_SUPPORT_BITMAP, *PBD_CLASS_SUPPORT_BITMAP;
+
+typedef struct _FEATURE_BD_READ {
+  FEATURE_HEADER Header;
+  UCHAR Reserved[4];
+  BD_CLASS_SUPPORT_BITMAP Class0BitmapBDREReadSupport;
+  BD_CLASS_SUPPORT_BITMAP Class1BitmapBDREReadSupport;
+  BD_CLASS_SUPPORT_BITMAP Class2BitmapBDREReadSupport;
+  BD_CLASS_SUPPORT_BITMAP Class3BitmapBDREReadSupport;
+  BD_CLASS_SUPPORT_BITMAP Class0BitmapBDRReadSupport;
+  BD_CLASS_SUPPORT_BITMAP Class1BitmapBDRReadSupport;
+  BD_CLASS_SUPPORT_BITMAP Class2BitmapBDRReadSupport;
+  BD_CLASS_SUPPORT_BITMAP Class3BitmapBDRReadSupport;
+  BD_CLASS_SUPPORT_BITMAP Class0BitmapBDROMReadSupport;
+  BD_CLASS_SUPPORT_BITMAP Class1BitmapBDROMReadSupport;
+  BD_CLASS_SUPPORT_BITMAP Class2BitmapBDROMReadSupport;
+  BD_CLASS_SUPPORT_BITMAP Class3BitmapBDROMReadSupport;
+} FEATURE_BD_READ, *PFEATURE_BD_READ;
+
+typedef struct _FEATURE_BD_WRITE {
+  FEATURE_HEADER Header;
+  UCHAR SupportsVerifyNotRequired:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved2[3];
+  BD_CLASS_SUPPORT_BITMAP Class0BitmapBDREWriteSupport;
+  BD_CLASS_SUPPORT_BITMAP Class1BitmapBDREWriteSupport;
+  BD_CLASS_SUPPORT_BITMAP Class2BitmapBDREWriteSupport;
+  BD_CLASS_SUPPORT_BITMAP Class3BitmapBDREWriteSupport;
+  BD_CLASS_SUPPORT_BITMAP Class0BitmapBDRWriteSupport;
+  BD_CLASS_SUPPORT_BITMAP Class1BitmapBDRWriteSupport;
+  BD_CLASS_SUPPORT_BITMAP Class2BitmapBDRWriteSupport;
+  BD_CLASS_SUPPORT_BITMAP Class3BitmapBDRWriteSupport;
+} FEATURE_BD_WRITE, *PFEATURE_BD_WRITE;
+
+typedef struct _FEATURE_TSR {
+  FEATURE_HEADER Header;
+} FEATURE_TSR, *PFEATURE_TSR;
+
+typedef struct _FEATURE_DATA_HDDVD_READ {
+  FEATURE_HEADER Header;
+  UCHAR Recordable:1;
+  UCHAR Reserved0:7;
+  UCHAR Reserved1;
+  UCHAR Rewritable:1;
+  UCHAR Reserved2:7;
+  UCHAR Reserved3;
+} FEATURE_DATA_HDDVD_READ, *PFEATURE_DATA_HDDVD_READ;
+
+typedef struct _FEATURE_DATA_HDDVD_WRITE {
+  FEATURE_HEADER Header;
+  UCHAR Recordable:1;
+  UCHAR Reserved0:7;
+  UCHAR Reserved1;
+  UCHAR Rewritable:1;
+  UCHAR Reserved2:7;
+  UCHAR Reserved3;
+} FEATURE_DATA_HDDVD_WRITE, *PFEATURE_DATA_HDDVD_WRITE;
+
+typedef struct _FEATURE_HYBRID_DISC {
+  FEATURE_HEADER Header;
+  UCHAR ResetImmunity:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved2[3];
+} FEATURE_HYBRID_DISC, *PFEATURE_HYBRID_DISC;
+
+typedef struct _FEATURE_DATA_POWER_MANAGEMENT {
+  FEATURE_HEADER Header;
+} FEATURE_DATA_POWER_MANAGEMENT, *PFEATURE_DATA_POWER_MANAGEMENT;
+
+typedef struct _FEATURE_DATA_SMART {
+  FEATURE_HEADER Header;
+  UCHAR FaultFailureReportingPagePresent:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved02[3];
+} FEATURE_DATA_SMART, *PFEATURE_DATA_SMART;
+
+typedef struct _FEATURE_DATA_EMBEDDED_CHANGER {
+  FEATURE_HEADER Header;
+  UCHAR Reserved1:2;
+  UCHAR SupportsDiscPresent:1;
+  UCHAR Reserved2:1;
+  UCHAR SideChangeCapable:1;
+  UCHAR Reserved3:3;
+  UCHAR Reserved4[2];
+  UCHAR HighestSlotNumber:5;
+  UCHAR Reserved:3;
+} FEATURE_DATA_EMBEDDED_CHANGER, *PFEATURE_DATA_EMBEDDED_CHANGER;
+
+typedef struct _FEATURE_DATA_CD_AUDIO_ANALOG_PLAY {
+  FEATURE_HEADER Header;
+  UCHAR SeperateVolume:1;
+  UCHAR SeperateChannelMute:1;
+  UCHAR ScanSupported:1;
+  UCHAR Reserved1:5;
+  UCHAR Reserved2;
+  UCHAR NumerOfVolumeLevels[2];
+} FEATURE_DATA_CD_AUDIO_ANALOG_PLAY, *PFEATURE_DATA_CD_AUDIO_ANALOG_PLAY;
+
+typedef struct _FEATURE_DATA_MICROCODE_UPDATE {
+  FEATURE_HEADER Header;
+  UCHAR M5:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved2[3];
+} FEATURE_DATA_MICROCODE_UPDATE, *PFEATURE_DATA_MICROCODE_UPDATE;
+
+typedef struct _FEATURE_DATA_TIMEOUT {
+  FEATURE_HEADER Header;
+  UCHAR Group3:1;
+  UCHAR Reserved1:7;
+  UCHAR Reserved2;
+  UCHAR UnitLength[2];
+} FEATURE_DATA_TIMEOUT, *PFEATURE_DATA_TIMEOUT;
+
+typedef struct _FEATURE_DATA_DVD_CSS {
+  FEATURE_HEADER Header;
+  UCHAR Reserved1[3];
+  UCHAR CssVersion;
+} FEATURE_DATA_DVD_CSS, *PFEATURE_DATA_DVD_CSS;
+
+typedef struct _FEATURE_DATA_REAL_TIME_STREAMING {
+  FEATURE_HEADER Header;
+  UCHAR StreamRecording:1;
+  UCHAR WriteSpeedInGetPerf:1;
+  UCHAR WriteSpeedInMP2A:1;
+  UCHAR SetCDSpeed:1;
+  UCHAR ReadBufferCapacityBlock:1;
+  UCHAR Reserved1:3;
+  UCHAR Reserved2[3];
+} FEATURE_DATA_REAL_TIME_STREAMING, *PFEATURE_DATA_REAL_TIME_STREAMING;
+
+typedef struct _FEATURE_DATA_LOGICAL_UNIT_SERIAL_NUMBER {
+  FEATURE_HEADER Header;
+#if !defined(__midl) && !defined(__WIDL__)
+  UCHAR SerialNumber[0];
+#endif
+} FEATURE_DATA_LOGICAL_UNIT_SERIAL_NUMBER, *PFEATURE_DATA_LOGICAL_UNIT_SERIAL_NUMBER;
+
+typedef struct _FEATURE_MEDIA_SERIAL_NUMBER {
+  FEATURE_HEADER Header;
+} FEATURE_MEDIA_SERIAL_NUMBER, *PFEATURE_MEDIA_SERIAL_NUMBER;
+
+typedef struct _FEATURE_DATA_DISC_CONTROL_BLOCKS_EX {
+  UCHAR ContentDescriptor[4];
+} FEATURE_DATA_DISC_CONTROL_BLOCKS_EX, *PFEATURE_DATA_DISC_CONTROL_BLOCKS_EX;
+
+typedef struct _FEATURE_DATA_DISC_CONTROL_BLOCKS {
+  FEATURE_HEADER Header;
+#if !defined(__midl) && !defined(__WIDL__)
+  FEATURE_DATA_DISC_CONTROL_BLOCKS_EX Data[0];
+#endif
+} FEATURE_DATA_DISC_CONTROL_BLOCKS, *PFEATURE_DATA_DISC_CONTROL_BLOCKS;
+
+typedef struct _FEATURE_DATA_DVD_CPRM {
+  FEATURE_HEADER Header;
+  UCHAR Reserved0[3];
+  UCHAR CPRMVersion;
+} FEATURE_DATA_DVD_CPRM, *PFEATURE_DATA_DVD_CPRM;
+
+typedef struct _FEATURE_DATA_FIRMWARE_DATE {
+  FEATURE_HEADER Header;
+  UCHAR Year[4];
+  UCHAR Month[2];
+  UCHAR Day[2];
+  UCHAR Hour[2];
+  UCHAR Minute[2];
+  UCHAR Seconds[2];
+  UCHAR Reserved[2];
+} FEATURE_DATA_FIRMWARE_DATE, *PFEATURE_DATA_FIRMWARE_DATE;
+
+typedef struct _FEATURE_DATA_AACS {
+  FEATURE_HEADER Header;
+  UCHAR BindingNonceGeneration:1;
+  UCHAR Reserved0:7;
+  UCHAR BindingNonceBlockCount;
+  UCHAR NumberOfAGIDs:4;
+  UCHAR Reserved1:4;
+  UCHAR AACSVersion;
+} FEATURE_DATA_AACS, *PFEATURE_DATA_AACS;
+
+typedef struct _FEATURE_VCPS {
+  FEATURE_HEADER Header;
+  UCHAR Reserved[4];
+} FEATURE_VCPS, *PFEATURE_VCPS;
+
+typedef struct _FEATURE_DATA_RESERVED {
+  FEATURE_HEADER Header;
+#if !defined(__midl) && !defined(__WIDL__)
+  UCHAR Data[0];
+#endif
+} FEATURE_DATA_RESERVED, *PFEATURE_DATA_RESERVED;
+
+typedef struct _FEATURE_DATA_VENDOR_SPECIFIC {
+  FEATURE_HEADER Header;
+#if !defined(__midl) && !defined(__WIDL__)
+  UCHAR VendorSpecificData[0];
+#endif
+} FEATURE_DATA_VENDOR_SPECIFIC, *PFEATURE_DATA_VENDOR_SPECIFIC;
+
+typedef struct _GET_CONFIGURATION_IOCTL_INPUT {
+  FEATURE_NUMBER Feature;
+  ULONG RequestType;
+  PVOID Reserved[2];
+} GET_CONFIGURATION_IOCTL_INPUT, *PGET_CONFIGURATION_IOCTL_INPUT;
+
+#if defined(_WIN64)
+typedef struct _GET_CONFIGURATION_IOCTL_INPUT32 {
+  FEATURE_NUMBER Feature;
+  ULONG RequestType;
+  VOID* UPOINTER_32 Reserved[2];
+} GET_CONFIGURATION_IOCTL_INPUT32, *PGET_CONFIGURATION_IOCTL_INPUT32;
+#endif
+
+#ifdef __cplusplus
+}
+#endif
