mirror of
https://github.com/reactos/reactos.git
synced 2024-08-25 04:38:43 +00:00
662 lines
19 KiB
C
662 lines
19 KiB
C
/**
|
|
* 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 DBML:1;
|
|
UCHAR DefaultToPrevent:1;
|
|
UCHAR Eject:1;
|
|
UCHAR Load: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
|