/** * 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