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